diff --git a/src/components/FormElements/select.tsx b/src/components/FormElements/select.tsx index 22f482f..f3a3ddc 100644 --- a/src/components/FormElements/select.tsx +++ b/src/components/FormElements/select.tsx @@ -22,6 +22,8 @@ type PropsType = { register?: UseFormRegister; errors?: FieldErrors; required?: boolean; + clearable?: boolean; + onClear?: () => void; } & ( | { placeholder?: string; defaultValue: string } | { placeholder: string; defaultValue?: string } @@ -42,13 +44,22 @@ export function Select({ onChange, onBlur, ref, + clearable = false, + onClear, ...props }: PropsType) { const id = useId(); const [isOptionSelected, setIsOptionSelected] = useState(!!defaultValue); + const [value, setValue] = useState(defaultValue || ""); const error = errors && errors[name]; + const handleClear = () => { + setValue(""); + setIsOptionSelected(false); + onClear?.(); + }; + return (
diff --git a/src/components/Tables/admins/AdminListFilters.tsx b/src/components/Tables/admins/AdminListFilters.tsx index edd3f84..c871356 100644 --- a/src/components/Tables/admins/AdminListFilters.tsx +++ b/src/components/Tables/admins/AdminListFilters.tsx @@ -1,57 +1,95 @@ import InputGroup from "@/components/FormElements/InputGroup"; import { Select } from "@/components/FormElements/select"; -import { AdminRoles, NotificationChannels } from "@/constants/enums"; +import { AdminRoles, AdminStatus } from "@/constants/enums"; import { getEnumAsArray } from "@/utils/shared"; -import useAdminListFilterPresenter from "./useAdminListFilterPresenter"; +import { + FieldValues, + UseFormHandleSubmit, + UseFormRegister, +} from "react-hook-form"; -interface IProps {} +interface AdminListFiltersProps { + filterRegister: UseFormRegister; + setIsFilterModalOpen: (isOpen: boolean) => void; + isMutating: number; + handleFilterSubmit: UseFormHandleSubmit; + search: (data: any) => void; +} -const AdminListFilters = ({}: IProps) => { - const { register } = useAdminListFilterPresenter(); +const AdminListFilters = ({ + filterRegister, + setIsFilterModalOpen, + isMutating, + handleFilterSubmit, + search, +}: AdminListFiltersProps) => { return ( -
+ + {/* + /> */}