/* eslint-disable @typescript-eslint/no-explicit-any */ type Props = { pluginName: 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 { formatPluginsName } from '@/utils/converter' const PreferencePlugins = (props: Props) => { const { pluginName, 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(pluginName, key, value) // await execute(PluginService.OnPreferencesUpdate, {}) } toaster({ title: formatPluginsName(pluginName), description: 'Successfully updated preferences', }) } return (
{formatPluginsName(pluginName)}
{preferenceItems .filter((x: any) => x.pluginName === pluginName) ?.map((e: any) => ( ( {e.preferenceName} {e.preferenceDescription} )} /> ))}
) } export default PreferencePlugins