From 2e69a0f963c5866eaab17fa7f17dd43693783a3e Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Wed, 20 Jul 2022 13:26:34 +0200 Subject: [PATCH] Capture onSubmit to save the form --- components/events/actions/edit.tsx | 65 +++++++++++-------- components/events/actions/view.tsx | 18 ++--- .../events/toolbar/toolToggleEditing.tsx | 12 ++-- pages/events/[slug].tsx | 7 +- 4 files changed, 56 insertions(+), 46 deletions(-) diff --git a/components/events/actions/edit.tsx b/components/events/actions/edit.tsx index d4f7e49..90d4880 100644 --- a/components/events/actions/edit.tsx +++ b/components/events/actions/edit.tsx @@ -1,45 +1,54 @@ import { Event } from "@prisma/client" -import { useCallback, useMemo } from "react" +import { Dispatch, useMemo } from "react" import { KeyedMutator } from "swr" +import { UsePromise } from "../../generic/loading/promise" import { ViewContent } from "../../generic/views/content" export type EventsActionViewProps = { data: Event, mutate: KeyedMutator, + save: UsePromise, + setEditing: Dispatch, } -export const EventsActionEdit = ({ data, mutate }: EventsActionViewProps) => { +export const EventsActionEdit = ({ data, mutate, save, setEditing }: EventsActionViewProps) => { const name = data.name const description = data.description return ( - ( - mutate((prev) => ({ ...prev!, name: e.target.value }), { revalidate: false })} - /> - ), - [mutate, name] - ) - } - content={<> - {useMemo( - () => ( -