import { ReactNode } from 'react'; import { useTranslation } from 'react-i18next'; import i18n from '/@/i18n/i18n'; import { GridConfig } from '/@/renderer/features/shared/components/grid-config'; import { SettingsButton } from '/@/renderer/features/shared/components/settings-button'; import { TableConfig } from '/@/renderer/features/shared/components/table-config'; import { useSettingsStore, useSettingsStoreActions } from '/@/renderer/store'; import { Group } from '/@/shared/components/group/group'; import { Icon } from '/@/shared/components/icon/icon'; import { Modal } from '/@/shared/components/modal/modal'; import { SegmentedControl } from '/@/shared/components/segmented-control/segmented-control'; import { Stack } from '/@/shared/components/stack/stack'; import { Table } from '/@/shared/components/table/table'; import { useDisclosure } from '/@/shared/hooks/use-disclosure'; import { ItemListKey, ListDisplayType } from '/@/shared/types/types'; const DISPLAY_TYPES = [ { label: ( {i18n.t('table.config.view.table', { postProcess: 'sentenceCase' }) as string} ), value: ListDisplayType.TABLE, }, { label: ( {i18n.t('table.config.view.grid', { postProcess: 'sentenceCase' }) as string} ), value: ListDisplayType.GRID, }, // { // disabled: true, // label: ( // // // {i18n.t('table.config.view.list', { postProcess: 'sentenceCase' }) as string} // // ), // value: ListDisplayType.LIST, // }, ]; export const ListConfigBooleanControl = ({ onChange, value, }: { onChange: (value: boolean) => void; value: boolean; }) => { return ( onChange(value === 'true' ? true : false)} size="sm" value={value ? 'true' : 'false'} w="100%" /> ); }; interface ListConfigMenuProps { listKey: ItemListKey; tableColumnsData: { label: string; value: string }[]; } export const ListConfigMenu = (props: ListConfigMenuProps) => { const { t } = useTranslation(); const displayType = useSettingsStore( (state) => state.lists[props.listKey]?.display, ) as ListDisplayType; const { setList } = useSettingsStoreActions(); const [isOpen, handlers] = useDisclosure(false); return ( <> ({ ...type, }))} fullWidth onChange={(value) => { setList(props.listKey, { display: value as ListDisplayType, }); }} value={displayType} withItemsBorders={false} /> ); }; const Config = ({ displayType, tableColumnsData, ...props }: ListConfigMenuProps & { displayType: ListDisplayType }) => { switch (displayType) { case ListDisplayType.GRID: return ; case ListDisplayType.TABLE: return ; default: return null; } }; export const ListConfigTable = ({ options, }: { options: { component: ReactNode; id: string; label: ReactNode | string }[]; }) => { return ( {options.map((option) => ( {option.label} {option.component} ))}
); };