From f2357a84469751c8f90713627e81c0a05ee72ab4 Mon Sep 17 00:00:00 2001 From: sowgro Date: Sun, 3 Nov 2024 21:00:43 -0500 Subject: Root folder dropdown applies to bookmarks (somewhat broken) --- extension/src/Body.tsx | 46 ++++++++++++++++++++++++++++++++------ extension/src/SettingsEditor.tsx | 5 +++-- extension/src/main.tsx | 4 +--- extension/tsconfig.app.tsbuildinfo | 2 +- extension/vite.config.ts | 1 + 5 files changed, 45 insertions(+), 13 deletions(-) (limited to 'extension') diff --git a/extension/src/Body.tsx b/extension/src/Body.tsx index df1c325..b2f8495 100644 --- a/extension/src/Body.tsx +++ b/extension/src/Body.tsx @@ -4,19 +4,51 @@ import Folder from "./Folder.tsx"; import imageUrl from "./assets/settings.svg" import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode; -function Body(props: {tree: BookmarkTreeNode[]}) { +// @ts-ignore +if (typeof browser === "undefined") { + var browser = chrome; +} + +export const RootFolder = React.createContext({ + rootFolder: '0', + setRootFolder: (arg0: string) => {} +}); + +export const BookmarkTree = React.createContext({ + bookmarkTree: [] as BookmarkTreeNode[], + setBookmarkTree: (arg0: BookmarkTreeNode[]) => {} +}) + +function Body() { const [settingsOpen, setSettingsOpen] = useState(false); + const [rootFolder, setRootFolder] = useState('1') + const [bookmarkTree, setBookmarkTree] = useState([]) + const [ogBookmarkTree, setOgBookmarkTree] = useState([]) + + browser.bookmarks.getSubTree(rootFolder).then(t => { + console.log(t); + if (t != bookmarkTree) { + setBookmarkTree(t); + } + console.log(bookmarkTree == t) + }); + + if (ogBookmarkTree?.length == 0) { + browser.bookmarks.getTree().then(t => { + setOgBookmarkTree(t); + }) + } return ( - <> + + - {settingsOpen && ()} - - + {settingsOpen && ()} + {bookmarkTree[0] && ()} + + ) } diff --git a/extension/src/SettingsEditor.tsx b/extension/src/SettingsEditor.tsx index 7568bad..f803fc3 100644 --- a/extension/src/SettingsEditor.tsx +++ b/extension/src/SettingsEditor.tsx @@ -1,12 +1,13 @@ import RadioButtonGroup from "./RadioButtonGroup.tsx"; -import React, {useState} from "react"; +import React, {useContext, useState} from "react"; import imageUrl from "./assets/close.svg" import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode; +import {RootFolder} from "./Body.tsx"; function SettingsEditor(props: {tree: BookmarkTreeNode[], closer: (arg0: boolean) => void}) { const [backgroundType, setBackgroundType] = useState("fromTheme"); const [sort, setSort] = useState("fromBookmarks"); - const [rootFolder, setRootFolder] = useState('0'); + const {rootFolder, setRootFolder} = useContext(RootFolder) return (
diff --git a/extension/src/main.tsx b/extension/src/main.tsx index 0b6d9de..5e6503a 100644 --- a/extension/src/main.tsx +++ b/extension/src/main.tsx @@ -7,9 +7,7 @@ if (typeof browser === "undefined") { var browser = chrome; } -browser.bookmarks.getTree().then(tree => { - createRoot(document.body).render() -}); +createRoot(document.body).render() // chrome.bookmarks.create( // {'parentId': '0', 'title': 'Bookmarks Extension'}, diff --git a/extension/tsconfig.app.tsbuildinfo b/extension/tsconfig.app.tsbuildinfo index a21fd05..cf2a415 100644 --- a/extension/tsconfig.app.tsbuildinfo +++ b/extension/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/Bookmark.tsx","./src/Folder.tsx","./src/main.tsx","./src/vite-env.d.ts"],"version":"5.6.2"} \ No newline at end of file +{"root":["./src/Body.tsx","./src/Bookmark.tsx","./src/Folder.tsx","./src/RadioButtonGroup.tsx","./src/Settings.tsx","./src/SettingsEditor.tsx","./src/main.tsx","./src/vite-env.d.ts"],"version":"5.6.2"} \ No newline at end of file diff --git a/extension/vite.config.ts b/extension/vite.config.ts index 0eaa701..d1e1be2 100644 --- a/extension/vite.config.ts +++ b/extension/vite.config.ts @@ -7,5 +7,6 @@ export default defineConfig({ build: { cssMinify: false, minify: false, + sourcemap: true }, }) \ No newline at end of file -- cgit v1.2.3