fix type imports

This commit is contained in:
Anton Tranelis 2025-02-11 15:25:57 +00:00
parent 26f2547c61
commit 44c7f4d120
10 changed files with 3559 additions and 2106 deletions

5557
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
{ {
"name": "utopia-game", "name": "utopia-map",
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"type": "module", "type": "module",
@ -19,7 +19,7 @@
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-rnd": "^10.4.1", "react-rnd": "^10.4.1",
"react-router-dom": "^6.23.0", "react-router-dom": "^6.23.0",
"utopia-ui": "^3.0.36" "utopia-ui": "^3.0.61"
}, },
"devDependencies": { "devDependencies": {
"@types/react": "^18.2.79", "@types/react": "^18.2.79",

View File

@ -6,12 +6,11 @@ import './App.css'
import { userApi } from './api/userApi' import { userApi } from './api/userApi'
import { assetsApi } from './api/assetsApi' import { assetsApi } from './api/assetsApi'
import { ModalContent } from './ModalContent' import { ModalContent } from './ModalContent'
import { MoonCalendar } from 'utopia-ui'
import { Landingpage } from './pages/Landingpage' import { Landingpage } from './pages/Landingpage'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import { itemsApi } from './api/itemsApi' import { itemsApi } from './api/itemsApi'
import { permissionsApi } from './api/permissionsApi' import { permissionsApi } from './api/permissionsApi'
import { Tag } from 'utopia-ui/dist/types' import { Tag } from 'utopia-ui'
import { mapApi } from './api/mapApi' import { mapApi } from './api/mapApi'
import { layersApi } from './api/layersApi' import { layersApi } from './api/layersApi'
@ -107,7 +106,6 @@ function App() {
<Route path="item/*" element={<ProfileView attestationApi={attestationApi} />} /> <Route path="item/*" element={<ProfileView attestationApi={attestationApi} />} />
<Route path="edit-item/*" element={<ProfileForm />} /> <Route path="edit-item/*" element={<ProfileForm />} />
<Route path="user-settings" element={<UserSettings />} /> <Route path="user-settings" element={<UserSettings />} />
<Route path="moon-calendar" element={<MoonCalendar />} />
<Route path="landingpage" element={<Landingpage />} /> <Route path="landingpage" element={<Landingpage />} />
<Route path="market" element={<MarketView />} /> <Route path="market" element={<MarketView />} />
<Route path="select-user" element={<SelectUser />} /> <Route path="select-user" element={<SelectUser />} />

View File

@ -1,6 +1,6 @@
import { uploadFiles } from '@directus/sdk'; import { uploadFiles } from '@directus/sdk';
import { directusClient } from './directus'; import { directusClient } from './directus';
import { AssetsApi } from 'utopia-ui/dist/types'; import { AssetsApi } from 'utopia-ui';
export class assetsApi implements AssetsApi{ export class assetsApi implements AssetsApi{

View File

@ -1,6 +1,6 @@
import { createItem, deleteItem, readItem, readItems, updateItem } from '@directus/sdk'; import { createItem, deleteItem, readItem, readItems, updateItem } from '@directus/sdk';
import { MyCollections, directusClient } from './directus'; import { MyCollections, directusClient } from './directus';
import { ItemsApi } from 'utopia-ui/dist/types'; import { ItemsApi } from 'utopia-ui';
@ -28,9 +28,35 @@ export class itemsApi<T> implements ItemsApi<T>{
if(customParameter) this.customParameter = customParameter; if(customParameter) this.customParameter = customParameter;
} }
async getItems() { async getItems(): Promise<T[]> {
try { try {
return await directusClient.request(readItems(this.collectionName as never, { fields: ['*', 'to.*', "relations.*", "user_created.*", {offers: ['*'], needs: ['*'], gallery: ['*.*']} as any] , filter: this.filter, limit: -1 })); const result = await directusClient.request<T[]>(
readItems(
this.collectionName as never,
{
fields: ['*', 'to.*', "relations.*", "user_created.*", { offers: ['*'], needs: ['*'], gallery: ['*.*'] } as any],
filter: this.filter,
limit: -1
}
)
);
return result as T[];
} catch (error: any) {
console.error(error);
if (error.errors?.[0]?.message) {
throw new Error(error.errors[0].message);
} else {
throw error;
}
}
}
async getItem(id : string): Promise<T> {
try {
const result = await directusClient.request(readItem(this.collectionName as never, id));
return result as T
} catch (error: any) { } catch (error: any) {
console.log(error); console.log(error);
if (error.errors[0]?.message) if (error.errors[0]?.message)
@ -39,9 +65,10 @@ export class itemsApi<T> implements ItemsApi<T>{
} }
} }
async getItem(id : string) { async createItem(item: T & { id?: string }) : Promise<T> {
try { try {
return await directusClient.request(readItem(this.collectionName as never, id)); const result = await directusClient.request(createItem(this.collectionName as keyof MyCollections, {...item, ...(this.customParameter && this.customParameter), ...(this.layerId && {layer: this.layerId}), ...(this.layerId && {layer: this.layerId}), ...(this.mapId && {map: this.mapId})}))
return result as T
} catch (error: any) { } catch (error: any) {
console.log(error); console.log(error);
if (error.errors[0]?.message) if (error.errors[0]?.message)
@ -50,20 +77,10 @@ export class itemsApi<T> implements ItemsApi<T>{
} }
} }
async createItem(item: T & { id?: string }) { async updateItem(item: T & { id?: string }) : Promise<T> {
try { try {
return await directusClient.request(createItem(this.collectionName as keyof MyCollections, {...item, ...(this.customParameter && this.customParameter), ...(this.layerId && {layer: this.layerId}), ...(this.layerId && {layer: this.layerId}), ...(this.mapId && {map: this.mapId})})) const result = await directusClient.request(updateItem(this.collectionName as keyof MyCollections, item.id!, item))
} catch (error: any) { return result as T
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))
} catch (error: any) { } catch (error: any) {
console.log(error); console.log(error);
if (error.errors[0].message) if (error.errors[0].message)
@ -72,9 +89,10 @@ export class itemsApi<T> implements ItemsApi<T>{
} }
} }
async deleteItem(id: string) { async deleteItem(id: string) : Promise<boolean> {
try { try {
return await directusClient.request(deleteItem(this.collectionName as keyof MyCollections, id)) const result = await directusClient.request(deleteItem(this.collectionName as keyof MyCollections, id))
return result as unknown as boolean
} catch (error: any) { } catch (error: any) {
console.log(error); console.log(error);
if (error.errors[0].message) if (error.errors[0].message)

View File

@ -1,22 +1,19 @@
import { readPermissions } from '@directus/sdk'; import { readPermissions } from "@directus/sdk";
import { directusClient } from './directus'; import { directusClient } from "./directus";
import { ItemsApi, Permission } from 'utopia-ui/dist/types'; import { ItemsApi, Permission } from "utopia-ui";
export class permissionsApi implements ItemsApi<Permission> { export class permissionsApi implements ItemsApi<Permission> {
constructor() {}
async getItems(): Promise<Permission[]> {
constructor() {
}
async getItems() {
try { try {
return await directusClient.request(readPermissions({fields: ['*', {policy : ['name', 'roles']} as any]})); const result = await directusClient.request(
readPermissions({ fields: ["*", { policy: ["name", "roles"] } as any] })
);
return result as unknown as Permission[]
} catch (error: any) { } catch (error: any) {
console.log(error); console.log(error);
if (error.errors[0]?.message) if (error.errors[0]?.message) throw error.errors[0].message;
throw error.errors[0].message;
else throw error; else throw error;
} }
} }

View File

@ -1,5 +1,5 @@
import axios from 'axios'; import axios from 'axios';
import { ItemsApi } from 'utopia-ui/dist/types'; import { ItemsApi } from 'utopia-ui';
export class refiBcnApi implements ItemsApi<any>{ export class refiBcnApi implements ItemsApi<any>{

View File

@ -1,6 +1,6 @@
import { createUser, passwordRequest, passwordReset, readMe, updateMe} from '@directus/sdk'; import { createUser, passwordRequest, passwordReset, readMe, updateMe} from '@directus/sdk';
import { directusClient } from './directus'; import { directusClient } from './directus';
import { UserApi, UserItem } from 'utopia-ui/dist/types'; import { UserApi, UserItem } from 'utopia-ui';
export class userApi implements UserApi { export class userApi implements UserApi {

View File

@ -1,8 +1,7 @@
import { UtopiaMap, Layer, ItemView, PopupButton, StartEndView, TextView, ItemForm, PopupStartEndInput, PopupTextAreaInput, PopupTextInput } from 'utopia-ui' import { UtopiaMap, Layer, ItemView, PopupButton, StartEndView, TextView, ItemForm, PopupStartEndInput, PopupTextAreaInput, PopupTextInput, LayerProps } from 'utopia-ui'
import { itemsApi } from '../api/itemsApi'; import { itemsApi } from '../api/itemsApi';
import { Place } from '../api/directus'; import { Place } from '../api/directus';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { LayerProps } from 'utopia-ui/dist/types';
type layerApi = { type layerApi = {
id: string; id: string;
@ -54,7 +53,7 @@ function MapContainer({ layers, map }: { layers: Array<LayerProps>, map: any })
showFilterControl={map.show_filter_control} showFilterControl={map.show_filter_control}
showLayerControl={map.show_layer_control} showLayerControl={map.show_layer_control}
showGratitudeControl={map.show_gratitude_control} showGratitudeControl={map.show_gratitude_control}
infoText={map.info_text} donationWidget = {map.donation_widget}
> >
{layers && apis && {layers && apis &&
layers.map(layer => layers.map(layer =>
@ -80,7 +79,7 @@ function MapContainer({ layers, map }: { layers: Array<LayerProps>, map: any })
<StartEndView></StartEndView> <StartEndView></StartEndView>
} }
{layer.itemType.show_profile_button && {layer.itemType.show_profile_button &&
<PopupButton url={'/item'} parameterField={'id'} text={'Profile'} colorField={'color'} /> <PopupButton url={'/item'} parameterField={'id'} text={'Profile'} />
} }
{layer.itemType.show_text && {layer.itemType.show_text &&
<TextView truncate></TextView> <TextView truncate></TextView>

View File

@ -1,4 +1,4 @@
import { Item, Tag } from "utopia-ui/dist/types"; import { Item, Tag } from "utopia-ui";
export const tags : Tag[] = [ export const tags : Tag[] = [
{ {