/* eslint-disable @typescript-eslint/no-explicit-any */ import { useEffect, useState } from 'react' import { ScrollArea } from '@janhq/uikit' import { motion as m } from 'framer-motion' import { twMerge } from 'tailwind-merge' import Advanced from '@/screens/Settings/Advanced' import AppearanceOptions from '@/screens/Settings/Appearance' import ExtensionCatalog from '@/screens/Settings/CoreExtensions/ExtensionsCatalog' import PreferenceExtensions from '@/screens/Settings/CoreExtensions/PreferenceExtensions' import { formatExtensionsName } from '@/utils/converter' const SettingsScreen = () => { const [activeStaticMenu, setActiveStaticMenu] = useState('Appearance') const [menus, setMenus] = useState([]) const [preferenceItems, setPreferenceItems] = useState([]) const [preferenceValues, setPreferenceValues] = useState([]) useEffect(() => { const menu = ['Appearance'] if (typeof window !== 'undefined' && window.electronAPI) { menu.push('Core Extensions') } menu.push('Advanced') setMenus(menu) }, []) const preferenceExtensions = preferenceItems .map((x) => x.extensionnName) .filter((x, i) => { // return prefere/nceItems.map((x) => x.extensionName).indexOf(x) === i }) const [activePreferenceExtension, setActivePreferenceExtension] = useState('') const handleShowOptions = (menu: string) => { switch (menu) { case 'Core Extensions': return case 'Appearance': return case 'Advanced': return default: return ( ) } } return (
{menus.map((menu, i) => { const isActive = activeStaticMenu === menu return (
{ setActiveStaticMenu(menu) setActivePreferenceExtension('') }} className="block w-full cursor-pointer" > {menu}
{isActive && ( )}
) })}
{preferenceExtensions.length > 0 && ( )}
{preferenceExtensions.map((menu, i) => { const isActive = activePreferenceExtension === menu return (
{ setActivePreferenceExtension(menu) setActiveStaticMenu('') }} className="block w-full cursor-pointer" > {formatExtensionsName(String(menu))}
{isActive ? ( ) : null}
) })}
{handleShowOptions(activeStaticMenu || activePreferenceExtension)}
) } export default SettingsScreen