mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-23 18:10:26 +08:00
fix(CodeBlockView): initial view mode (#9047)
This commit is contained in:
parent
d0cf3179a2
commit
28e6135f8c
@ -58,9 +58,12 @@ export const CodeBlockView: React.FC<Props> = memo(({ children, language, onSave
|
|||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { codeEditor, codeExecution, codeImageTools, codeCollapsible, codeWrappable } = useSettings()
|
const { codeEditor, codeExecution, codeImageTools, codeCollapsible, codeWrappable } = useSettings()
|
||||||
|
|
||||||
const [viewState, setViewState] = useState({
|
const [viewState, setViewState] = useState(() => {
|
||||||
mode: 'special' as ViewMode,
|
const initialMode = SPECIAL_VIEWS.includes(language) ? 'special' : 'source'
|
||||||
previousMode: 'special' as ViewMode
|
return {
|
||||||
|
mode: initialMode as ViewMode,
|
||||||
|
previousMode: initialMode as ViewMode
|
||||||
|
}
|
||||||
})
|
})
|
||||||
const { mode: viewMode } = viewState
|
const { mode: viewMode } = viewState
|
||||||
|
|
||||||
@ -96,10 +99,18 @@ export const CodeBlockView: React.FC<Props> = memo(({ children, language, onSave
|
|||||||
|
|
||||||
const hasSpecialView = useMemo(() => SPECIAL_VIEWS.includes(language), [language])
|
const hasSpecialView = useMemo(() => SPECIAL_VIEWS.includes(language), [language])
|
||||||
|
|
||||||
|
// TODO: 考虑移除
|
||||||
const isInSpecialView = useMemo(() => {
|
const isInSpecialView = useMemo(() => {
|
||||||
return hasSpecialView && viewMode === 'special'
|
return hasSpecialView && viewMode === 'special'
|
||||||
}, [hasSpecialView, viewMode])
|
}, [hasSpecialView, viewMode])
|
||||||
|
|
||||||
|
// 不支持特殊视图时回退到 source
|
||||||
|
useEffect(() => {
|
||||||
|
if (!hasSpecialView && viewMode !== 'source') {
|
||||||
|
setViewMode('source')
|
||||||
|
}
|
||||||
|
}, [hasSpecialView, viewMode, setViewMode])
|
||||||
|
|
||||||
const [expandOverride, setExpandOverride] = useState(!codeCollapsible)
|
const [expandOverride, setExpandOverride] = useState(!codeCollapsible)
|
||||||
const [unwrapOverride, setUnwrapOverride] = useState(!codeWrappable)
|
const [unwrapOverride, setUnwrapOverride] = useState(!codeWrappable)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user