- Add useViewMode hook: manages panel visibility state (editor-only, editor-list, all) - Persist view mode preference in localStorage - Add Option+1 (editor only), Option+2 (editor + note list), Option+3 (all panels) - Add collapse button (CaretLeft icon) in sidebar title bar - Extract useDialogs hook from App to reduce component size - Extract SidebarTitleBar component to reduce Sidebar complexity - Listen for Tauri menu events to support macOS View menu (wired next) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
import { useState, useCallback } from 'react'
|
|
|
|
export function useDialogs() {
|
|
const [showCreateTypeDialog, setShowCreateTypeDialog] = useState(false)
|
|
const [showQuickOpen, setShowQuickOpen] = useState(false)
|
|
const [showCommitDialog, setShowCommitDialog] = useState(false)
|
|
const [showAIChat, setShowAIChat] = useState(false)
|
|
const [showSettings, setShowSettings] = useState(false)
|
|
|
|
const openCreateType = useCallback(() => setShowCreateTypeDialog(true), [])
|
|
const closeCreateType = useCallback(() => setShowCreateTypeDialog(false), [])
|
|
const openQuickOpen = useCallback(() => setShowQuickOpen(true), [])
|
|
const closeQuickOpen = useCallback(() => setShowQuickOpen(false), [])
|
|
const openCommitDialog = useCallback(() => setShowCommitDialog(true), [])
|
|
const closeCommitDialog = useCallback(() => setShowCommitDialog(false), [])
|
|
const openSettings = useCallback(() => setShowSettings(true), [])
|
|
const closeSettings = useCallback(() => setShowSettings(false), [])
|
|
const toggleAIChat = useCallback(() => setShowAIChat((c) => !c), [])
|
|
|
|
return {
|
|
showCreateTypeDialog, openCreateType, closeCreateType,
|
|
showQuickOpen, openQuickOpen, closeQuickOpen,
|
|
showCommitDialog, openCommitDialog, closeCommitDialog,
|
|
showAIChat, toggleAIChat,
|
|
showSettings, openSettings, closeSettings,
|
|
}
|
|
}
|