{"version":3,"sources":["graphql/client.ts","config/index.ts","graphql/query/get_images.ts","graphql/mutation/delete_photo.ts","components/button.tsx","components/header.tsx","components/gallery.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["cache","InMemoryCache","authMiddleware","ApolloLink","operation","forward","wsLink","WebSocketLink","uri","options","reconnect","connectionParams","headers","httpLink","HttpLink","link","split","query","getMainDefinition","kind","logErrors","onError","graphQLErrors","networkError","map","message","locations","path","console","log","client","ApolloClient","from","resolvers","initialState","alerts","writeData","data","onResetStore","Promise","resolve","reject","GET_IMAGES","gql","DELETE_PHOTO","Button","styled","button","StyledHeader","div","Header","title","allowUserUpload","code","refetch","useState","state","setState","undefined","user","setUser","userRequestDone","setUserRequestDone","useEffect","jQuery","document","ready","ajax","type","url","window","location","hostname","dataType","xhrFields","withCredentials","success","id","error","err","uploadOptions","server","scrubFilename","filename","Fragment","onFinish","setTimeout","gallery","onDrop","onProgress","s3Url","upload","style","height","onClick","e","preventDefault","replace","pathname","Row","Col","Gallery","isAdmin","useQuery","variables","loading","useMutation","deletePhoto","image","length","imagesPerColumn","chunk","Math","round","maxWidth","margin","columnArray","index","border","display","justifyContent","alignItems","user_id","maxHeight","refetchQueries","key","src","App","Boolean","match","ReactDOM","render","getElementById","navigator","serviceWorker","then","registration","unregister"],"mappings":"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","file":"static/js/main.cd27eb51.chunk.js","sourcesContent":["import { InMemoryCache } from \"apollo-cache-inmemory\";\r\nimport { ApolloClient } from \"apollo-client\";\r\nimport { ApolloLink, split } from \"apollo-link\";\r\nimport { HttpLink } from \"apollo-link-http\";\r\nimport { WebSocketLink } from \"apollo-link-ws\";\r\nimport { getMainDefinition } from \"apollo-utilities\";\r\nimport { onError } from \"apollo-link-error\";\r\nimport { graphqlUrl, subscriptionUrl } from \"../config\";\r\n\r\n// Instance of a cache\r\nconst cache = new InMemoryCache();\r\n\r\n// do token auth later\r\nconst token = undefined;\r\n\r\n// pass authentication header when exists\r\nconst authMiddleware = new ApolloLink((operation, forward: any) => {\r\n if (token) {\r\n operation.setContext({\r\n headers: {\r\n authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n return forward(operation);\r\n});\r\n\r\n// Set up subscription\r\nconst wsLink = new WebSocketLink({\r\n uri: subscriptionUrl,\r\n options: {\r\n reconnect: true,\r\n connectionParams: () => {\r\n if (token) {\r\n return {\r\n headers: {\r\n authorization: `Bearer ${token}`\r\n }\r\n };\r\n }\r\n return {\r\n headers: {}\r\n };\r\n }\r\n }\r\n});\r\n\r\n// Set up http link\r\nconst httpLink = new HttpLink({\r\n uri: graphqlUrl\r\n});\r\n\r\ninterface Definintion {\r\n kind: string;\r\n operation?: string;\r\n}\r\n\r\n// using the ability to split links, you can send data to each link\r\n// depending on what kind of operation is being sent\r\nconst link = split(\r\n // split based on operation type\r\n ({ query }) => {\r\n const { kind, operation }: Definintion = getMainDefinition(query);\r\n return kind === \"OperationDefinition\" && operation === \"subscription\";\r\n },\r\n wsLink,\r\n httpLink\r\n);\r\n\r\n// log errors to the console\r\nconst logErrors = onError(({ graphQLErrors, networkError }) => {\r\n if (graphQLErrors) {\r\n graphQLErrors.map(({ message, locations, path }) =>\r\n console.log(\r\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\r\n )\r\n );\r\n }\r\n\r\n if (networkError) {\r\n console.log(`[Network error]: ${networkError}`);\r\n }\r\n});\r\n\r\n// Apollo\r\nconst client = new ApolloClient({\r\n link: ApolloLink.from([logErrors, authMiddleware, link]),\r\n cache,\r\n resolvers: {\r\n // Mutation: {\r\n // ...alertResolver\r\n // }\r\n }\r\n});\r\n\r\nconst initialState = {\r\n alerts: []\r\n};\r\n\r\ncache.writeData({\r\n data: initialState\r\n});\r\n\r\nclient.onResetStore(() => {\r\n return new Promise((resolve, reject) => {\r\n cache.writeData({ data: initialState });\r\n resolve();\r\n });\r\n});\r\n\r\nexport default client;\r\n","export const graphqlUrl = \"https://cdhagallery.leoalves.net/v1/graphql\";\r\nexport const subscriptionUrl = \"wss://cdhagallery.leoalves.net/v1/graphql\";\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const GET_IMAGES = gql`\r\n query get_images($gallery: String!) {\r\n image(\r\n where: {\r\n _and: [{ gallery_code: { _eq: $gallery } }, { deleted: { _eq: false } }]\r\n }\r\n order_by: { created_at: desc }\r\n ) {\r\n id\r\n user_id\r\n filename\r\n likeCount\r\n commentCount\r\n likes {\r\n user_id\r\n }\r\n comments {\r\n user_id\r\n comment\r\n }\r\n }\r\n }\r\n`;\r\n","import gql from \"graphql-tag\";\r\n\r\nexport const DELETE_PHOTO = gql`\r\n mutation delete_photo($id: uuid!) {\r\n update_image(_set: { deleted: true }, where: { id: { _eq: $id } }) {\r\n affected_rows\r\n }\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Button = styled.button`\r\n padding: 10px;\r\n background-color: #7294d3;\r\n border: none;\r\n color: white;\r\n border-radius: 5px;\r\n min-width: 130px;\r\n margin: 0 15px;\r\n cursor: pointer;\r\n`;\r\n\r\nexport default Button;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Button from \"./button\";\r\nimport * as DropzoneS3Uploader from \"react-dropzone-s3-uploader\";\r\n\r\ndeclare var jQuery: any;\r\n\r\ntype HeaderProps = {\r\n title: string;\r\n allowUserUpload: boolean;\r\n code: string;\r\n refetch: any;\r\n};\r\n\r\nconst StyledHeader = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n`;\r\n\r\nconst Header = ({ title, allowUserUpload, code, refetch }: HeaderProps) => {\r\n const [state, setState] = useState(\"initial\");\r\n const [user, setUser]: [any, any] = useState(undefined);\r\n const [userRequestDone, setUserRequestDone] = useState(false);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV === \"production\") {\r\n jQuery(document).ready(function() {\r\n jQuery.ajax({\r\n type: \"post\",\r\n url:\r\n \"//\" +\r\n window.location.hostname +\r\n \"/CDHACommon/UpdatePersonalInfo.ashx\",\r\n dataType: \"json\",\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n success: (data: any) => {\r\n setUserRequestDone(true);\r\n if (data && data.data && data.data.id) {\r\n setUser(data.data);\r\n } else {\r\n setUser(undefined);\r\n }\r\n },\r\n error: (err: any) => {\r\n setUserRequestDone(true);\r\n }\r\n });\r\n });\r\n } else {\r\n setUser({\r\n id: 36798\r\n });\r\n }\r\n }, []);\r\n const uploadOptions = {\r\n server: \"https://a1bqn55c8e.execute-api.us-east-1.amazonaws.com/latest\",\r\n scrubFilename: (filename: string) =>\r\n user && user.id ? `${code}_${user.id}_${filename}` : `${code}_${filename}`\r\n };\r\n const s3Url = \"https://pypogallery.s3.amazonaws.com\";\r\n\r\n const handleFinish = () => {\r\n window.setTimeout(() => {\r\n setState(\"initial\");\r\n refetch({\r\n gallery: code\r\n });\r\n }, 15000);\r\n };\r\n\r\n const handleOnDrop = () => {\r\n console.log(\"drop\");\r\n };\r\n\r\n const handleError = () => {\r\n console.log(\"error\");\r\n setState(\"error\");\r\n };\r\n\r\n const handleProgress = () => {\r\n setState(\"loading\");\r\n };\r\n\r\n return (\r\n Uploading ... Error uploading. Please refresh the page and try again. Loading ...{title}
\r\n {userRequestDone ? (\r\n
Uploaded by: {image.user_id}
\r\n \r\nLoading ...
;\r\n }\r\n return (\r\n