import useLocalStorageState from 'use-local-storage-state'; import { DroppedFile } from './useFileDrop.ts'; import { THEME } from './theme.ts'; import { PlanDrop } from './PlanDrop.tsx'; import { PlanViz } from './PlanViz.tsx'; import { usePlanInUrl } from './usePlanInUrl.ts'; import { useThemeMode } from './ThemeModeContext.tsx'; import React, { ReactNode } from 'react'; import { DescriptorRequest } from './DescriptorRequest.tsx'; export function Fiddle() { const [missingDescriptor, setMissingDescriptor] = React.useState>(); const [plan, setPlan] = useLocalStorageState('plan-v2'); const [descriptors, setDescriptors] = useLocalStorageState('descriptors'); const { isDarkMode } = useThemeMode(); usePlanInUrl(plan, setPlan, descriptors, setMissingDescriptor); const theme = THEME[isDarkMode ? 'dark' : 'light']; const wrap = (children: ReactNode) => (
{children}
); if (missingDescriptor) { return wrap( setDescriptors(prev => (prev ?? []).concat(file)) } />, ); } else if (plan) { return wrap( , ); } else { return wrap( , ); } }