From 6a7593be678f3bc4b82188a8989571ff9e4a1011 Mon Sep 17 00:00:00 2001 From: Amit Jakubowicz Date: Mon, 25 Nov 2019 10:05:18 +0100 Subject: [PATCH] Upload image --- .graphqlconfig | 2 +- @types/graphql.d.ts | 12 ++++----- @types/index.d.ts | 1 + packages/qpa/App/Event/EventDetails.msg.json | 8 ++++-- packages/qpa/App/Event/EventDetails.tsx | 19 ++++++++++++-- ...entCoverImage.tsx => EventImageUpload.tsx} | 19 ++++++++------ .../qpa/App/Event/useEventDetailsQuery.ts | 26 ++++++++++++++++--- ...seSetCoverImage.ts => useSetEventImage.ts} | 14 +++++++--- schema.graphql | 16 ++++++------ 9 files changed, 84 insertions(+), 33 deletions(-) rename packages/qpa/App/Event/{EventCoverImage.tsx => EventImageUpload.tsx} (58%) rename packages/qpa/App/Event/{useSetCoverImage.ts => useSetEventImage.ts} (62%) diff --git a/.graphqlconfig b/.graphqlconfig index 91238e8..6d005fe 100644 --- a/.graphqlconfig +++ b/.graphqlconfig @@ -4,7 +4,7 @@ "extensions": { "endpoints": { "Default GraphQL Endpoint": { - "url": "http://localhost:4000/graphql", + "url": "https://alpha.quepasaalpujarra.com/graphql", "headers": { "user-agent": "JS GraphQL" }, diff --git a/@types/graphql.d.ts b/@types/graphql.d.ts index f5f1ed7..ecd7628 100644 --- a/@types/graphql.d.ts +++ b/@types/graphql.d.ts @@ -71,14 +71,14 @@ declare namespace GQL { interface IEventImages { __typename: 'EventImages'; - cover: IImage | null; - gallery: Array | null; - poster: IImage | null; - thumb: IImage | null; + cover: IEventImage | null; + gallery: Array | null; + poster: IEventImage | null; + thumb: IEventImage | null; } - interface IImage { - __typename: 'Image'; + interface IEventImage { + __typename: 'EventImage'; url: string; } diff --git a/@types/index.d.ts b/@types/index.d.ts index a5ef514..b957515 100644 --- a/@types/index.d.ts +++ b/@types/index.d.ts @@ -1,3 +1,4 @@ export type EventStatus = "confirmed" | "canceled" +export type EventImageType = "cover" | "thumb" | "gallery" | "poster" declare module "*.png" declare module "*.svg" diff --git a/packages/qpa/App/Event/EventDetails.msg.json b/packages/qpa/App/Event/EventDetails.msg.json index a0452b4..835847e 100644 --- a/packages/qpa/App/Event/EventDetails.msg.json +++ b/packages/qpa/App/Event/EventDetails.msg.json @@ -1,8 +1,12 @@ { "en-GB": { - "event-not-found": "The event behind the link you entered does not exist." + "event-not-found": "The event behind the link you entered does not exist.", + "upload-cover-image": "Upload cover image", + "upload-poster-image": "Upload poster image" }, "es-ES": { - "event-not-found": "El evento atras del enlace que has entrado no existe." + "event-not-found": "El evento atras del enlace que has entrado no existe.", + "upload-cover-image": "Subir imagen de fondo", + "upload-poster-image": "Subir imagen de cartel" } } diff --git a/packages/qpa/App/Event/EventDetails.tsx b/packages/qpa/App/Event/EventDetails.tsx index ca612d2..f7e78c6 100644 --- a/packages/qpa/App/Event/EventDetails.tsx +++ b/packages/qpa/App/Event/EventDetails.tsx @@ -8,7 +8,7 @@ import { RouteComponentProps, withRouter } from "react-router" import { useGetAvailableTagsQuery } from "../../EventTags/useGetAvaiableTagsQuery" import { useAppContext } from "../Context/AppContext" import useEventDetailsQuery from "./useEventDetailsQuery" -import EventCoverImage from "./EventCoverImage" +import EventImageUpload from "./EventImageUpload" import intl from "react-intl-universal" import messages from "./EventDetails.msg.json" @@ -60,8 +60,23 @@ const EventDetails = (props: Props) => { const info = event.infos[0] return ( - + + {info.title} + { + event.images?.cover?.url ? : null + } + {availableTagsLoading ? ( ) : ( diff --git a/packages/qpa/App/Event/EventCoverImage.tsx b/packages/qpa/App/Event/EventImageUpload.tsx similarity index 58% rename from packages/qpa/App/Event/EventCoverImage.tsx rename to packages/qpa/App/Event/EventImageUpload.tsx index ef2963a..3946305 100644 --- a/packages/qpa/App/Event/EventCoverImage.tsx +++ b/packages/qpa/App/Event/EventImageUpload.tsx @@ -1,19 +1,22 @@ -import { useFormik } from "formik" import { Button } from "qpa-components" import * as React from "react" import styled from "@emotion/styled" +import { EventImageType } from "../../../../@types" import { EventDetailsData } from "./useEventDetailsQuery" -import useSetCoverImage from "./useSetCoverImage" +import useSetEventImage from "./useSetEventImage" interface Props { event: EventDetailsData canEdit: boolean + imageType: EventImageType + title?: string } -const EventCoverImage = (props: Props) => { - const [uploadImage, { data, loading, error }] = useSetCoverImage() +const EventImageUpload = (props: Props) => { + const [uploadImage, { data, loading, error }] = useSetEventImage() return ( + {props.canEdit && props.title ? {props.title} : null} { uploadImage({ variables: { eventId: props.event.id, - file - } + file, + imageType: props.imageType, + }, }) }} /> -