import { openUrl } from '@tauri-apps/plugin-opener'; import { useRef } from 'react'; import { openSettings } from '../commands/openSettings'; import { useAppInfo } from '../hooks/useAppInfo'; import { useCheckForUpdates } from '../hooks/useCheckForUpdates'; import { useExportData } from '../hooks/useExportData'; import { useImportData } from '../hooks/useImportData'; import { useListenToTauriEvent } from '../hooks/useListenToTauriEvent'; import { showDialog } from '../lib/dialog'; import type { DropdownRef } from './core/Dropdown'; import { Dropdown } from './core/Dropdown'; import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { KeyboardShortcutsDialog } from './KeyboardShortcutsDialog'; export function SettingsDropdown() { const importData = useImportData(); const exportData = useExportData(); const appInfo = useAppInfo(); const dropdownRef = useRef(null); const checkForUpdates = useCheckForUpdates(); useListenToTauriEvent('settings', () => openSettings.mutate(null)); return ( , onSelect: () => openSettings.mutate(null), }, { label: 'Keyboard shortcuts', hotKeyAction: 'hotkeys.showHelp', leftSlot: , onSelect: () => { showDialog({ id: 'hotkey', title: 'Keyboard Shortcuts', size: 'dynamic', render: () => , }); }, }, { label: 'Import Data', leftSlot: , onSelect: () => importData.mutate(), }, { label: 'Export Data', leftSlot: , onSelect: () => exportData.mutate(), }, { type: 'separator', label: `Yaak v${appInfo.version}` }, { label: 'Check for Updates', leftSlot: , onSelect: () => checkForUpdates.mutate(), }, { label: 'Feedback', leftSlot: , rightSlot: , onSelect: () => openUrl('https://yaak.app/roadmap'), }, { label: 'Changelog', leftSlot: , rightSlot: , onSelect: () => openUrl(`https://yaak.app/changelog/${appInfo.version}`), }, ]} > ); }