feat: add note layout preference

This commit is contained in:
lucaronin
2026-04-26 04:41:18 +02:00
parent 5fd8f8fb40
commit c7edc71a97
19 changed files with 277 additions and 16 deletions

View File

@@ -0,0 +1,51 @@
import { describe, it, expect, vi, beforeEach } from 'vitest'
import { renderHook, act } from '@testing-library/react'
import { useNoteLayout } from './useNoteLayout'
import { bindVaultConfigStore, getVaultConfig, resetVaultConfigStore } from '../utils/vaultConfigStore'
describe('useNoteLayout', () => {
beforeEach(() => {
resetVaultConfigStore()
bindVaultConfigStore(
{ zoom: null, view_mode: null, editor_mode: null, note_layout: null, tag_colors: null, status_colors: null, property_display_modes: null },
vi.fn(),
)
})
it('defaults to centered note layout', () => {
const { result } = renderHook(() => useNoteLayout())
expect(result.current.noteLayout).toBe('centered')
})
it('loads persisted left note layout from vault config', () => {
resetVaultConfigStore()
bindVaultConfigStore(
{ zoom: null, view_mode: null, editor_mode: null, note_layout: 'left', tag_colors: null, status_colors: null, property_display_modes: null },
vi.fn(),
)
const { result } = renderHook(() => useNoteLayout())
expect(result.current.noteLayout).toBe('left')
})
it('sets note layout and persists it to vault config', () => {
const { result } = renderHook(() => useNoteLayout())
act(() => result.current.setNoteLayout('left'))
expect(result.current.noteLayout).toBe('left')
expect(getVaultConfig().note_layout).toBe('left')
})
it('toggles between centered and left note layout', () => {
const { result } = renderHook(() => useNoteLayout())
act(() => result.current.toggleNoteLayout())
expect(result.current.noteLayout).toBe('left')
act(() => result.current.toggleNoteLayout())
expect(result.current.noteLayout).toBe('centered')
})
})