import cx from '@src/cx.mjs'; import { setPanelPinned, setActiveFooter as setTab, setIsPanelOpened, useSettings } from '../../../settings.mjs'; import { ConsoleTab } from './ConsoleTab'; import { FilesTab } from './FilesTab'; import { Reference } from './Reference'; import { SettingsTab } from './SettingsTab'; import { SoundsTab } from './SoundsTab'; import { useLogger } from '../useLogger'; import { WelcomeTab } from './WelcomeTab'; import { PatternsTab } from './PatternsTab'; import { ChevronLeftIcon, XMarkIcon } from '@heroicons/react/16/solid'; const TAURI = typeof window !== 'undefined' && window.__TAURI__; export function HorizontalPanel({ context }) { const settings = useSettings(); const { isPanelOpen, activeFooter: tab } = settings; return ( {isPanelOpen && (
)}
); } export function VerticalPanel({ context }) { const settings = useSettings(); const { activeFooter: tab, isPanelOpen } = settings; return ( {isPanelOpen ? (
) : ( )}
); } const tabNames = { welcome: 'intro', patterns: 'patterns', sounds: 'sounds', reference: 'reference', console: 'console', settings: 'settings', }; if (TAURI) { tabNames.files = 'files'; } function PanelNav({ children, className, settings, ...props }) { const isHoverBehavior = settings.togglePanelTrigger === 'hover'; return ( ); } function PanelContent({ context, tab }) { useLogger(); switch (tab) { case tabNames.patterns: return ; case tabNames.console: return ; case tabNames.sounds: return ; case tabNames.reference: return ; case tabNames.settings: return ; case tabNames.files: return ; default: return ; } } function PanelTab({ label, isSelected, onClick }) { return ( <> ); } function Tabs({ setTab, tab, className }) { return (
{Object.keys(tabNames).map((key) => { const val = tabNames[key]; return setTab(val)} />; })}
); } function PanelActionButton({ settings }) { const { togglePanelTrigger, isPanelPinned, isPanelOpen } = settings; const isHoverBehavior = togglePanelTrigger === 'hover'; if (!isPanelOpen) { return; } if (isHoverBehavior) { return ; } return setIsPanelOpened(false)} />; } function PinButton({ pinned }) { return ( ); } function CloseButton({ onClick }) { return ( ); }