/* eslint-disable @typescript-eslint/no-explicit-any */ type Props = { extensionName: string preferenceValues: any preferenceItems: any } import { useForm } from 'react-hook-form' import { zodResolver } from '@hookform/resolvers/zod' import { Form, FormControl, FormDescription, FormField, FormItem, Input, FormLabel, FormMessage, Button, } from '@janhq/uikit' import * as z from 'zod' import { toaster } from '@/containers/Toast' import { formatExtensionsName } from '@/utils/converter' const PreferenceExtensions = (props: Props) => { const { extensionName, preferenceValues, preferenceItems } = props const FormSchema = z.record( z .string({ required_error: 'Field is Required' }) .min(1, { message: 'Field is Required' }) ) const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: preferenceValues.reduce( (obj: any, item: { key: any; value: any }) => Object.assign(obj, { [item.key]: item.value }), {} ), }) const onSubmit = async (values: z.infer) => { for (const [key, value] of Object.entries(values)) { // await preferences.set(extensionName, key, value) // await execute(ExtensionService.OnPreferencesUpdate, {}) } toaster({ title: formatExtensionsName(extensionName), description: 'Successfully updated preferences', }) } return (
{formatExtensionsName(extensionName)}
{preferenceItems .filter((x: any) => x.extensionName === extensionName) ?.map((e: any) => ( ( {e.preferenceName} {e.preferenceDescription} )} /> ))}
) } export default PreferenceExtensions