import { createForm, FieldValues, getValues, SubmitHandler, } from "@modular-forms/solid"; import { TextInput } from "@/src/Form/fields/TextInput"; import { Button } from "./components/button"; import { callApi } from "./api"; import { API } from "@/api/API"; import { createSignal, Match, Switch } from "solid-js"; import { Typography } from "./components/Typography"; import { createQuery } from "@tanstack/solid-query"; import { makePersisted } from "@solid-primitives/storage"; interface APITesterForm extends FieldValues { endpoint: string; payload: string; } export const ApiTester = () => { const [persistedTestData, setPersistedTestData] = makePersisted( createSignal(), { name: "_test_data", storage: localStorage, }, ); const [formStore, { Form, Field }] = createForm({ initialValues: persistedTestData(), }); const query = createQuery(() => ({ // eslint-disable-next-line @tanstack/query/exhaustive-deps queryKey: [], queryFn: async () => { const values = getValues(formStore); return await callApi( values.endpoint as keyof API, JSON.parse(values.payload || ""), ); }, staleTime: Infinity, })); const handleSubmit: SubmitHandler = (values) => { console.log(values); setPersistedTestData(values); query.refetch(); const v = getValues(formStore); console.log(v); // const result = callApi( // values.endpoint as keyof API, // JSON.parse(values.payload) // ); // setResult(result); }; return (

API Tester

{(field, fieldProps) => ( )} {(field, fieldProps) => ( )}
Result loading ...
              {JSON.stringify(query.data, null, 2)}
            
); };