import { ReactNode, useMemo } from 'react'; import chunk from 'lodash/chunk'; import { Grid, GridColumnsCount, LayoutProps, Text } from '@servicetitan/design-system'; import { SettingsSection } from '../settings-section'; import { CompanyTradeCheckbox } from '../company-trade-checkbox'; export interface Trade { qaKey?: string; name: string; value: TradeType; active: boolean; asset: { main: string; x2: string; x3: string; alt?: string; }; } export interface CompanyTradesPickerProps { trades: Trade[]; layout?: LayoutProps['type']; className?: string; title?: ReactNode; text?: ReactNode | string; columns?: number; onTradeChange(t?: TradeType): void; } export function CompanyTradesPicker({ trades, onTradeChange, layout, className, columns = 4, title = 'Select Your Trades', text = 'Choose which trades describe your business so we can give you relevant content and merge tags.', }: CompanyTradesPickerProps) { const rows = useMemo( () => chunk(trades, columns).map((row, idx) => ({ row, key: `row=${idx}` })), [trades, columns], ); return ( {rows.map(({ row, key }) => { return ( {row.map(trade => { return ( className={`qa-settings-select-your-trades-${ trade.qaKey ?? trade.value }`} active={trade.active} onClick={onTradeChange} value={trade.value} label={
{trade.asset.alt {trade.name}
} />
); })}
); })}
); }