diff --git a/apps/web/src/api/FileAPI.ts b/apps/web/src/api/FileAPI.ts index b2d4cfd..092a764 100644 --- a/apps/web/src/api/FileAPI.ts +++ b/apps/web/src/api/FileAPI.ts @@ -1,7 +1,7 @@ import { FileModel } from "@crate/types" import { FileError, FileErrorType, Node } from "@crate/common" -import { useErrorStore } from "store/ErrorStore" -import { useUserStore } from "store/UserStore" +import { useErrorStore } from "../store/ErrorStore" +import { useUserStore } from "../store/UserStore" export default { apiPath: "/api/v1", @@ -35,7 +35,7 @@ export default { return res }, - async update(fileModel: FileModel, path: string) { + async update(fileModel: FileModel) { return await this.fetch(`${this.apiPath}/block`, { method: "POST", body: Node.toRawBlock(Node.fromFile(fileModel)), diff --git a/apps/web/src/components/Navigation.tsx b/apps/web/src/components/Navigation.tsx index b1c5478..7445766 100644 --- a/apps/web/src/components/Navigation.tsx +++ b/apps/web/src/components/Navigation.tsx @@ -1,8 +1,8 @@ -import BrightCrateLogo from "assets/light-crate.svg" -import DarkCrateLogo from "assets/dark-crate.svg" +import BrightCrateLogo from "../assets/light-crate.svg" +import DarkCrateLogo from "../assets/dark-crate.svg" import { useEffect, useState } from "preact/hooks" import { Link } from "preact-router" -import { useUserStore } from "store/UserStore" +import { useUserStore } from "../store/UserStore" function CrateLogo() { const [useDark, setUseDark] = useState(false) diff --git a/apps/web/src/components/files/Dropdown.tsx b/apps/web/src/components/files/Dropdown.tsx index 299a20c..4a595a9 100644 --- a/apps/web/src/components/files/Dropdown.tsx +++ b/apps/web/src/components/files/Dropdown.tsx @@ -1,6 +1,6 @@ import { faCaretDown } from "@fortawesome/free-solid-svg-icons" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import Anchor from "models/Anchor" +import Anchor from "../../models/Anchor" import { StateUpdater, useRef, useState } from "preact/hooks" import { JSXInternal } from "preact/src/jsx" import { makeOpt, PopoverMenu } from "./PopoverMenu" diff --git a/apps/web/src/components/files/FileInspector.tsx b/apps/web/src/components/files/FileInspector.tsx index 375c682..d807a73 100644 --- a/apps/web/src/components/files/FileInspector.tsx +++ b/apps/web/src/components/files/FileInspector.tsx @@ -5,9 +5,9 @@ import { faLessThan, faXmark, } from "@fortawesome/free-solid-svg-icons" -import { useFileStore } from "store/FileStore" -import { FileInspectorFileBody } from "components/files/FileInspectorFileBody" -import { useStore as useFVStore } from "store/FileViewStore" +import { useFileStore } from "../../store/FileStore" +import { FileInspectorFileBody } from "../files/FileInspectorFileBody" +import { useStore as useFVStore } from "../../store/FileViewStore" import shallow from "zustand/shallow" import { NamedFileModel } from "@crate/types" diff --git a/apps/web/src/components/files/GridView.tsx b/apps/web/src/components/files/GridView.tsx index 3c31cca..8808a04 100644 --- a/apps/web/src/components/files/GridView.tsx +++ b/apps/web/src/components/files/GridView.tsx @@ -1,12 +1,12 @@ import { faFile, faFolder } from "@fortawesome/free-solid-svg-icons" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" import { useEffect, useRef, useState } from "preact/hooks" -import useClickOutside from "hooks/useClickOutside" +import useClickOutside from "../../hooks/useClickOutside" import RightClickMenu from "./RightClickMenu" -import Anchor from "models/Anchor" -import { useFileStore } from "store/FileStore" +import Anchor from "../../models/Anchor" +import { useFileStore } from "../../store/FileStore" import shallow from "zustand/shallow" -import { useStore as useFVStore } from "store/FileViewStore" +import { useStore as useFVStore } from "../../store/FileViewStore" type IconState = "empty" | "selected" | "hovered" const getIconState = (selected: boolean, hovered: boolean): IconState => { diff --git a/apps/web/src/components/files/ListView.tsx b/apps/web/src/components/files/ListView.tsx index bdd9f77..0d8c0b6 100644 --- a/apps/web/src/components/files/ListView.tsx +++ b/apps/web/src/components/files/ListView.tsx @@ -1,10 +1,10 @@ -import useClickOutside from "hooks/useClickOutside" -import Anchor from "models/Anchor" +import useClickOutside from "../../hooks/useClickOutside" +import Anchor from "../../models/Anchor" import { useRef, useState } from "preact/hooks" import RightClickMenu from "./RightClickMenu" -import { useFileStore } from "store/FileStore" +import { useFileStore } from "../../store/FileStore" import shallow from "zustand/shallow" -import { useStore as useFVStore } from "store/FileViewStore" +import { useStore as useFVStore } from "../../store/FileViewStore" import { FileModel } from "@crate/types" export function FileRow({ file }: { file: FileModel }) { diff --git a/apps/web/src/components/files/PopoverMenu.tsx b/apps/web/src/components/files/PopoverMenu.tsx index e74c819..087f36a 100644 --- a/apps/web/src/components/files/PopoverMenu.tsx +++ b/apps/web/src/components/files/PopoverMenu.tsx @@ -1,5 +1,5 @@ -import useClickOutside from "hooks/useClickOutside" -import Anchor from "models/Anchor" +import useClickOutside from "../../hooks/useClickOutside" +import Anchor from "../../models/Anchor" import { useEffect, useRef, useState } from "preact/hooks" import { JSXInternal } from "preact/src/jsx" diff --git a/apps/web/src/components/files/RightClickMenu.tsx b/apps/web/src/components/files/RightClickMenu.tsx index 2415f06..694a434 100644 --- a/apps/web/src/components/files/RightClickMenu.tsx +++ b/apps/web/src/components/files/RightClickMenu.tsx @@ -5,11 +5,11 @@ import { PopoverMenuProps, SelectionOptions, } from "./PopoverMenu" -import { useFileStore } from "store/FileStore" -import Anchor from "models/Anchor" +import { useFileStore } from "../../store/FileStore" +import Anchor from "../../models/Anchor" import { duplicateFile } from "@crate/common" import shallow from "zustand/shallow" -import { useStore as useFVStore } from "store/FileViewStore" +import { useStore as useFVStore } from "../../store/FileViewStore" import { useEffect, useState } from "preact/hooks" type RightClickMenuProps = { diff --git a/apps/web/src/components/files/Toolbar.tsx b/apps/web/src/components/files/Toolbar.tsx index ef67cfa..fc55335 100644 --- a/apps/web/src/components/files/Toolbar.tsx +++ b/apps/web/src/components/files/Toolbar.tsx @@ -1,16 +1,16 @@ import { faGrip, faBars, faAdd } from "@fortawesome/free-solid-svg-icons" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import FormInput from "components/FormInput" -import { Popover, PopoverButtonRow } from "components/Popover" +import FormInput from "../FormInput" +import { Popover, PopoverButtonRow } from "../Popover" import { StateUpdater, useEffect, useState } from "preact/hooks" import { JSXInternal } from "preact/src/jsx" import Dropdown, { FuncInput } from "./Dropdown" import sanitizeFilename from "sanitize-filename" -import { useFileStore } from "store/FileStore" -import FileAPI from "api/FileAPI" +import { useFileStore } from "../../store/FileStore" +import FileAPI from "../../api/FileAPI" import { createFile } from "@crate/common" import { FileModel } from "@crate/types" -import { useStore as useFVStore } from "store/FileViewStore" +import { useStore as useFVStore } from "../../store/FileViewStore" import shallow from "zustand/shallow" function NewFileBody({ diff --git a/apps/web/src/components/settings/Account.tsx b/apps/web/src/components/settings/Account.tsx index 5fad024..b89c170 100644 --- a/apps/web/src/components/settings/Account.tsx +++ b/apps/web/src/components/settings/Account.tsx @@ -1,9 +1,9 @@ -import FormInput from "components/FormInput" +import FormInput from "../FormInput" import { useCallback } from "preact/hooks" import { doc, DocumentReference, setDoc } from "firebase/firestore" import { UserModel } from "@crate/types" -import { db } from "vendor/firebase" -import { useUserStore } from "store/UserStore" +import { db } from "../../vendor/firebase" +import { useUserStore } from "../../store/UserStore" import shallow from "zustand/shallow" export default function Profile() { diff --git a/apps/web/src/components/settings/Security.tsx b/apps/web/src/components/settings/Security.tsx index fdc46af..1f90af2 100644 --- a/apps/web/src/components/settings/Security.tsx +++ b/apps/web/src/components/settings/Security.tsx @@ -1,5 +1,5 @@ import shallow from "zustand/shallow" -import { useUserStore } from "store/UserStore" +import { useUserStore } from "../../store/UserStore" export default function Security() { const [userDoc, updateUser] = useUserStore( diff --git a/apps/web/src/pages/Community.tsx b/apps/web/src/pages/Community.tsx index 9a3b4af..4994fb8 100644 --- a/apps/web/src/pages/Community.tsx +++ b/apps/web/src/pages/Community.tsx @@ -5,8 +5,8 @@ import { faStar, } from "@fortawesome/free-solid-svg-icons" import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" -import Button from "components/Button" -import { categories, CommunityPage, SidebarProps } from "models/Community" +import Button from "../components/Button" +import { categories, CommunityPage, SidebarProps } from "../models/Community" import { useState } from "preact/hooks" function SidebarButton({ diff --git a/apps/web/src/pages/Files.tsx b/apps/web/src/pages/Files.tsx index 979b800..0b87f59 100644 --- a/apps/web/src/pages/Files.tsx +++ b/apps/web/src/pages/Files.tsx @@ -9,14 +9,14 @@ import { ViewMode, } from "../components/files/Toolbar" import { Link } from "preact-router" -import useStoredState from "hooks/useStoredState" +import useStoredState from "../hooks/useStoredState" import { FileInspector } from "../components/files/FileInspector" import { createStore as createFVStore, useStore as useFVStore, Provider as FVProvider, -} from "store/FileViewStore" -import { useUserStore } from "store/UserStore" +} from "../store/FileViewStore" +import { useUserStore } from "../store/UserStore" function Breadcrumbs() { const path = ["folder1", "folder2"] diff --git a/apps/web/src/pages/Settings.tsx b/apps/web/src/pages/Settings.tsx index cd2e3de..a6f665b 100644 --- a/apps/web/src/pages/Settings.tsx +++ b/apps/web/src/pages/Settings.tsx @@ -11,7 +11,7 @@ import { import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" import { route } from "preact-router" import { useState } from "preact/hooks" -import { useUserStore } from "store/UserStore" +import { useUserStore } from "../store/UserStore" import Account from "../components/settings/Account" import Security from "../components/settings/Security" diff --git a/apps/web/src/pages/Splash.tsx b/apps/web/src/pages/Splash.tsx index 187547e..23e14a0 100644 --- a/apps/web/src/pages/Splash.tsx +++ b/apps/web/src/pages/Splash.tsx @@ -1,5 +1,5 @@ import { Link, route } from "preact-router" -import { useUserStore } from "store/UserStore" +import { useUserStore } from "../store/UserStore" export default function Splash() { const loggedIn = useUserStore((state) => state.signedIn) diff --git a/apps/web/src/store/FileStore.ts b/apps/web/src/store/FileStore.ts index 367477c..e4bc8b0 100644 --- a/apps/web/src/store/FileStore.ts +++ b/apps/web/src/store/FileStore.ts @@ -16,7 +16,7 @@ import create, { StateCreator } from "zustand" import { FileModel } from "@crate/types" import { subscribeWithSelector } from "zustand/middleware" import { immer } from "zustand/middleware/immer" -import FileAPI from "api/FileAPI" +import FileAPI from "../api/FileAPI" import { useUserStore } from "./UserStore" type CID = string diff --git a/apps/web/src/store/UserStore.ts b/apps/web/src/store/UserStore.ts index a641f07..9dcbeb1 100644 --- a/apps/web/src/store/UserStore.ts +++ b/apps/web/src/store/UserStore.ts @@ -8,7 +8,7 @@ import { onSnapshot, setDoc, } from "firebase/firestore" -import { auth, db } from "vendor/firebase" +import { auth, db } from "../vendor/firebase" import create, { StateCreator } from "zustand" import { persist, subscribeWithSelector } from "zustand/middleware" diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 05f19f9..ea6385b 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "target": "ESNext", - "baseUrl": "src", "useDefineForClassFields": true, "lib": ["DOM", "DOM.Iterable", "ESNext"], "allowJs": false, diff --git a/apps/web/tsconfig.node.json b/apps/web/tsconfig.node.json index e993792..f1ed4e7 100644 --- a/apps/web/tsconfig.node.json +++ b/apps/web/tsconfig.node.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "composite": true, "module": "esnext", "moduleResolution": "node" }, diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 0000000..065aee7 --- /dev/null +++ b/babel.config.json @@ -0,0 +1,3 @@ +{ + "babelrcRoots": ["*"] +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 0117da7..81b205b 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,4 +1,5 @@ { + "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "target": "ESNext", @@ -14,7 +15,11 @@ "lib": ["es2019"], "declaration": true, "resolveJsonModule": true, - "paths": {} + "paths": { + "@crate/common": ["libs/shared/common/src/index.ts"], + "@crate/types": ["libs/shared/types/src/index.ts"], + "@crate/web/*": ["apps/web/src/*"] + } }, "include": [], "exclude": ["node_modules", "*/**/*.test.ts", "*/**/*.spec.ts"]