import type React from "react"; import { Controller, useFieldArray, useForm } from "react-hook-form"; import { Button } from "@app/components/form/Button.js"; import { IconButton } from "@app/components/form/IconButton.js"; import { InfoWrapper } from "@app/components/form/InfoWrapper.js"; import { Input } from "@app/components/form/Input.js"; import { Toggle } from "@app/components/form/Toggle.js"; import { useAppStore } from "@app/core/stores/appStore.js"; import { MapValidation } from "@app/validation/appConfig/map.js"; import { Form } from "@components/form/Form"; import { TrashIcon } from "@heroicons/react/24/outline"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const Map = (): JSX.Element => { const { rasterSources, setRasterSources } = useAppStore(); const { register, handleSubmit, formState: { errors, isDirty }, control, reset } = useForm({ defaultValues: { // wmsSources: wmsSources ?? [ // { // url: "", // tileSize: 512, // type: "raster" // } // ] }, resolver: classValidatorResolver(MapValidation) }); const { fields, append, remove, insert } = useFieldArray({ control, name: "rasterSources" }); const onSubmit = handleSubmit((data) => { setRasterSources(data.rasterSources); }); // useEffect(() => { // reset(rasterSources); // }, [reset, rasterSources]); return (
{fields.map((field, index) => (
( )} /> } onClick={() => { remove(index); }} />
))}
); };