MCPcopy
hub / github.com/daeuniverse/daed / ConfigFormDrawer

Function ConfigFormDrawer

apps/web/src/components/ConfigFormModal.tsx:121–531  ·  view source on GitHub ↗
({
  ref,
  opened,
  onClose,
}: {
  ref?: React.Ref<ConfigFormModalRef>
  opened: boolean
  onClose: () => void
})

Source from the content-addressed store, hash-verified

119}
120
121export function ConfigFormDrawer({
122 ref,
123 opened,
124 onClose,
125}: {
126 ref?: React.Ref<ConfigFormModalRef>
127 opened: boolean
128 onClose: () => void
129}) {
130 const { t } = useTranslation()
131 const [editingID, setEditingID] = useState<string>()
132 const [origins, setOrigins] = useState<FormValues>()
133
134 const {
135 handleSubmit,
136 setValue: setValueOriginal,
137 reset,
138 control,
139 formState: { errors, isDirty },
140 } = useForm<FormValues>({
141 resolver: zodResolver(schema),
142 defaultValues,
143 mode: 'all',
144 })
145
146 const setValue = useSetValue(setValueOriginal)
147 const formValues = useWatch({ control })
148
149 const initOrigins = (origins: FormValues) => {
150 reset(origins)
151 setOrigins(origins)
152 }
153
154 const resetForm = useCallback(() => {
155 reset(defaultValues)
156 }, [reset])
157
158 useImperativeHandle(ref, () => ({
159 form: {
160 setValues: (values: FormValues) => reset(values),
161 reset: resetForm,
162 },
163 setEditingID,
164 initOrigins,
165 }))
166
167 const handleOpenChange = useCallback(
168 (open: boolean) => {
169 if (!open) {
170 onClose()
171 // Delay reset until after dialog close animation completes
172 setTimeout(() => {
173 resetForm()
174 setEditingID(undefined)
175 setOrigins(undefined)
176 }, 200)
177 }
178 },

Callers

nothing calls this directly

Calls 6

useSetValueFunction · 0.90
useGeneralQueryFunction · 0.90
GET_LOG_LEVEL_STEPSFunction · 0.90
useCreateConfigMutationFunction · 0.90
useUpdateConfigMutationFunction · 0.90
handleSubmitFunction · 0.85

Tested by

no test coverage detected