import { ReactNode } from 'react'; 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 { Popover } from '/@/shared/components/popover/popover'; import { ScrollArea } from '/@/shared/components/scroll-area/scroll-area'; import { SegmentedControl } from '/@/shared/components/segmented-control/segmented-control'; import { Stack } from '/@/shared/components/stack/stack'; import { Table } from '/@/shared/components/table/table'; 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 displayType = useSettingsStore((state) => state.lists[props.listKey].display); const { setList } = useSettingsStoreActions(); return ( ({ ...type, }))} fullWidth onChange={(value) => { setList(props.listKey, { display: value as ListDisplayType, }); }} value={displayType} withItemsBorders={false} /> ); }; const Config = ({ displayType, ...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} ))}
); };