perf(editor): narrow markdown override subscriptions

This commit is contained in:
Neil
2026-08-31 05:43:05 -07:00
parent dcc8b5dabd
commit 06d29417bc
4 changed files with 14 additions and 12 deletions
@@ -66,12 +66,12 @@ export function EditorMarkdownFileSurface({
)
return (
<div className="flex h-full min-h-0 flex-col">
<div className="flex items-center gap-3 border-b border-border/60 bg-blue-500/10 px-3 py-2 text-xs text-blue-950 dark:text-blue-100">
<div className="flex items-center gap-3 border-b border-border/60 bg-muted/40 px-3 py-2 text-xs text-muted-foreground">
<span className="min-w-0 flex-1">{richFallbackMessage}</span>
{isSizeFallback ? (
<Button
type="button"
variant="secondary"
variant="outline"
size="xs"
className="shrink-0"
onClick={() => setSizeOverride(activeFile.id, true)}
@@ -62,7 +62,9 @@ function EditorPanelInner({
)
const markdownViewMode = useAppStore((s) => s.markdownViewMode)
const setMarkdownViewMode = useAppStore((s) => s.setMarkdownViewMode)
const markdownRichModeSizeOverride = useAppStore((s) => s.markdownRichModeSizeOverride)
const markdownRichModeSizeOverridden = useAppStore(
(s) => activeFileId !== null && s.markdownRichModeSizeOverride[activeFileId] === true
)
const editorViewMode = useAppStore((s) => s.editorViewMode)
const setEditorViewMode = useAppStore((s) => s.setEditorViewMode)
const openFile = useAppStore((s) => s.openFile)
@@ -235,7 +237,7 @@ function EditorPanelInner({
gitStatusEntries,
gitBranchEntries,
markdownViewMode,
markdownRichModeSizeOverride,
markdownRichModeSizeOverridden,
isChangesMode,
canOpenWorkspaceFileBrowser
})
@@ -31,7 +31,7 @@ function renderModel(args: {
fileContents?: Record<string, FileContent>
editorDrafts?: Record<string, string>
markdownViewMode?: Record<string, 'source' | 'rich' | 'preview'>
markdownRichModeSizeOverride?: Record<string, boolean>
markdownRichModeSizeOverridden?: boolean
isChangesMode?: boolean
gitStatusByWorktree?: Record<string, GitStatusEntry[]>
}) {
@@ -43,7 +43,7 @@ function renderModel(args: {
gitStatusEntries: args.gitStatusByWorktree?.[activeFile.worktreeId],
gitBranchEntries: undefined,
markdownViewMode: args.markdownViewMode ?? {},
markdownRichModeSizeOverride: args.markdownRichModeSizeOverride ?? {},
markdownRichModeSizeOverridden: args.markdownRichModeSizeOverridden ?? false,
isChangesMode: args.isChangesMode ?? false,
canOpenWorkspaceFileBrowser: true
})
@@ -78,7 +78,7 @@ describe('getEditorPanelRenderModel HTML preview affordance', () => {
gitStatusEntries: undefined,
gitBranchEntries: undefined,
markdownViewMode: {},
markdownRichModeSizeOverride: {},
markdownRichModeSizeOverridden: false,
isChangesMode: false,
canOpenWorkspaceFileBrowser: false
})
@@ -184,7 +184,7 @@ describe('getEditorPanelRenderModel markdown export affordance', () => {
const model = renderModel({
markdownViewMode: { '/repo/README.md': 'rich' },
editorDrafts: { '/repo/README.md': 'a'.repeat(RICH_MARKDOWN_MAX_SIZE_BYTES + 1) },
markdownRichModeSizeOverride: { '/repo/README.md': true }
markdownRichModeSizeOverridden: true
})
expect(model.canExportMarkdownToPdf).toBe(true)
@@ -194,7 +194,7 @@ describe('getEditorPanelRenderModel markdown export affordance', () => {
const model = renderModel({
markdownViewMode: { '/repo/README.md': 'rich' },
editorDrafts: { '/repo/README.md': 'a'.repeat(RICH_MARKDOWN_MAX_SIZE_BYTES + 1) },
markdownRichModeSizeOverride: { '/repo/OTHER.md': true }
markdownRichModeSizeOverridden: false
})
expect(model.canExportMarkdownToPdf).toBe(false)
@@ -24,7 +24,7 @@ type EditorPanelRenderModelParams = {
gitStatusEntries: StoreState['gitStatusByWorktree'][string] | undefined
gitBranchEntries: StoreState['gitBranchChangesByWorktree'][string] | undefined
markdownViewMode: StoreState['markdownViewMode']
markdownRichModeSizeOverride: StoreState['markdownRichModeSizeOverride']
markdownRichModeSizeOverridden: boolean
isChangesMode: boolean
canOpenWorkspaceFileBrowser: boolean
}
@@ -36,7 +36,7 @@ export function getEditorPanelRenderModel({
gitStatusEntries,
gitBranchEntries,
markdownViewMode,
markdownRichModeSizeOverride,
markdownRichModeSizeOverridden,
isChangesMode,
canOpenWorkspaceFileBrowser
}: EditorPanelRenderModelParams) {
@@ -145,7 +145,7 @@ export function getEditorPanelRenderModel({
const richModeEligibility = shouldClassifyRichMode
? getMarkdownRichModeEligibility({
content: inlineMarkdownContent,
sizeOverridden: markdownRichModeSizeOverride[activeFile.id] === true
sizeOverridden: markdownRichModeSizeOverridden
})
: null
const richModeUnsupportedMessage = richModeEligibility?.unsupportedMessage ?? null