From c8c4c6875a503fe3038dff054b82080df31df01d Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 14 Sep 2023 13:56:30 +0200 Subject: [PATCH] updated to utopia-ui@3.0.0-alpha.14 --- index.html | 31 +++++++++++---------- package-lock.json | 40 +++++++++++++-------------- package.json | 2 +- src/App.tsx | 13 ++++----- src/api/itemsApi.ts | 56 +++++++++++++++++++------------------- src/api/permissionsApi.ts | 23 ++++++++++++++++ src/api/userApi.ts | 37 +++++++++++++++++-------- src/pages/MapContainer.tsx | 7 ++++- vite.config.ts | 10 +++---- 9 files changed, 132 insertions(+), 87 deletions(-) create mode 100644 src/api/permissionsApi.ts diff --git a/index.html b/index.html index 731ef297..482e28cd 100644 --- a/index.html +++ b/index.html @@ -1,16 +1,19 @@ - - - - - - Utopia Game - - -
- - - + + + + + + + Utopia Game + + + + + +
+ + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 80ae592e..6709f9c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.11.2", - "utopia-ui": "^3.0.0-alpha.8" + "utopia-ui": "^3.0.0-alpha.14" }, "devDependencies": { "@types/react": "^18.0.28", @@ -2341,11 +2341,11 @@ } }, "node_modules/@remix-run/router": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.6.2.tgz", - "integrity": "sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.9.0.tgz", + "integrity": "sha512-bV63itrKBC0zdT27qYm6SDZHlkXwFL1xMBuhkn+X7l0+IIhNaH5wuuvZKp6eKhCD4KFhujhfhCT1YxXW6esUIA==", "engines": { - "node": ">=14" + "node": ">=14.0.0" } }, "node_modules/@surma/rollup-plugin-off-main-thread": { @@ -5399,29 +5399,29 @@ } }, "node_modules/react-router": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.11.2.tgz", - "integrity": "sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.16.0.tgz", + "integrity": "sha512-VT4Mmc4jj5YyjpOi5jOf0I+TYzGpvzERy4ckNSvSh2RArv8LLoCxlsZ2D+tc7zgjxcY34oTz2hZaeX5RVprKqA==", "dependencies": { - "@remix-run/router": "1.6.2" + "@remix-run/router": "1.9.0" }, "engines": { - "node": ">=14" + "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8" } }, "node_modules/react-router-dom": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.11.2.tgz", - "integrity": "sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.16.0.tgz", + "integrity": "sha512-aTfBLv3mk/gaKLxgRDUPbPw+s4Y/O+ma3rEN1u8EgEpLpPe6gNjIsWt9rxushMHHMb7mSwxRGdGlGdvmFsyPIg==", "dependencies": { - "@remix-run/router": "1.6.2", - "react-router": "6.11.2" + "@remix-run/router": "1.9.0", + "react-router": "6.16.0" }, "engines": { - "node": ">=14" + "node": ">=14.0.0" }, "peerDependencies": { "react": ">=16.8", @@ -6458,16 +6458,16 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/utopia-ui": { - "version": "3.0.0-alpha.8", - "resolved": "https://registry.npmjs.org/utopia-ui/-/utopia-ui-3.0.0-alpha.8.tgz", - "integrity": "sha512-a8w7mJxNPoVcG8GPbQNaIj64Sbj69lWtaxh7W62hpmg/PxgFmmU1pwxuRunUqalEUh3WYMvQIJxzNlHISZyIsg==", + "version": "3.0.0-alpha.14", + "resolved": "https://registry.npmjs.org/utopia-ui/-/utopia-ui-3.0.0-alpha.14.tgz", + "integrity": "sha512-kKXucX6Ahe5NBSyTlFN4LP7BBS0dLYFj5zVdxXSLbIY8Au9KSI8O5q4mTprb1WoR3U3lbThf6QkD3PcdeKkrQw==", "dependencies": { "@heroicons/react": "^2.0.17", "leaflet": "^1.9.4", "prop-types": "^15.8.1", "react-leaflet": "^4.2.1", "react-leaflet-cluster": "^2.1.0", - "react-router-dom": "^6.11.2", + "react-router-dom": "^6.16.0", "react-string-replace": "^1.1.1", "react-toastify": "^9.1.3", "tributejs": "^5.1.3", diff --git a/package.json b/package.json index 82da938b..5ca6c9f4 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.11.2", - "utopia-ui": "^3.0.0-alpha.8" + "utopia-ui": "^3.0.0-alpha.14" }, "devDependencies": { "@types/react": "^18.0.28", diff --git a/src/App.tsx b/src/App.tsx index 7d8891c2..4ed91889 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import { AppShell, SideBar, Content, AuthProvider, useAuth, Settings, Modal, LoginPage, SignupPage } from 'utopia-ui' +import { AppShell, SideBar, Content, AuthProvider, Settings, Modal, LoginPage, SignupPage } from 'utopia-ui' import { routes } from './routes/sidebar' import { Route, Routes } from 'react-router-dom' import MapContainer from "./pages/MapContainer" @@ -7,23 +7,22 @@ import Concept from './pages/Concept' import { userApi } from './api/userApi' + function App() { - - return (
- + - {/** */} + {/** */ } - } /> - } /> + } /> + } /> } /> } /> } /> diff --git a/src/api/itemsApi.ts b/src/api/itemsApi.ts index cf7af405..407c726b 100644 --- a/src/api/itemsApi.ts +++ b/src/api/itemsApi.ts @@ -1,58 +1,58 @@ import { createItem, deleteItem, readItems, updateItem } from '@directus/sdk'; -import { MyCollections, directusClient } from './directus'; +import { MyCollections, directusClient } from './directus'; import { ItemsApi } from 'utopia-ui/dist/types'; export class itemsApi implements ItemsApi{ - collectionName : string; + collectionName: string; - constructor(collectionName : string) { + constructor(collectionName: string) { this.collectionName = collectionName; } async getItems() { try { - return await directusClient.request(readItems(this.collectionName as never,{limit: 500 })); - } catch (error: any) { - console.log(error.errors[0].message); - throw new Error(error.errors[0].message); } - } - - async createItem(item: T & { id?: string }) { - try { - return await directusClient.request(createItem(this.collectionName as keyof MyCollections,item)) + return await directusClient.request(readItems(this.collectionName as never, { limit: 500 })); } catch (error: any) { console.log(error); - throw new Error(error.errors[0].message); + if (error.errors[0]?.message) + throw error.errors[0].message; + else throw error; + } + } + + async createItem(item: T & { id?: string }) { + try { + return await directusClient.request(createItem(this.collectionName as keyof MyCollections, item)) + } catch (error: any) { + console.log(error); + if (error.errors[0]?.message) + throw error.errors[0].message; + else throw error; } } async updateItem(item: T & { id?: string }) { try { - return await directusClient.request(updateItem(this.collectionName as keyof MyCollections,item.id!, item)) + return await directusClient.request(updateItem(this.collectionName as keyof MyCollections, item.id!, item)) } catch (error: any) { console.log(error); - throw new Error(error.errors[0].message); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } - async deleteItem(id: string ) { + async deleteItem(id: string) { try { - return await directusClient.request(deleteItem(this.collectionName as keyof MyCollections,id)) + return await directusClient.request(deleteItem(this.collectionName as keyof MyCollections, id)) } catch (error: any) { console.log(error); - throw new Error(error.errors[0].message); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } -} - - - - - - - - - +} \ No newline at end of file diff --git a/src/api/permissionsApi.ts b/src/api/permissionsApi.ts new file mode 100644 index 00000000..b358f0a7 --- /dev/null +++ b/src/api/permissionsApi.ts @@ -0,0 +1,23 @@ +import { readPermissions } from '@directus/sdk'; +import { directusClient } from './directus'; +import { ItemsApi, Permission } from 'utopia-ui/dist/types'; + + + +export class permissionsApi implements ItemsApi{ + + + constructor() { + } + + async getItems() { + try { + return await directusClient.request(readPermissions()); + } catch (error: any) { + console.log(error); + if (error.errors[0]?.message) + throw error.errors[0].message; + else throw error; + } + } +} \ No newline at end of file diff --git a/src/api/userApi.ts b/src/api/userApi.ts index 10ddca34..41f18c8d 100644 --- a/src/api/userApi.ts +++ b/src/api/userApi.ts @@ -8,34 +8,46 @@ export class userApi implements UserApi { async register(email: string, password: string, userName: string): Promise { try { return await directusClient.request(createUser({email: email, password: password, first_name: userName})); - } catch (error) { + } catch (error: any) { console.log(error); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } async login(email: string, password: string): Promise { try { return await directusClient.login(email,password,{mode: 'json'}); - } catch (error) { + } catch (error: any) { console.log(error); - throw new Error("Failed while logging User in"); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } + + async logout(): Promise { try { return await directusClient.logout(); - } catch (error) { + } catch (error: any) { console.log(error); - throw new Error("Failed while logging User out"); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } + async getUser(): Promise { try { let user = await directusClient.request(readMe()); return user; - } catch (error) { + } catch (error: any) { console.log(error); - throw new Error("Failed while loading User"); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } @@ -43,9 +55,11 @@ export class userApi implements UserApi { try { const token = await directusClient.getToken(); return token; - } catch (error) { + } catch (error: any) { console.log(error); - throw new Error("Failed while loading User Token"); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } @@ -56,10 +70,11 @@ export class userApi implements UserApi { return res as any; } catch (error: any) { console.log(error); - throw new Error("Failed while updating User Profile"); + if (error.errors[0].message) + throw error.errors[0].message; + else throw error; } } - } diff --git a/src/pages/MapContainer.tsx b/src/pages/MapContainer.tsx index 1c176480..e7628ce0 100644 --- a/src/pages/MapContainer.tsx +++ b/src/pages/MapContainer.tsx @@ -1,5 +1,6 @@ -import { UtopiaMap, Tags, Layer, ItemForm, ItemView, PopupTextAreaInput, PopupStartEndInput, TextView, StartEndView } from 'utopia-ui' +import { UtopiaMap, Tags, Layer, ItemForm, ItemView, PopupTextAreaInput, PopupStartEndInput, TextView, StartEndView, Permissions } from 'utopia-ui' import { itemsApi } from '../api/itemsApi' +import { permissionsApi } from '../api/permissionsApi'; import { Place, Event, Tag } from '../api/directus'; import { useEffect, useState } from 'react'; @@ -9,6 +10,8 @@ function MapContainer() { const [placesApi, setPlacesApi] = useState>(); const [eventsApi, setEventsApi] = useState>(); const [tagsApi, setTagsApi] = useState>(); + const [permissionsApiInstance, setPermissionsApiInstance] = useState(); + @@ -17,6 +20,7 @@ function MapContainer() { setPlacesApi(new itemsApi('places')); setEventsApi(new itemsApi('events')); setTagsApi(new itemsApi('tags')); + setPermissionsApiInstance(new permissionsApi()); @@ -62,6 +66,7 @@ function MapContainer() { api={placesApi} /> + ) } diff --git a/vite.config.ts b/vite.config.ts index 9858d0e4..2334564d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -10,17 +10,17 @@ export default defineConfig({ react(), VitePWA({manifest: { "short_name": "Utopia Game", - "name": "Utopia Game: A Cooperative Real Life Manifestation Game", + "name": "Utopia Game: The Real Life Manifestation Game", "icons": [ { "src": "3markers.svg", - "sizes": "192x192", - "type": "image/svg" + "sizes": "any", + "type": "image/svg+xml" } ], - "start_url": "/index.html", + "start_url": "/", "display": "fullscreen", - "orientation": "portrait" + "orientation": "natural" }}) ] })