mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 08:02:28 +00:00
Merge branch 'stack-preview' into stack-reconcile
# Conflicts: # src/renderer/src/components/editor/editor-panel-render-model.ts
This commit is contained in:
@@ -10,7 +10,11 @@ vi.mock('./EditorPanelHeader', () => ({
|
||||
}))
|
||||
|
||||
vi.mock('./EditorContent', () => ({
|
||||
EditorContent: () => <div data-editor-content />
|
||||
EditorContent: ({ onOpenMarkdownPreview }: { onOpenMarkdownPreview?: () => void }) => (
|
||||
<div data-editor-content>
|
||||
{onOpenMarkdownPreview && <button onClick={onOpenMarkdownPreview}>Open preview</button>}
|
||||
</div>
|
||||
)
|
||||
}))
|
||||
|
||||
vi.mock('./UntitledFileRenameDialog', () => ({
|
||||
@@ -48,7 +52,7 @@ function renderShell(file: OpenFile, isCombinedDiff = false): string {
|
||||
availableEditorToggleModes: [],
|
||||
effectiveToggleValue: 'edit',
|
||||
canOpenPreviewToSide: false,
|
||||
canShowMarkdownPreview: false,
|
||||
canShowMarkdownPreview: file.language === 'markdown' && file.mode === 'edit',
|
||||
canShowMarkdownTableOfContents: false,
|
||||
isMarkdownTableOfContentsDisabled: false,
|
||||
shouldShowMarkdownExportAction: false,
|
||||
@@ -122,3 +126,9 @@ describe('EditorPanelShell path header', () => {
|
||||
expect(renderShell(openFile('edit'))).toContain('data-editor-content')
|
||||
})
|
||||
})
|
||||
|
||||
it('offers Markdown preview through the shell even when HTML side preview is unavailable', () => {
|
||||
const file = { ...openFile('edit'), language: 'markdown' }
|
||||
expect(renderShell(file)).toContain('Open preview')
|
||||
expect(renderShell(openFile('edit'))).not.toContain('Open preview')
|
||||
})
|
||||
|
||||
@@ -163,7 +163,7 @@ export function EditorPanelShell({
|
||||
showMarkdownFrontmatter={markdownFrontmatterVisible}
|
||||
onCloseMarkdownTableOfContents={onCloseMarkdownTableOfContents}
|
||||
markdownAnnotationsEnabled={markdownAnnotationsEnabled}
|
||||
onOpenMarkdownPreview={model.canOpenPreviewToSide ? onOpenMarkdownPreview : undefined}
|
||||
onOpenMarkdownPreview={model.canShowMarkdownPreview ? onOpenMarkdownPreview : undefined}
|
||||
/>
|
||||
</Suspense>
|
||||
<UntitledFileRenameDialog
|
||||
|
||||
@@ -306,10 +306,11 @@ describe('getEditorPanelRenderModel markdown export affordance', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('hides disk preview while a fallback draft is unsaved', () => {
|
||||
it('offers the live Markdown preview while a fallback draft is unsaved', () => {
|
||||
const model = renderModel({
|
||||
editorDrafts: { '/repo/README.md': '[reference]: https://example.com' }
|
||||
})
|
||||
expect(model.availableEditorToggleModes).not.toContain('preview')
|
||||
expect(model.availableEditorToggleModes).toContain('preview')
|
||||
expect(model.canShowMarkdownPreview).toBe(true)
|
||||
expect(model.canOpenPreviewToSide).toBe(false)
|
||||
})
|
||||
|
||||
@@ -144,16 +144,11 @@ export function getEditorPanelRenderModel({
|
||||
richModeEligibility !== null
|
||||
? richModeEligibility.exceedsSizeLimit || richModeUnsupportedMessage !== null
|
||||
: richModeFaultedForCurrentContent
|
||||
const hasUnsavedMarkdownDraft =
|
||||
viewerLanguage === 'markdown' &&
|
||||
activeFile.mode === 'edit' &&
|
||||
editorDrafts[activeFile.id] !== undefined &&
|
||||
editorDrafts[activeFile.id] !== inlineFileContent?.content
|
||||
const editorToggleModes = getEditorToggleModes({
|
||||
language: viewerLanguage,
|
||||
mode: activeFile.mode,
|
||||
diffSource: activeFile.diffSource,
|
||||
richModeFallsBackToSource: richModeFallsBackToSource && !hasUnsavedMarkdownDraft
|
||||
richModeFallsBackToSource
|
||||
})
|
||||
const availableEditorToggleModes =
|
||||
isBinaryEditSurface || !canUseChangesModeForFile(activeFile)
|
||||
@@ -205,7 +200,6 @@ export function getEditorPanelRenderModel({
|
||||
// files and commit diffs whose content may not match the working tree).
|
||||
canOpenPreviewToSide:
|
||||
canOpenWorkspaceFileBrowser &&
|
||||
!hasUnsavedMarkdownDraft &&
|
||||
canPreviewLanguage(viewerLanguage) &&
|
||||
(activeFile.mode === 'edit' || (isSingleDiff && openFileState.canOpen)),
|
||||
mdViewMode,
|
||||
|
||||
Reference in New Issue
Block a user