mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-21 14:03:35 +08:00
fix(desktop): let memory markdown editor fill pane
Tested: cd desktop && bun run test -- src/__tests__/memorySettings.test.tsx --run --reporter=verbose --pool=forks --maxWorkers=1 --minWorkers=1 Tested: bun run check:desktop Tested: bun run check:coverage Tested: Chrome CDP smoke confirmed the memory editor textarea expands to 592px tall Confidence: high Scope-risk: narrow
This commit is contained in:
parent
66306a54bf
commit
d7a1306790
@ -163,6 +163,16 @@ describe('MemorySettings', () => {
|
|||||||
expect(await screen.findByTestId('markdown-preview')).toHaveTextContent('Prefer small diffs')
|
expect(await screen.findByTestId('markdown-preview')).toHaveTextContent('Prefer small diffs')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('lets the markdown editor fill the remaining detail pane height', async () => {
|
||||||
|
render(<MemorySettings />)
|
||||||
|
|
||||||
|
fireEvent.click(await screen.findByRole('button', { name: 'Edit' }))
|
||||||
|
|
||||||
|
const editor = await screen.findByLabelText('Editor')
|
||||||
|
expect(editor).toHaveClass('min-h-0', 'flex-1', 'resize-none')
|
||||||
|
expect(editor.parentElement).toHaveClass('flex', 'min-h-0', 'flex-1', 'flex-col')
|
||||||
|
})
|
||||||
|
|
||||||
it('cancels edit mode by discarding the unsaved draft', async () => {
|
it('cancels edit mode by discarding the unsaved draft', async () => {
|
||||||
render(<MemorySettings />)
|
render(<MemorySettings />)
|
||||||
|
|
||||||
|
|||||||
@ -306,7 +306,7 @@ export function MemorySettings() {
|
|||||||
</section>
|
</section>
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<section className="min-h-0 overflow-hidden bg-[var(--color-surface-container-lowest)]">
|
<section className="flex min-h-0 flex-col overflow-hidden bg-[var(--color-surface-container-lowest)]">
|
||||||
<div className="grid gap-3 border-b border-[var(--color-border)] bg-[var(--color-surface-container-lowest)] px-4 py-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center">
|
<div className="grid gap-3 border-b border-[var(--color-border)] bg-[var(--color-surface-container-lowest)] px-4 py-3 lg:grid-cols-[minmax(0,1fr)_auto] lg:items-center">
|
||||||
<div className="min-w-0">
|
<div className="min-w-0">
|
||||||
<div className="flex flex-wrap items-center gap-2">
|
<div className="flex flex-wrap items-center gap-2">
|
||||||
@ -332,8 +332,8 @@ export function MemorySettings() {
|
|||||||
|
|
||||||
{selectedFile ? (
|
{selectedFile ? (
|
||||||
isEditing ? (
|
isEditing ? (
|
||||||
<div className="min-h-[560px]">
|
<div className="flex min-h-0 flex-1 flex-col">
|
||||||
<div className="flex h-10 items-center justify-between border-b border-[var(--color-border)] bg-[var(--color-surface-container-low)] px-3 text-xs font-medium uppercase tracking-normal text-[var(--color-text-tertiary)]">
|
<div className="flex h-10 shrink-0 items-center justify-between border-b border-[var(--color-border)] bg-[var(--color-surface-container-low)] px-3 text-xs font-medium uppercase tracking-normal text-[var(--color-text-tertiary)]">
|
||||||
<div className="flex min-w-0 items-center gap-2">
|
<div className="flex min-w-0 items-center gap-2">
|
||||||
<span>{t('settings.memory.editor')}</span>
|
<span>{t('settings.memory.editor')}</span>
|
||||||
<span>MARKDOWN</span>
|
<span>MARKDOWN</span>
|
||||||
@ -375,12 +375,12 @@ export function MemorySettings() {
|
|||||||
value={draftContent}
|
value={draftContent}
|
||||||
onChange={(event) => updateDraft(event.target.value)}
|
onChange={(event) => updateDraft(event.target.value)}
|
||||||
spellCheck={false}
|
spellCheck={false}
|
||||||
className="h-[calc(100%-40px)] w-full resize-none overflow-auto bg-transparent p-5 font-mono text-[13px] leading-6 text-[var(--color-text-primary)] outline-none placeholder:text-[var(--color-text-tertiary)]"
|
className="min-h-0 flex-1 w-full resize-none overflow-auto bg-transparent p-5 font-mono text-[13px] leading-6 text-[var(--color-text-primary)] outline-none placeholder:text-[var(--color-text-tertiary)]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="min-h-[560px] overflow-y-auto">
|
<div className="flex min-h-0 flex-1 flex-col overflow-hidden">
|
||||||
<div className="flex h-10 items-center justify-between border-b border-[var(--color-border)] bg-[var(--color-surface-container-low)] px-3 text-xs font-medium uppercase tracking-normal text-[var(--color-text-tertiary)]">
|
<div className="flex h-10 shrink-0 items-center justify-between border-b border-[var(--color-border)] bg-[var(--color-surface-container-low)] px-3 text-xs font-medium uppercase tracking-normal text-[var(--color-text-tertiary)]">
|
||||||
<div className="flex min-w-0 items-center gap-2">
|
<div className="flex min-w-0 items-center gap-2">
|
||||||
<span>{t('settings.memory.preview')}</span>
|
<span>{t('settings.memory.preview')}</span>
|
||||||
<span>{t('settings.memory.rendered')}</span>
|
<span>{t('settings.memory.rendered')}</span>
|
||||||
@ -395,7 +395,7 @@ export function MemorySettings() {
|
|||||||
icon={<PencilLine size={14} aria-hidden="true" />}
|
icon={<PencilLine size={14} aria-hidden="true" />}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="p-6">
|
<div className="min-h-0 flex-1 overflow-y-auto p-6">
|
||||||
<MarkdownRenderer
|
<MarkdownRenderer
|
||||||
content={previewContent || ' '}
|
content={previewContent || ' '}
|
||||||
variant="document"
|
variant="document"
|
||||||
@ -405,7 +405,7 @@ export function MemorySettings() {
|
|||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
) : (
|
) : (
|
||||||
<div className="flex min-h-[520px] items-center justify-center p-8">
|
<div className="flex min-h-0 flex-1 items-center justify-center p-8">
|
||||||
<EmptyState icon={<FileText size={20} />} text={isLoadingFile ? t('common.loading') : t('settings.memory.selectFile')} />
|
<EmptyState icon={<FileText size={20} />} text={isLoadingFile ? t('common.loading') : t('settings.memory.selectFile')} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user