import { type ComboboxItem, Group, MultiSelect, Select, Slider, Stack, Text, } from '@mantine/core'; import { useCommonHooks } from 'hooks'; import { multiSelectClasses, selectClasses, sliderClasses, stackClasses } from 'styles'; function SettingsCard({ categories, sectionTitle, filter, sort, density, scale, }: { categories: ComboboxItem[]; sectionTitle: string; filter: any; sort: any; density: any; scale: any; }) { const { theme, updateSetting } = useCommonHooks(); return ( {sectionTitle} Density { if (sectionTitle === 'Applications') { updateSetting('appDensity', value); } else if (sectionTitle === 'Bookmarks') { updateSetting('bookmarkDensity', value); } }} min={1} max={16} marks={[{ value: 6, label: 'Default' }]} onDoubleClick={() => { if (sectionTitle === 'Applications') { updateSetting('appDensity', 6); } else if (sectionTitle === 'Bookmarks') { updateSetting('bookmarkDensity', 6); } }} /> {scale !== undefined && ( Scale { if (sectionTitle === 'Applications') { updateSetting('appScale', value); } else if (sectionTitle === 'Bookmarks') { updateSetting('bookmarkScale', value); } }} step={0.1} min={0.2} max={3} marks={[{ value: 1, label: 'Default' }]} onDoubleClick={() => { if (sectionTitle === 'Applications') { updateSetting('appScale', 1); } else if (sectionTitle === 'Bookmarks') { updateSetting('bookmarkScale', 1); } }} /> )} a.label.localeCompare(b.label), ) ?? [] } placeholder={ filter.length > 0 ? filter.length === 1 ? filter[0] : `${filter.length} ${sectionTitle.toLocaleLowerCase()} selected` : `No ${sectionTitle.toLocaleLowerCase()} selected` } defaultValue={filter} onChange={(data: string[]) => { if (sectionTitle === 'Applications') { updateSetting('appFilter', data); } else if (sectionTitle === 'Bookmarks') { updateSetting('bookmarkFilter', data); } }} classNames={multiSelectClasses} comboboxProps={{ withinPortal: false, position: 'top', }} styles={ theme.textShadowsEnabled ? { label: { boxShadow: '2px 2px var(--mantine-color-border-0)' }, } : undefined } />