SelectQuoteLabs / SQForm

Internal Form library utilizing Formik, Yup and Material-UI
MIT License
13 stars 10 forks source link

Allow partial props for muiFieldProps in SQFormDatePickerWithDateFNS #880

Open Ariel-Schnur-SQ opened 1 year ago

Ariel-Schnur-SQ commented 1 year ago

TS is yelling at me for excluding some muiFieldProps in my SQFormDatePickerWithDateFNS. Is it possible to update the type for muiFieldProps to allow partial props?

My usage:

<SQFormDatePickerWithDateFNS
      name={question.id}
      label={labelText || ''}
      onBlur={onBlur}
      muiFieldProps={{
        onAccept: onDateAccept,
        minDate: question.minValue ? new Date(question.minValue) : undefined,
        maxDate: question.maxValue ? new Date(question.maxValue) : undefined,
      }}
      isDisabled={isDisabled}
      size={4}
/>

TS error TLDR (I think): you need onChange, value, and renderInput in muiFieldProps!

Full TS error:

Type '{ onAccept: ((value: Date | null) => void) | undefined; minDate: Date | undefined; maxDate: Date | undefined; }' is not assignable to type 'MuiFieldProps<Date>'.
  Type '{ onAccept: ((value: Date | null) => void) | undefined; minDate: Date | undefined; maxDate: Date | undefined; }' is missing the following properties from type 'BaseDatePickerProps<Date, Date>': onChange, value, renderInputts(2322)
SQFormDatePickerWithDateFNS.d.ts(8, 5): The expected type comes from property 'muiFieldProps' which is declared here on type 'IntrinsicAttributes & Omit<SQFormDatePickerProps, "onChange" | "muiFieldProps"> & { onChange?: ((date: Date | null) => void) | undefined; muiFieldProps?: MuiFieldProps<Date> | undefined; }'