diff --git a/pages/events/[slug].tsx b/pages/events/[slug].tsx index deace73..6c3b420 100644 --- a/pages/events/[slug].tsx +++ b/pages/events/[slug].tsx @@ -20,6 +20,7 @@ import { useAxios } from '../../components/auth/requests' import { faAsterisk } from '@fortawesome/free-solid-svg-icons' import { FestaIcon } from '../../components/generic/renderers/fontawesome' import { usePromise, UsePromiseStatus } from '../../components/generic/loading/promise' +import { EditingContextProvider } from '../../components/generic/editable/provider' export async function getServerSideProps(context: NextPageContext) { @@ -38,35 +39,21 @@ type PageEventProps = { const PageEvent: NextPage = ({ slug }) => { - const { t } = - useTranslation() - - const { data, isValidating, mutate } = - useSWR(`/api/events/${slug}`) - - const [auth, _setAuth] = - useDefinedContext(AuthContext) - - const axios = - useAxios() - - const { run: patchEditsToAPI, status: patchStatus } = - usePromise((d) => axios.patch(`/api/events/${slug}`, d)) - - const isLoading = isValidating || patchStatus === UsePromiseStatus.PENDING + const { t } = useTranslation() + const { data, isValidating, mutate } = useSWR(`/api/events/${slug}`) + const [auth,] = useDefinedContext(AuthContext) + const axios = useAxios() const save = useCallback( async () => { - if (data === undefined) { console.warn("[PageEvent] Tried to save while no data was available.") return } - patchEditsToAPI(data) + await axios.patch(`/api/events/${slug}`, data) mutate(data) - - console.info("[PageEvent] Saved successfully!") + console.debug("[PageEvent] Saved updated data successfully!") }, [axios, data] ) @@ -79,19 +66,20 @@ const PageEvent: NextPage = ({ slug }) => { src={data?.postcard || defaultPostcard} /> - (EditingMode.VIEW)}> + mutate(async state => state ? { ...state, name: e.target.value } : undefined, { revalidate: false })} - viewPrefix={isLoading ? <>   : undefined} + placeholder={t("eventTitlePlaceholder")} /> } content={ mutate(async state => state ? { ...state, description: e.target.value } : undefined, { revalidate: false })} + placeholder={t("eventDescriptionPlaceholder")} /> } /> @@ -103,7 +91,7 @@ const PageEvent: NextPage = ({ slug }) => { /> } - + } diff --git a/public/locales/it-IT/common.json b/public/locales/it-IT/common.json index 5963c79..a240931 100644 --- a/public/locales/it-IT/common.json +++ b/public/locales/it-IT/common.json @@ -17,5 +17,7 @@ "landingEventsCreateRejected": "Creazione dell'evento fallita:", "landingEventsCreateFulfilled": "Evento creato con successo! Trasferimento alla pagina dell'evento in corso...", "toolToggleEditingSave": "Salva modifiche", - "toolToggleEditingEdit": "Modifica" + "toolToggleEditingEdit": "Modifica", + "eventNamePlaceholder": "Nome evento", + "eventDescriptionPlaceholder": "Descrizione evento in **Markdown**" } \ No newline at end of file