diff --git a/package-lock.json b/package-lock.json index ed87256d..df9c3082 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,7 @@ "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", @@ -69,7 +70,6 @@ "rollup": "^4.34.6", "rollup-plugin-dts": "^6.1.1", "rollup-plugin-postcss": "^4.0.2", - "rollup-plugin-typescript2": "^0.32.1", "tailwindcss": "^3.3.1", "typedoc": "^0.27.6", "typedoc-plugin-coverage": "^3.4.1", @@ -734,6 +734,30 @@ } } }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", + "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-typescript": { "version": "12.1.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", @@ -1336,6 +1360,12 @@ "@types/react": "*" } }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, "node_modules/@types/semver": { "version": "7.5.8", "dev": true, @@ -2303,11 +2333,6 @@ "node": ">= 10" } }, - "node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "node_modules/concat-map": { "version": "0.0.1", "license": "MIT" @@ -3810,34 +3835,6 @@ "node": ">=8" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "dev": true, @@ -3920,19 +3917,6 @@ "url": "https://www.patreon.com/infusion" } }, - "node_modules/fs-extra": { - "version": "10.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "license": "ISC" @@ -4589,6 +4573,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.3", "dev": true, @@ -4875,17 +4865,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsonfile": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "dev": true, @@ -4954,17 +4933,6 @@ "node": ">= 12.13.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/lodash": { "version": "4.17.21", "dev": true, @@ -5058,20 +5026,6 @@ "source-map-js": "^1.2.0" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -5979,31 +5933,6 @@ "node": ">=4" } }, - "node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-queue": { "version": "6.6.2", "dev": true, @@ -6030,14 +5959,6 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "dev": true, @@ -6180,17 +6101,6 @@ "node": ">= 6" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "dev": true, @@ -7331,34 +7241,6 @@ "postcss": "8.x" } }, - "node_modules/rollup-plugin-typescript2": { - "version": "0.32.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^4.1.2", - "find-cache-dir": "^3.3.2", - "fs-extra": "^10.0.0", - "resolve": "^1.20.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "rollup": ">=1.26.3", - "typescript": ">=2.4.0" - } - }, - "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" - }, - "engines": { - "node": ">= 8.0.0" - } - }, "node_modules/rollup-pluginutils": { "version": "2.8.2", "dev": true, @@ -8497,14 +8379,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/universalify": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.2", "dev": true, diff --git a/package.json b/package.json index a3866d4a..f034b0ee 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "devDependencies": { "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-typescript": "^12.1.2", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", diff --git a/rollup.config.js b/rollup.config.js index aaff530b..0ad2545b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -10,7 +10,7 @@ const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) const aliasConfig = alias({ - entries: [{ find: '#types', replacement: path.resolve(__dirname, 'types') }], + entries: [{ find: '#types', replacement: path.resolve(__dirname, 'src/types') }], }) export default [ diff --git a/src/Components/AppShell/AppShell.tsx b/src/Components/AppShell/AppShell.tsx index 0421a302..5267a48d 100644 --- a/src/Components/AppShell/AppShell.tsx +++ b/src/Components/AppShell/AppShell.tsx @@ -2,7 +2,7 @@ import { ContextWrapper } from './ContextWrapper' import NavBar from './NavBar' import { SetAppState } from './SetAppState' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' export function AppShell({ appName, diff --git a/src/Components/AppShell/NavBar.tsx b/src/Components/AppShell/NavBar.tsx index 08971877..f25d532a 100644 --- a/src/Components/AppShell/NavBar.tsx +++ b/src/Components/AppShell/NavBar.tsx @@ -6,7 +6,7 @@ import { toast } from 'react-toastify' import { useAuth } from '#components/Auth' import { useItems } from '#components/Map/hooks/useItems' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export default function NavBar({ appName, userType }: { appName: string; userType: string }) { const { isAuthenticated, user, logout } = useAuth() diff --git a/src/Components/AppShell/SetAppState.tsx b/src/Components/AppShell/SetAppState.tsx index eb537911..a84ec067 100644 --- a/src/Components/AppShell/SetAppState.tsx +++ b/src/Components/AppShell/SetAppState.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react' import { useSetAppState } from './hooks/useAppState' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' export const SetAppState = ({ assetsApi, diff --git a/src/Components/AppShell/hooks/useAppState.tsx b/src/Components/AppShell/hooks/useAppState.tsx index c338d8c4..f0ffd76d 100644 --- a/src/Components/AppShell/hooks/useAppState.tsx +++ b/src/Components/AppShell/hooks/useAppState.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useState, createContext, useContext } from 'react' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' interface AppState { assetsApi: AssetsApi diff --git a/src/Components/AppShell/hooks/useAssets.tsx b/src/Components/AppShell/hooks/useAssets.tsx index 6c04d6ab..04b3d3f2 100644 --- a/src/Components/AppShell/hooks/useAssets.tsx +++ b/src/Components/AppShell/hooks/useAssets.tsx @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useState, createContext, useContext } from 'react' -import type { AssetsApi } from '#types/AssetsApi' +import type { AssetsApi } from '#src/types/AssetsApi' type UseAssetManagerResult = ReturnType diff --git a/src/Components/Auth/useAuth.tsx b/src/Components/Auth/useAuth.tsx index e892a0c6..767ce700 100644 --- a/src/Components/Auth/useAuth.tsx +++ b/src/Components/Auth/useAuth.tsx @@ -5,8 +5,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { createContext, useState, useContext, useEffect } from 'react' -import type { UserApi } from '#types/UserApi' -import type { UserItem } from '#types/UserItem' +import type { UserApi } from '#src/types/UserApi' +import type { UserItem } from '#src/types/UserItem' interface AuthProviderProps { userApi: UserApi diff --git a/src/Components/Gaming/Quests.tsx b/src/Components/Gaming/Quests.tsx index 0e669c6f..61303c30 100644 --- a/src/Components/Gaming/Quests.tsx +++ b/src/Components/Gaming/Quests.tsx @@ -5,7 +5,7 @@ import { useItems } from '#components/Map/hooks/useItems' import { useQuestsOpen, useSetQuestOpen } from './hooks/useQuests' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function Quests() { const questsOpen = useQuestsOpen() diff --git a/src/Components/Map/ItemForm.tsx b/src/Components/Map/ItemForm.tsx index d48b33ce..f9ad282f 100644 --- a/src/Components/Map/ItemForm.tsx +++ b/src/Components/Map/ItemForm.tsx @@ -1,7 +1,7 @@ import { node, string } from 'prop-types' import { Children, cloneElement, isValidElement, useEffect } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemForm = ({ children, diff --git a/src/Components/Map/ItemView.tsx b/src/Components/Map/ItemView.tsx index 63a241d6..9a674504 100644 --- a/src/Components/Map/ItemView.tsx +++ b/src/Components/Map/ItemView.tsx @@ -1,7 +1,7 @@ import { node, string } from 'prop-types' import { Children, cloneElement, isValidElement } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemView = ({ children, item }: { children?: React.ReactNode; item?: Item }) => { return ( diff --git a/src/Components/Map/Layer.tsx b/src/Components/Map/Layer.tsx index 0ce40aef..d2525df8 100644 --- a/src/Components/Map/Layer.tsx +++ b/src/Components/Map/Layer.tsx @@ -28,9 +28,9 @@ import { useAddTag, useAllTagsLoaded, useGetItemTags, useTags } from './hooks/us import { ItemFormPopup } from './Subcomponents/ItemFormPopup' import { ItemViewPopup } from './Subcomponents/ItemViewPopup' -import type { Item } from '#types/Item' -import type { LayerProps } from '#types/LayerProps' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { LayerProps } from '#src/types/LayerProps' +import type { Tag } from '#src/types/Tag' import type { Popup } from 'leaflet' export const Layer = ({ diff --git a/src/Components/Map/Permissions.tsx b/src/Components/Map/Permissions.tsx index cac67cf2..90ba458f 100644 --- a/src/Components/Map/Permissions.tsx +++ b/src/Components/Map/Permissions.tsx @@ -4,8 +4,8 @@ import { useAuth } from '#components/Auth' import { useSetPermissionData, useSetPermissionApi, useSetAdminRole } from './hooks/usePermissions' -import type { ItemsApi } from '#types/ItemsApi' -import type { Permission } from '#types/Permission' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Permission } from '#src/types/Permission' export function Permissions({ data, diff --git a/src/Components/Map/Subcomponents/Controls/SearchControl.tsx b/src/Components/Map/Subcomponents/Controls/SearchControl.tsx index 323d8c5c..615527ac 100644 --- a/src/Components/Map/Subcomponents/Controls/SearchControl.tsx +++ b/src/Components/Map/Subcomponents/Controls/SearchControl.tsx @@ -29,7 +29,7 @@ import MarkerIconFactory from '#utils/MarkerIconFactory' import { LocateControl } from './LocateControl' import { SidebarControl } from './SidebarControl' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const SearchControl = () => { const windowDimensions = useWindowDimensions() diff --git a/src/Components/Map/Subcomponents/ItemFormPopup.tsx b/src/Components/Map/Subcomponents/ItemFormPopup.tsx index ed35d861..a8557695 100644 --- a/src/Components/Map/Subcomponents/ItemFormPopup.tsx +++ b/src/Components/Map/Subcomponents/ItemFormPopup.tsx @@ -19,8 +19,8 @@ import { useAddTag, useTags } from '#components/Map/hooks/useTags' import { hashTagRegex } from '#utils/HashTagRegex' import { randomColor } from '#utils/RandomColor' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' export function ItemFormPopup(props: ItemFormPopupProps) { const [spinner, setSpinner] = useState(false) diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index b7602afc..e948b396 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -17,8 +17,8 @@ import { useHasUserPermission } from '#components/Map/hooks/usePermissions' import DialogModal from '#components/Templates/DialogModal' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' export function HeaderView({ item, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx index 3f3bf2da..7ef100ab 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx @@ -5,7 +5,7 @@ import { Link } from 'react-router-dom' import { useGetItemTags } from '#components/Map/hooks/useTags' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupButton = ({ url, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx index 42a1d6ca..87a28c1f 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupCheckboxInput.tsx @@ -1,4 +1,4 @@ -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupCheckboxInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx index 819182d6..5c87b01e 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupStartEndInput.tsx @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ import { TextInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' interface StartEndInputProps { item?: Item diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx index c07b6b26..b403bc31 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx @@ -1,6 +1,6 @@ import { TextAreaInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupTextAreaInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx index 4030769f..ce957842 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextInput.tsx @@ -1,6 +1,6 @@ import { TextInput } from '#components/Input' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const PopupTextInput = ({ dataField, diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx index c41d86f4..02b21cb1 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/StartEndView.tsx @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const StartEndView = ({ item }: { item?: Item }) => { return ( diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx index 59115151..0dbb3ffc 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/TextView.tsx @@ -16,8 +16,8 @@ import { getValue } from '#utils/GetValue' import { hashTagRegex } from '#utils/HashTagRegex' import { fixUrls, mailRegex } from '#utils/ReplaceURLs' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export const TextView = ({ item, diff --git a/src/Components/Map/Subcomponents/ItemViewPopup.tsx b/src/Components/Map/Subcomponents/ItemViewPopup.tsx index 2a935e48..ac484ad3 100644 --- a/src/Components/Map/Subcomponents/ItemViewPopup.tsx +++ b/src/Components/Map/Subcomponents/ItemViewPopup.tsx @@ -20,8 +20,8 @@ import { timeAgo } from '#utils/TimeAgo' import { HeaderView } from './ItemPopupComponents/HeaderView' import { TextView } from './ItemPopupComponents/TextView' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' export interface ItemViewPopupProps { item: Item diff --git a/src/Components/Map/Tags.tsx b/src/Components/Map/Tags.tsx index ff77a3ff..1195a0c2 100644 --- a/src/Components/Map/Tags.tsx +++ b/src/Components/Map/Tags.tsx @@ -4,8 +4,8 @@ import { useLocation } from 'react-router-dom' import { useAddFilterTag, useFilterTags, useResetFilterTags } from './hooks/useFilter' import { useSetTagData, useSetTagApi, useTags } from './hooks/useTags' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' export function Tags({ data, api }: { data?: Tag[]; api?: ItemsApi }) { const setTagData = useSetTagData() diff --git a/src/Components/Map/UtopiaMap.tsx b/src/Components/Map/UtopiaMap.tsx index 5fcb292d..1991df87 100644 --- a/src/Components/Map/UtopiaMap.tsx +++ b/src/Components/Map/UtopiaMap.tsx @@ -5,7 +5,7 @@ import { ContextWrapper } from '#components/AppShell/ContextWrapper' import { UtopiaMapInner } from './UtopiaMapInner' -import type { UtopiaMapProps } from '#types/UtopiaMapProps' +import type { UtopiaMapProps } from '#src/types/UtopiaMapProps' import 'react-toastify/dist/ReactToastify.css' function UtopiaMap({ diff --git a/src/Components/Map/UtopiaMapInner.tsx b/src/Components/Map/UtopiaMapInner.tsx index 6cdf9106..bd17434c 100644 --- a/src/Components/Map/UtopiaMapInner.tsx +++ b/src/Components/Map/UtopiaMapInner.tsx @@ -36,8 +36,8 @@ import { TagsControl } from './Subcomponents/Controls/TagsControl' import { TextView } from './Subcomponents/ItemPopupComponents/TextView' import { SelectPosition } from './Subcomponents/SelectPosition' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' -import type { UtopiaMapProps } from '#types/UtopiaMapProps' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' +import type { UtopiaMapProps } from '#src/types/UtopiaMapProps' import type { Feature, Geometry as GeoJSONGeometry } from 'geojson' export function UtopiaMapInner({ diff --git a/src/Components/Map/hooks/useFilter.tsx b/src/Components/Map/hooks/useFilter.tsx index febc6bfd..e05bc542 100644 --- a/src/Components/Map/hooks/useFilter.tsx +++ b/src/Components/Map/hooks/useFilter.tsx @@ -10,8 +10,8 @@ import { useNavigate } from 'react-router-dom' import { useLayers } from './useLayers' import useWindowDimensions from './useWindowDimension' -import type { LayerProps } from '#types/LayerProps' -import type { Tag } from '#types/Tag' +import type { LayerProps } from '#src/types/LayerProps' +import type { Tag } from '#src/types/Tag' type ActionType = | { type: 'ADD_TAG'; tag: Tag } diff --git a/src/Components/Map/hooks/useItems.tsx b/src/Components/Map/hooks/useItems.tsx index db174e77..9517ef78 100644 --- a/src/Components/Map/hooks/useItems.tsx +++ b/src/Components/Map/hooks/useItems.tsx @@ -10,8 +10,8 @@ import { toast } from 'react-toastify' import { useAddLayer } from './useLayers' -import type { Item } from '#types/Item' -import type { LayerProps } from '#types/LayerProps' +import type { Item } from '#src/types/Item' +import type { LayerProps } from '#src/types/LayerProps' type ActionType = | { type: 'ADD'; item: Item } diff --git a/src/Components/Map/hooks/useLayers.tsx b/src/Components/Map/hooks/useLayers.tsx index 477ffc64..711a95be 100644 --- a/src/Components/Map/hooks/useLayers.tsx +++ b/src/Components/Map/hooks/useLayers.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useReducer, createContext, useContext } from 'react' -import type { LayerProps } from '#types/LayerProps' +import type { LayerProps } from '#src/types/LayerProps' interface ActionType { type: 'ADD LAYER' diff --git a/src/Components/Map/hooks/useLeafletRefs.tsx b/src/Components/Map/hooks/useLeafletRefs.tsx index a092d98e..93a1c130 100644 --- a/src/Components/Map/hooks/useLeafletRefs.tsx +++ b/src/Components/Map/hooks/useLeafletRefs.tsx @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { useCallback, useReducer, createContext, useContext } from 'react' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' import type { Marker, Popup } from 'leaflet' interface LeafletRef { diff --git a/src/Components/Map/hooks/usePermissions.tsx b/src/Components/Map/hooks/usePermissions.tsx index 5d149eb3..6d413b7c 100644 --- a/src/Components/Map/hooks/usePermissions.tsx +++ b/src/Components/Map/hooks/usePermissions.tsx @@ -10,11 +10,11 @@ import { useCallback, useReducer, createContext, useContext, useState } from 're import { useAuth } from '#components/Auth/useAuth' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { LayerProps } from '#types/LayerProps' -import type { Permission } from '#types/Permission' -import type { PermissionAction } from '#types/PermissionAction' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { LayerProps } from '#src/types/LayerProps' +import type { Permission } from '#src/types/Permission' +import type { PermissionAction } from '#src/types/PermissionAction' type ActionType = { type: 'ADD'; permission: Permission } | { type: 'REMOVE'; id: string } diff --git a/src/Components/Map/hooks/useSelectPosition.tsx b/src/Components/Map/hooks/useSelectPosition.tsx index d00fa4d9..982a3962 100644 --- a/src/Components/Map/hooks/useSelectPosition.tsx +++ b/src/Components/Map/hooks/useSelectPosition.tsx @@ -14,9 +14,9 @@ import { toast } from 'react-toastify' import { useUpdateItem } from './useItems' import { useHasUserPermission } from './usePermissions' -import type { Item } from '#types/Item' -import type { ItemFormPopupProps } from '#types/ItemFormPopupProps' -import type { LayerProps } from '#types/LayerProps' +import type { Item } from '#src/types/Item' +import type { ItemFormPopupProps } from '#src/types/ItemFormPopupProps' +import type { LayerProps } from '#src/types/LayerProps' import type { Point } from 'geojson' import type { LatLng } from 'leaflet' diff --git a/src/Components/Map/hooks/useTags.tsx b/src/Components/Map/hooks/useTags.tsx index f80e96ad..9420ce01 100644 --- a/src/Components/Map/hooks/useTags.tsx +++ b/src/Components/Map/hooks/useTags.tsx @@ -13,9 +13,9 @@ import { useCallback, useReducer, createContext, useContext, useState } from 're import { getValue } from '#utils/GetValue' import { hashTagRegex } from '#utils/HashTagRegex' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' type ActionType = { type: 'ADD'; tag: Tag } | { type: 'REMOVE'; id: string } diff --git a/src/Components/Profile/ProfileForm.tsx b/src/Components/Profile/ProfileForm.tsx index c5339657..c4eb2c6a 100644 --- a/src/Components/Profile/ProfileForm.tsx +++ b/src/Components/Profile/ProfileForm.tsx @@ -23,8 +23,8 @@ import { OnepagerForm } from './Templates/OnepagerForm' import { SimpleForm } from './Templates/SimpleForm' import { TabsForm } from './Templates/TabsForm' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export function ProfileForm() { const [state, setState] = useState({ diff --git a/src/Components/Profile/ProfileView.tsx b/src/Components/Profile/ProfileView.tsx index 76c42aec..ca9e072d 100644 --- a/src/Components/Profile/ProfileView.tsx +++ b/src/Components/Profile/ProfileView.tsx @@ -29,9 +29,9 @@ import { OnepagerView } from './Templates/OnepagerView' import { SimpleView } from './Templates/SimpleView' import { TabsView } from './Templates/TabsView' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' +import type { Tag } from '#src/types/Tag' export function ProfileView({ attestationApi }: { attestationApi?: ItemsApi }) { const [item, setItem] = useState() diff --git a/src/Components/Profile/Subcomponents/ActionsButton.tsx b/src/Components/Profile/Subcomponents/ActionsButton.tsx index 7eea5e44..6452f741 100644 --- a/src/Components/Profile/Subcomponents/ActionsButton.tsx +++ b/src/Components/Profile/Subcomponents/ActionsButton.tsx @@ -12,7 +12,7 @@ import { HeaderView } from '#components/Map/Subcomponents/ItemPopupComponents/He import DialogModal from '#components/Templates/DialogModal' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function ActionButton({ item, diff --git a/src/Components/Profile/Subcomponents/ContactInfoForm.tsx b/src/Components/Profile/Subcomponents/ContactInfoForm.tsx index 7f129d01..2081567e 100644 --- a/src/Components/Profile/Subcomponents/ContactInfoForm.tsx +++ b/src/Components/Profile/Subcomponents/ContactInfoForm.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ import { TextInput } from '#components/Input' -import type { FormState } from '#types/FormState' +import type { FormState } from '#src/types/FormState' export const ContactInfoForm = ({ state, diff --git a/src/Components/Profile/Subcomponents/ContactInfoView.tsx b/src/Components/Profile/Subcomponents/ContactInfoView.tsx index a8368d24..01f2dfb5 100644 --- a/src/Components/Profile/Subcomponents/ContactInfoView.tsx +++ b/src/Components/Profile/Subcomponents/ContactInfoView.tsx @@ -8,7 +8,7 @@ import { Link } from 'react-router-dom' import { useAppState } from '#components/AppShell/hooks/useAppState' import { useItems } from '#components/Map/hooks/useItems' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ContactInfoView = ({ item, heading }: { item: Item; heading: string }) => { const appState = useAppState() diff --git a/src/Components/Profile/Subcomponents/GalleryView.tsx b/src/Components/Profile/Subcomponents/GalleryView.tsx index 7cf2bc37..f6fee269 100644 --- a/src/Components/Profile/Subcomponents/GalleryView.tsx +++ b/src/Components/Profile/Subcomponents/GalleryView.tsx @@ -10,7 +10,7 @@ import 'react-photo-album/rows.css' import { useAppState } from '#components/AppShell/hooks/useAppState' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const GalleryView = ({ item }: { item: Item }) => { const [index, setIndex] = useState(-1) diff --git a/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx b/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx index 7718b075..6c808314 100644 --- a/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx +++ b/src/Components/Profile/Subcomponents/GroupSubHeaderView.tsx @@ -1,6 +1,6 @@ import SocialShareBar from './SocialShareBar' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const GroupSubHeaderView = ({ item, diff --git a/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx b/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx index 55b8c58f..db2e663b 100644 --- a/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx +++ b/src/Components/Profile/Subcomponents/GroupSubheaderForm.tsx @@ -5,8 +5,8 @@ import { useEffect } from 'react' import ComboBoxInput from '#components/Input/ComboBoxInput' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' interface groupType { groupTypes_id: { diff --git a/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx b/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx index 57dd0ce9..626f0ba7 100644 --- a/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx +++ b/src/Components/Profile/Subcomponents/LinkedItemsHeaderView.tsx @@ -10,7 +10,7 @@ import { useEffect } from 'react' import { useAppState } from '#components/AppShell/hooks/useAppState' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export function LinkedItemsHeaderView({ item, diff --git a/src/Components/Profile/Subcomponents/PlusButton.tsx b/src/Components/Profile/Subcomponents/PlusButton.tsx index c8122d95..06fa6e34 100644 --- a/src/Components/Profile/Subcomponents/PlusButton.tsx +++ b/src/Components/Profile/Subcomponents/PlusButton.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-call */ import { useHasUserPermission } from '#components/Map/hooks/usePermissions' -import type { LayerProps } from '#types/LayerProps' +import type { LayerProps } from '#src/types/LayerProps' export function PlusButton({ layer, diff --git a/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx b/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx index e5f67ffe..5ccc1384 100644 --- a/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx +++ b/src/Components/Profile/Subcomponents/ProfileStartEndForm.tsx @@ -2,7 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ import { PopupStartEndInput } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileStartEndForm = ({ item, diff --git a/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx b/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx index 8d64e55d..95425563 100644 --- a/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx +++ b/src/Components/Profile/Subcomponents/ProfileStartEndView.tsx @@ -1,6 +1,6 @@ import { StartEndView } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileStartEndView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Subcomponents/ProfileTextForm.tsx b/src/Components/Profile/Subcomponents/ProfileTextForm.tsx index 1d72a3b3..b74c01d4 100644 --- a/src/Components/Profile/Subcomponents/ProfileTextForm.tsx +++ b/src/Components/Profile/Subcomponents/ProfileTextForm.tsx @@ -9,7 +9,7 @@ import { getValue } from '#utils/GetValue' import { MarkdownHint } from './MarkdownHint' -import type { FormState } from '#types/FormState' +import type { FormState } from '#src/types/FormState' export const ProfileTextForm = ({ state, diff --git a/src/Components/Profile/Subcomponents/ProfileTextView.tsx b/src/Components/Profile/Subcomponents/ProfileTextView.tsx index 8a2725ce..75dc8ca1 100644 --- a/src/Components/Profile/Subcomponents/ProfileTextView.tsx +++ b/src/Components/Profile/Subcomponents/ProfileTextView.tsx @@ -2,7 +2,7 @@ import { TextView } from '#components/Map' import { getValue } from '#utils/GetValue' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ProfileTextView = ({ item, diff --git a/src/Components/Profile/Subcomponents/TagsWidget.tsx b/src/Components/Profile/Subcomponents/TagsWidget.tsx index b1a03ad1..48850c0c 100644 --- a/src/Components/Profile/Subcomponents/TagsWidget.tsx +++ b/src/Components/Profile/Subcomponents/TagsWidget.tsx @@ -11,7 +11,7 @@ import { useTags } from '#components/Map/hooks/useTags' import { decodeTag, encodeTag } from '#utils/FormatTags' import { randomColor } from '#utils/RandomColor' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' // eslint-disable-next-line react/prop-types export const TagsWidget = ({ placeholder, containerStyle, defaultTags, onUpdate }) => { diff --git a/src/Components/Profile/Templates/FlexForm.tsx b/src/Components/Profile/Templates/FlexForm.tsx index 56f14eac..0d6aa9c6 100644 --- a/src/Components/Profile/Templates/FlexForm.tsx +++ b/src/Components/Profile/Templates/FlexForm.tsx @@ -8,8 +8,8 @@ import { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubhe import { ProfileStartEndForm } from '#components/Profile/Subcomponents/ProfileStartEndForm' import { ProfileTextForm } from '#components/Profile/Subcomponents/ProfileTextForm' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' const componentMap = { groupSubheaders: GroupSubheaderForm, diff --git a/src/Components/Profile/Templates/FlexView.tsx b/src/Components/Profile/Templates/FlexView.tsx index 608b0fdf..08c35f26 100644 --- a/src/Components/Profile/Templates/FlexView.tsx +++ b/src/Components/Profile/Templates/FlexView.tsx @@ -8,7 +8,7 @@ import { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHe import { ProfileStartEndView } from '#components/Profile/Subcomponents/ProfileStartEndView' import { ProfileTextView } from '#components/Profile/Subcomponents/ProfileTextView' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' const componentMap = { groupSubheaders: GroupSubHeaderView, diff --git a/src/Components/Profile/Templates/OnepagerForm.tsx b/src/Components/Profile/Templates/OnepagerForm.tsx index 163cae4e..9e4a1783 100644 --- a/src/Components/Profile/Templates/OnepagerForm.tsx +++ b/src/Components/Profile/Templates/OnepagerForm.tsx @@ -4,8 +4,8 @@ import { TextAreaInput } from '#components/Input' import { ContactInfoForm } from '#components/Profile/Subcomponents/ContactInfoForm' import { GroupSubheaderForm } from '#components/Profile/Subcomponents/GroupSubheaderForm' -import type { FormState } from '#types/FormState' -import type { Item } from '#types/Item' +import type { FormState } from '#src/types/FormState' +import type { Item } from '#src/types/Item' export const OnepagerForm = ({ item, diff --git a/src/Components/Profile/Templates/OnepagerView.tsx b/src/Components/Profile/Templates/OnepagerView.tsx index 32a786ee..b26f0303 100644 --- a/src/Components/Profile/Templates/OnepagerView.tsx +++ b/src/Components/Profile/Templates/OnepagerView.tsx @@ -4,7 +4,7 @@ import { TextView } from '#components/Map' import { ContactInfoView } from '#components/Profile/Subcomponents/ContactInfoView' import { GroupSubHeaderView } from '#components/Profile/Subcomponents/GroupSubHeaderView' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const OnepagerView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Templates/SimpleView.tsx b/src/Components/Profile/Templates/SimpleView.tsx index dca6d079..6553cb77 100644 --- a/src/Components/Profile/Templates/SimpleView.tsx +++ b/src/Components/Profile/Templates/SimpleView.tsx @@ -1,6 +1,6 @@ import { TextView } from '#components/Map' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const SimpleView = ({ item }: { item: Item }) => { return ( diff --git a/src/Components/Profile/Templates/TabsView.tsx b/src/Components/Profile/Templates/TabsView.tsx index d7554b94..51df5ec2 100644 --- a/src/Components/Profile/Templates/TabsView.tsx +++ b/src/Components/Profile/Templates/TabsView.tsx @@ -18,8 +18,8 @@ import { LinkedItemsHeaderView } from '#components/Profile/Subcomponents/LinkedI import { TagView } from '#components/Templates/TagView' import { timeAgo } from '#utils/TimeAgo' -import type { Item } from '#types/Item' -import type { Tag } from '#types/Tag' +import type { Item } from '#src/types/Item' +import type { Tag } from '#src/types/Tag' export const TabsView = ({ attestations, diff --git a/src/Components/Profile/UserSettings.tsx b/src/Components/Profile/UserSettings.tsx index 9f602f63..2da3d54d 100644 --- a/src/Components/Profile/UserSettings.tsx +++ b/src/Components/Profile/UserSettings.tsx @@ -8,7 +8,7 @@ import { useAuth } from '#components/Auth' import { TextInput } from '#components/Input' import { MapOverlayPage } from '#components/Templates' -import type { UserItem } from '#types/UserItem' +import type { UserItem } from '#src/types/UserItem' export function UserSettings() { const { user, updateUser, loading /* token */ } = useAuth() diff --git a/src/Components/Profile/itemFunctions.ts b/src/Components/Profile/itemFunctions.ts index ad11c536..5d4ca6dc 100644 --- a/src/Components/Profile/itemFunctions.ts +++ b/src/Components/Profile/itemFunctions.ts @@ -15,7 +15,7 @@ import { encodeTag } from '#utils/FormatTags' import { hashTagRegex } from '#utils/HashTagRegex' import { randomColor } from '#utils/RandomColor' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' // eslint-disable-next-line promise/avoid-new const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) diff --git a/src/Components/Templates/AttestationForm.tsx b/src/Components/Templates/AttestationForm.tsx index ce5994ad..a4d84aea 100644 --- a/src/Components/Templates/AttestationForm.tsx +++ b/src/Components/Templates/AttestationForm.tsx @@ -8,8 +8,8 @@ import { useItems } from '#components/Map/hooks/useItems' import { EmojiPicker } from './EmojiPicker' import { MapOverlayPage } from './MapOverlayPage' -import type { Item } from '#types/Item' -import type { ItemsApi } from '#types/ItemsApi' +import type { Item } from '#src/types/Item' +import type { ItemsApi } from '#src/types/ItemsApi' export const AttestationForm = ({ api }: { api?: ItemsApi }) => { const items = useItems() diff --git a/src/Components/Templates/DateUserInfo.tsx b/src/Components/Templates/DateUserInfo.tsx index 4243a9c0..358764bf 100644 --- a/src/Components/Templates/DateUserInfo.tsx +++ b/src/Components/Templates/DateUserInfo.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import { timeAgo } from '#utils/TimeAgo' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const DateUserInfo = ({ item }: { item: Item }) => { const [infoExpanded, setInfoExpanded] = useState(false) diff --git a/src/Components/Templates/ItemCard.tsx b/src/Components/Templates/ItemCard.tsx index 585d18ae..1e5938d8 100644 --- a/src/Components/Templates/ItemCard.tsx +++ b/src/Components/Templates/ItemCard.tsx @@ -13,7 +13,7 @@ import { getValue } from '#utils/GetValue' import { DateUserInfo } from './DateUserInfo' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const ItemCard = ({ i, diff --git a/src/Components/Templates/MarketView.tsx b/src/Components/Templates/MarketView.tsx index 18822755..f2339540 100644 --- a/src/Components/Templates/MarketView.tsx +++ b/src/Components/Templates/MarketView.tsx @@ -13,7 +13,7 @@ import { getValue } from '#utils/GetValue' import { MapOverlayPage } from './MapOverlayPage' import { TagView } from './TagView' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' function groupAndCount(arr) { const grouped = arr.reduce((acc, obj) => { diff --git a/src/Components/Templates/OverlayItemsIndexPage.tsx b/src/Components/Templates/OverlayItemsIndexPage.tsx index 3388cddc..052ad27c 100644 --- a/src/Components/Templates/OverlayItemsIndexPage.tsx +++ b/src/Components/Templates/OverlayItemsIndexPage.tsx @@ -25,7 +25,7 @@ import { randomColor } from '#utils/RandomColor' import { ItemCard } from './ItemCard' import { MapOverlayPage } from './MapOverlayPage' -import type { Item } from '#types/Item' +import type { Item } from '#src/types/Item' export const OverlayItemsIndexPage = ({ url, diff --git a/src/Components/Templates/TagView.tsx b/src/Components/Templates/TagView.tsx index f19c5adc..f103d533 100644 --- a/src/Components/Templates/TagView.tsx +++ b/src/Components/Templates/TagView.tsx @@ -2,7 +2,7 @@ import { decodeTag } from '#utils/FormatTags' -import type { Tag } from '#types/Tag' +import type { Tag } from '#src/types/Tag' export const TagView = ({ tag, diff --git a/src/index.tsx b/src/index.tsx index 145d1719..1446e5a5 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -37,6 +37,8 @@ export { } from './Components/Templates' export { TextInput, TextAreaInput, SelectBox } from './Components/Input' +export * from './types' + declare global { interface Window { my_modal_3: { diff --git a/src/types/AssetsApi.d.ts b/src/types/AssetsApi.d.ts new file mode 100644 index 00000000..f2005016 --- /dev/null +++ b/src/types/AssetsApi.d.ts @@ -0,0 +1,4 @@ +export interface AssetsApi { + upload(file: Blob, title: string): Promise<{ id: string }> + url: string +} diff --git a/src/types/FormState.d.ts b/src/types/FormState.d.ts new file mode 100644 index 00000000..20589afd --- /dev/null +++ b/src/types/FormState.d.ts @@ -0,0 +1,20 @@ +import type { Item } from './Item' +import type { Tag } from './Tag' + +export interface FormState { + color: string + id: string + group_type: string + status: string + name: string + subname: string + text: string + contact: string + telephone: string + next_appointment: string + image: string + marker_icon: string + offers: Tag[] + needs: Tag[] + relations: Item[] +} diff --git a/src/types/Item.d.ts b/src/types/Item.d.ts new file mode 100644 index 00000000..47560e66 --- /dev/null +++ b/src/types/Item.d.ts @@ -0,0 +1,44 @@ +import type { ItemsApi } from './ItemsApi' +import type { LayerProps } from './LayerProps' +import type { Relation } from './Relation' +import type { UserItem } from './UserItem' +import type { Point } from 'geojson' + +export interface Item { + id: string + name: string + text: string + position?: Point + date_created?: string + date_updated?: string | null + start?: string + end?: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + api?: ItemsApi + tags?: string[] + layer?: LayerProps + relations?: Relation[] + parent?: string + subname?: string + public_edit?: boolean + slug?: string + user_created?: UserItem + image?: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any + /* constructor( + id: string, + name: string, + text: string, + position: Geometry, + layer?: LayerProps, + api?: ItemsApi, + ) { + this.id = id + this.name = name + this.text = text + this.position = position + this.layer = layer + this.api = api + } */ +} diff --git a/src/types/ItemFormPopupProps.d.ts b/src/types/ItemFormPopupProps.d.ts new file mode 100644 index 00000000..64e880bb --- /dev/null +++ b/src/types/ItemFormPopupProps.d.ts @@ -0,0 +1,11 @@ +import type { Item } from './Item' +import type { LayerProps } from './LayerProps' +import type { LatLng } from 'leaflet' + +export interface ItemFormPopupProps { + position: LatLng + layer: LayerProps + item?: Item + children?: React.ReactNode + setItemFormPopup?: React.Dispatch> +} diff --git a/src/types/ItemType.d.ts b/src/types/ItemType.d.ts new file mode 100644 index 00000000..1f125cc7 --- /dev/null +++ b/src/types/ItemType.d.ts @@ -0,0 +1,5 @@ +export interface ItemType { + name: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any +} diff --git a/src/types/ItemsApi.d.ts b/src/types/ItemsApi.d.ts new file mode 100644 index 00000000..147fa462 --- /dev/null +++ b/src/types/ItemsApi.d.ts @@ -0,0 +1,8 @@ +export interface ItemsApi { + getItems(): Promise + getItem?(id: string): Promise + createItem?(item: T): Promise + updateItem?(item: T): Promise + deleteItem?(id: string): Promise + collectionName?: string +} diff --git a/src/types/LayerProps.d.ts b/src/types/LayerProps.d.ts new file mode 100644 index 00000000..7d742d5e --- /dev/null +++ b/src/types/LayerProps.d.ts @@ -0,0 +1,42 @@ +import type { Item } from './Item' +import type { ItemFormPopupProps } from './ItemFormPopupProps' +import type { ItemsApi } from './ItemsApi' +import type { ItemType } from './ItemType' + +export interface LayerProps { + id?: string + data?: Item[] + children?: React.ReactNode + name: string + menuIcon: string + menuColor: string + menuText: string + markerIcon: string + markerShape: string + markerDefaultColor: string + markerDefaultColor2?: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + api?: ItemsApi + itemType: ItemType + itemNameField?: string + itemSubnameField?: string + itemTextField?: string + itemAvatarField?: string + itemColorField?: string + itemOwnerField?: string + itemTagsField?: string + itemLatitudeField?: string + itemLongitudeField?: string + itemOffersField?: string + itemNeedsField?: string + onlyOnePerOwner?: boolean + customEditLink?: string + customEditParameter?: string + public_edit_items?: boolean + listed?: boolean + item_presets?: Record + setItemFormPopup?: React.Dispatch> + itemFormPopup?: ItemFormPopupProps | null + // eslint-disable-next-line @typescript-eslint/no-explicit-any + clusterRef?: any +} diff --git a/src/types/Permission.d.ts b/src/types/Permission.d.ts new file mode 100644 index 00000000..57067fee --- /dev/null +++ b/src/types/Permission.d.ts @@ -0,0 +1,13 @@ +import type { PermissionAction } from './PermissionAction' +import type { PermissionCondition } from './PermissionCondition' + +export interface Permission { + id?: string + policy?: { name: string } + collection: string + action: PermissionAction + permissions?: { + // Optional, für spezifische Bedingungen wie `user_created` + _and: PermissionCondition[] + } +} diff --git a/src/types/PermissionAction.d.ts b/src/types/PermissionAction.d.ts new file mode 100644 index 00000000..7278a069 --- /dev/null +++ b/src/types/PermissionAction.d.ts @@ -0,0 +1 @@ +export type PermissionAction = 'create' | 'read' | 'update' | 'delete' diff --git a/src/types/PermissionCondition.d.ts b/src/types/PermissionCondition.d.ts new file mode 100644 index 00000000..e946bdb1 --- /dev/null +++ b/src/types/PermissionCondition.d.ts @@ -0,0 +1,8 @@ +export interface PermissionCondition { + user_created?: { + _eq: string // Erwartet den speziellen Wert "$CURRENT_USER" oder eine spezifische UUID + } + public_edit?: { + _eq: boolean // Erwartet den speziellen Wert "$CURRENT_USER" oder eine spezifische UUID + } +} diff --git a/src/types/Profile.d.ts b/src/types/Profile.d.ts new file mode 100644 index 00000000..4bfb8980 --- /dev/null +++ b/src/types/Profile.d.ts @@ -0,0 +1,10 @@ +import type { Geometry } from 'geojson' + +export interface Profile { + id?: string + avatar?: string + color?: string + name: string + text: string + geoposition?: Geometry +} diff --git a/src/types/Relation.d.ts b/src/types/Relation.d.ts new file mode 100644 index 00000000..0b038022 --- /dev/null +++ b/src/types/Relation.d.ts @@ -0,0 +1,5 @@ +export interface Relation { + related_items_id: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any +} diff --git a/src/types/Tag.d.ts b/src/types/Tag.d.ts new file mode 100644 index 00000000..1dc7c5a9 --- /dev/null +++ b/src/types/Tag.d.ts @@ -0,0 +1,6 @@ +export interface Tag { + color: string + id: string + name: string + offer_or_need?: boolean +} diff --git a/src/types/UserApi.d.ts b/src/types/UserApi.d.ts new file mode 100644 index 00000000..6c36cd4e --- /dev/null +++ b/src/types/UserApi.d.ts @@ -0,0 +1,12 @@ +import type { UserItem } from './UserItem' + +export interface UserApi { + register(email: string, password: string, userName: string): Promise + login(email: string, password: string): Promise + logout(): Promise + getUser(): Promise + getToken(): Promise + updateUser(user: UserItem): Promise + requestPasswordReset(email: string, reset_url?: string) + passwordReset(token: string, new_password: string) +} diff --git a/src/types/UserItem.d.ts b/src/types/UserItem.d.ts new file mode 100644 index 00000000..1d28817e --- /dev/null +++ b/src/types/UserItem.d.ts @@ -0,0 +1,13 @@ +import type { Profile } from './Profile' + +export interface UserItem { + id?: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + role?: any + email?: string + password?: string + profile?: Profile + first_name?: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any + [key: string]: any +} diff --git a/src/types/UtopiaMapProps.d.ts b/src/types/UtopiaMapProps.d.ts new file mode 100644 index 00000000..99389e81 --- /dev/null +++ b/src/types/UtopiaMapProps.d.ts @@ -0,0 +1,16 @@ +import type { Tag } from './Tag' +import type { GeoJsonObject } from 'geojson' + +export interface UtopiaMapProps { + height?: string + width?: string + center?: [number, number] + zoom?: number + tags?: Tag[] + children?: React.ReactNode + geo?: GeoJsonObject + showFilterControl?: boolean + showLayerControl?: boolean + showGratitudeControl?: boolean + infoText?: string +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 00000000..42cb2117 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,9 @@ +export type { ItemsApi } from './ItemsApi' +export type { Tag } from './Tag' +export type { Item } from './Item' +export type { Permission } from './Permission' +export type { LayerProps } from './LayerProps' +export type { UserApi } from './UserApi' +export type { UserItem } from './UserItem' +export type { UtopiaMapProps } from './UtopiaMapProps' +export type { AssetsApi } from './AssetsApi' diff --git a/tsconfig.json b/tsconfig.json index 0d97d121..dc2c4663 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -23,7 +23,7 @@ "#components/*": ["./src/Components/*"], "#utils/*": ["./src/Utils/*"], "#src/*": ["./src/*"], - "#types/*": ["./types/*"], + "#types/*": ["./src/types/*"], "#root/*": ["./*"] } },