All files / libs/design-system/ext/src/lib/forms/formik-cell-text-field FormikCellTextField.tsx

100% Statements 35/35
100% Branches 1/1
100% Functions 1/1
100% Lines 35/35

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 361x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 7x 1x 1x  
import { memo } from 'react';
 
import { CellTextField, type CellTextFieldProps } from '@allshares/studio-design-system';
import { useFormikFieldAdapter, type FormikFieldProps } from '@amalia/ext/formik';
 
import { type InputTypeProp } from '../formik-input/FormikInput';
 
export type FormikCellTextFieldProps<TType extends InputTypeProp = 'text'> = FormikFieldProps<
  Omit<CellTextFieldProps, 'row'>,
  TType
>;
 
const FormikCellTextFieldBase = function FormikCellTextField<TType extends InputTypeProp = 'text'>({
  validate, // Omit validate and any props not passed to CellTextField.
  type = 'text' as TType,
  ...props
}: FormikCellTextFieldProps<TType>) {
  const { onChange, ...formikFieldProps } = useFormikFieldAdapter<CellTextFieldProps['value'], TType>({
    ...props,
    validate,
    type,
  });
 
  return (
    <CellTextField
      {...props}
      {...formikFieldProps}
      row={undefined}
      type={type}
      onChange={onChange as (value: string) => void}
    />
  );
};
 
export const FormikCellTextField = memo(FormikCellTextFieldBase) as typeof FormikCellTextFieldBase;