38 lines
969 B
TypeScript
Raw Normal View History

2022-10-20 11:57:30 -04:00
import controlComponent from './SelectControl';
import previewComponent from './SelectPreview';
import schema from './schema';
import { validateMinMax } from '@staticcms/core/lib/widgets/validations';
2022-10-20 11:57:30 -04:00
import type { SelectField, WidgetParam } from '@staticcms/core/interface';
2022-10-20 11:57:30 -04:00
const SelectWidget = (): WidgetParam<string | number | (string | number)[], SelectField> => {
2022-10-20 11:57:30 -04:00
return {
name: 'select',
controlComponent,
previewComponent,
options: {
validator: ({ field, value, t }) => {
const min = field.min;
const max = field.max;
if (!field.multiple || typeof value === 'string') {
return false;
}
const error = validateMinMax(t, field.label ?? field.name, value, min, max);
return error ? error : false;
},
schema,
},
};
};
export {
controlComponent as SelectControl,
previewComponent as SelectPreview,
schema as SelectSchema,
};
2022-10-20 11:57:30 -04:00
export default SelectWidget;