packages/next/src/select-table/useSize.tsx (33 lines of code) (raw):

interface ISize { ( fieldSize: 'large' | 'default' | 'small', searchSize: 'large' | 'medium', tableSize: 'small' | 'medium' ): { searchSize: 'large' | 'medium' tableSize: 'small' | 'medium' } } const useSize: ISize = (fieldSize = 'default', searchSize, tableSize) => { const fieldSizeMap: any = { small: { searchSize: 'medium', tableSize: 'small', }, default: { searchSize: 'medium', tableSize: 'medium', }, large: { searchSize: 'large', tableSize: 'medium', }, } const { searchSize: fieldSearchSize, tableSize: fieldTableSize } = fieldSizeMap[fieldSize] return { searchSize: searchSize || fieldSearchSize, tableSize: tableSize || fieldTableSize, } } export { useSize }