diff --git a/packages/qpa/App/Context/AppContext.tsx b/packages/qpa/App/Context/AppContext.tsx index b43fad9..8e805b0 100644 --- a/packages/qpa/App/Context/AppContext.tsx +++ b/packages/qpa/App/Context/AppContext.tsx @@ -5,6 +5,7 @@ import MeQuery, { UserData } from "./MeQuery" interface IAppContext { me: UserData isSSR: boolean + supportedLanguages: string[] } interface Props { @@ -12,7 +13,8 @@ interface Props { children: React.ReactChild } -const AppContext = React.createContext({ me: null, isSSR: false }) +const SUPPORTED_LANGUAGES = ['en', 'es'] +const AppContext = React.createContext({ me: null, isSSR: false, supportedLanguages: SUPPORTED_LANGUAGES }) const { Provider, Consumer } = AppContext const AppContextProvider = (props: Props) => ( @@ -27,6 +29,7 @@ const AppContextProvider = (props: Props) => ( { props.children diff --git a/packages/qpa/Calendar/List/ListItem.tsx b/packages/qpa/Calendar/List/ListItem.tsx index 00a7675..2de099e 100644 --- a/packages/qpa/Calendar/List/ListItem.tsx +++ b/packages/qpa/Calendar/List/ListItem.tsx @@ -2,7 +2,6 @@ import styled from "@emotion/styled" import * as React from "react" import {hot} from "react-hot-loader" import {Link} from "react-router-dom" -import {AppContext} from "../../App/Context/AppContext" import {OccurrenceData} from "../../Event/OccurrencesQuery" interface Props { @@ -25,7 +24,7 @@ const ListItem = (props: Props) => { - + {info.title} diff --git a/packages/qpa/Event/CreateEvent.tsx b/packages/qpa/Event/CreateEvent.tsx index cecc7f0..c46e77a 100644 --- a/packages/qpa/Event/CreateEvent.tsx +++ b/packages/qpa/Event/CreateEvent.tsx @@ -1,10 +1,12 @@ import * as React from "react" import {useMessageCenter} from "qpa-message-center" +import {useAppContext} from "../App/Context/AppContext" import CreateEventMutation from "./CreateEventMutation" import EventForm, {EventFormData} from "./EventForm" const CreateEvent = () => { const { addMessage } = useMessageCenter() + const { supportedLanguages } = useAppContext() return { addMessage({ @@ -15,6 +17,7 @@ const CreateEvent = () => { { (createEvent, { loading }) => ( { createEvent({ diff --git a/packages/qpa/Event/EditEvent.tsx b/packages/qpa/Event/EditEvent.tsx index 8999bac..310d6cd 100644 --- a/packages/qpa/Event/EditEvent.tsx +++ b/packages/qpa/Event/EditEvent.tsx @@ -1,5 +1,6 @@ import { Spinner } from "qpa-components" import * as React from "react" +import {useAppContext} from "../App/Context/AppContext" import removeTypename from "../App/remove-typename" import EditEventMutation from "./EditEventMutation" import EventForm from "./EventForm" @@ -9,51 +10,58 @@ interface Props { eventId: string } -const EditEvent = (props: Props) => ( - { - alert("Event edited successfully") - }}> - { - (editEvent, { loading: editLoading }) => ( - - { - ({data, error, loading}) => { - if (loading) { - return - } - if (error) { - return error.message - } - const event = removeTypename(data.event) +const EditEvent = (props: Props) => { + const { supportedLanguages } = useAppContext() - return ( - { - editEvent({ - variables: { - input: { - id: props.eventId, - ...values, - }, - }, - }) - }} - values={{ - meta: { - tags: event.meta.tags, - }, - time: event.time, - location: event.location, - infos: event.infos, - status: event.status, - }}/> - ) + return ( + { + alert("Event edited successfully") + }}> + { + (editEvent, { loading: editLoading }) => ( + + { + ({data, error, loading}) => { + if (loading) { + return + } + if (error) { + return error.message + } + const event = removeTypename(data.event) + + return ( + { + editEvent({ + variables: { + input: { + id: props.eventId, + ...values, + }, + }, + }) + }} + values={{ + meta: { + tags: event.meta.tags, + }, + time: event.time, + location: event.location, + infos: event.infos, + status: event.status, + }}/> + ) + } + } + + ) } - } - - ) - } - -) + + ) + +} + export default EditEvent diff --git a/packages/qpa/Event/EventForm.tsx b/packages/qpa/Event/EventForm.tsx index 6c1198b..3edfd24 100644 --- a/packages/qpa/Event/EventForm.tsx +++ b/packages/qpa/Event/EventForm.tsx @@ -10,6 +10,7 @@ interface Props { values?: EventFormData onSubmit: (values: EventFormData) => void loading: boolean + languages: string[] } export interface EventFormData { @@ -59,18 +60,13 @@ const EventForm = (props: Props) => { start: nextWeekTenAM.toISOString().substring(0, 16), end: nextWeekMidday.toISOString().substring(0, 16), }, - infos: [ + infos: props.languages.map(lang => ( { - language: "en", + language: lang, title: "", description: "", - }, - { - language: "es", - title: "", - description: "" } - ], + )), location: { name: "", }, @@ -84,21 +80,32 @@ const EventForm = (props: Props) => { const errors: any = {} }} > - {({isValid, setFieldValue}) => ( + {({isValid, setFieldValue, values}) => ( -

Title

- - {({field}) => } - -

Description

- - {({field}) => ( -