import { Box, Button, Input, Text } from "@saleor/macaw-ui/next"; import { NextPage } from "next"; import { SectionWithDescription } from "../../../components/section-with-description"; import { BoxWithBorder } from "../../../components/box-with-border"; import { defaultPadding } from "../../../components/ui-defaults"; import { BoxFooter } from "../../../components/box-footer"; import { trpcClient } from "../../../modules/trpc/trpc-client"; import { useDashboardNotification } from "@saleor/apps-shared/src/use-dashboard-notification"; import { Controller, useForm } from "react-hook-form"; import { SendgridCreateConfigurationInput } from "../../../modules/sendgrid/configuration/sendgrid-config-input-schema"; import { BasicLayout } from "../../../components/basic-layout"; import { useRouter } from "next/router"; import { sendgridUrls } from "../../../modules/sendgrid/urls"; import { appUrls } from "../../../modules/app-configuration/urls"; import { setBackendErrors } from "../../../lib/set-backend-errors"; const NewSendgridConfigurationPage: NextPage = () => { const router = useRouter(); const { notifySuccess, notifyError } = useDashboardNotification(); const { handleSubmit, control, setError } = useForm(); const { mutate: createConfiguration } = trpcClient.sendgridConfiguration.createConfiguration.useMutation({ onSuccess: async (data, variables) => { notifySuccess("Configuration saved"); router.push(sendgridUrls.configuration(data.id)); }, onError(error) { setBackendErrors({ error, setError, notifyError, }); }, }); return ( Connect Sendgrid with Saleor. Provide unique name for your configuration - you can create more than one. For example - production and development. Then, pass your API Key. Obtain it here. } >
{ createConfiguration({ ...data, }); })} > ( )} /> ( // TODO: add validation )} />
); }; export default NewSendgridConfigurationPage;