From 7ffe95e2a7edb7e1a801cde15cd51c8329f957da Mon Sep 17 00:00:00 2001 From: Mopsior Date: Sun, 20 Nov 2022 18:28:23 +0100 Subject: [PATCH 1/6] Add apollo --- codegen.ts | 37 + .../support-form/components/SupportForm.tsx | 21 +- .../fragments/Message/Message.generated.tsx | 71 + .../fragments/Message/Message.graphql | 6 + .../support-form/hooks/useMessageStore.ts | 16 + .../mutations/CreateMessage.generated.tsx | 107 + .../mutations/CreateMessage.graphql | 5 + graphql.schema.json | 1342 ++ lib/apollo-client.ts | 8 + package-lock.json | 14256 ++++++++++++---- package.json | 14 +- pages/_app.tsx | 10 +- src/types.ts | 77 + types.ts | 77 + 14 files changed, 13047 insertions(+), 3000 deletions(-) create mode 100644 codegen.ts create mode 100644 features/support-form/fragments/Message/Message.generated.tsx create mode 100644 features/support-form/fragments/Message/Message.graphql create mode 100644 features/support-form/hooks/useMessageStore.ts create mode 100644 features/support-form/mutations/CreateMessage.generated.tsx create mode 100644 features/support-form/mutations/CreateMessage.graphql create mode 100644 graphql.schema.json create mode 100644 lib/apollo-client.ts create mode 100644 src/types.ts create mode 100644 types.ts diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 0000000..60afa1c --- /dev/null +++ b/codegen.ts @@ -0,0 +1,37 @@ + +import type { CodegenConfig } from '@graphql-codegen/cli'; + +const config: CodegenConfig = { + overwrite: true, + schema: "https://sanavaulth-api.herokuapp.com/graphql", + documents: "./**/*.graphql", + generates: { + "src/types.ts": { + plugins: [ + "typescript", + "typescript-operations", + "fragment-matcher" + ], + config: { + apolooClientVersion: 3, + useExplicitTyping: true, + }, + }, + "./graphql.schema.json": { + plugins: ["introspection"], + }, + "src/": { + preset: "near-operation-file", + presetConfig: { + extension: ".generated.tsx", + baseTypesPath: "types.ts", + }, + plugins: ['typescript', 'typescript-operations', 'typescript-react-apollo'], + config: { + withHooks: true, + } + } + } +}; + +export default config; diff --git a/features/support-form/components/SupportForm.tsx b/features/support-form/components/SupportForm.tsx index 6ef7d9d..7650dd4 100644 --- a/features/support-form/components/SupportForm.tsx +++ b/features/support-form/components/SupportForm.tsx @@ -4,33 +4,42 @@ import { Dialog } from "components/Dialog"; import { Input } from "components/Input"; import { TextArea } from "components/TextArea"; import { useTranslation } from "next-i18next"; +import { useForm } from "react-hook-form"; +import { useMessageStore } from "../hooks/useMessageStore"; +import { MessageInput } from "../mutations/CreateMessage.generated"; export function SupportForm() { - const { t } = useTranslation('common') + const { t } = useTranslation('common'); + const { register, handleSubmit } = useForm(); + const { createMessage } = useMessageStore(); + + function onMessageCreate(data: MessageInput) { + createMessage(data, '10000000-aaaa-bbbb-cccc-000000000001'); + } return ( {t("supportForm.help")}}> -
+