import { FormEvent, memo } from 'react'; import { IoClose } from 'react-icons/io5'; import { useSearchParams } from 'react-router-dom'; import { Dialog } from '@base-ui-components/react/dialog'; import useViewSettings from '../../hooks-query/useViewSettings'; import Button from '../buttons/Button'; import IconButton from '../buttons/IconButton'; import Info from '../info/Info'; import { ViewOption } from './viewParams.types'; import { getURLSearchParamsFromObj } from './viewParams.utils'; import { useViewParamsEditorStore } from './viewParamsEditor.store'; import ViewParamsSection from './ViewParamsSection'; import style from './ViewParamsEditor.module.scss'; interface EditFormDrawerProps { viewOptions: ViewOption[]; } export default memo(ViewParamsEditor); function ViewParamsEditor({ viewOptions }: EditFormDrawerProps) { const [_, setSearchParams] = useSearchParams(); const { data: viewSettings } = useViewSettings(); const { isOpen, close } = useViewParamsEditorStore(); const handleClose = () => { close(); }; const resetParams = () => { setSearchParams(); }; const onParamsFormSubmit = (formEvent: FormEvent) => { formEvent.preventDefault(); const newParamsObject = Object.fromEntries(new FormData(formEvent.currentTarget)); const newSearchParams = getURLSearchParamsFromObj(newParamsObject, viewOptions); console.log('New search params:', newParamsObject, newSearchParams.toString()); setSearchParams(newSearchParams); }; return ( { if (!open) { handleClose(); } }} >
Customise
{viewSettings.overrideStyles && ( This view style is being modified by a custom CSS file. )}
{viewOptions.map((section) => ( ))}
); }