aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/src/Body.tsx46
-rw-r--r--extension/src/SettingsEditor.tsx5
-rw-r--r--extension/src/main.tsx4
-rw-r--r--extension/tsconfig.app.tsbuildinfo2
-rw-r--r--extension/vite.config.ts1
5 files changed, 45 insertions, 13 deletions
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<BookmarkTreeNode[]>([])
+ const [ogBookmarkTree, setOgBookmarkTree] = useState<BookmarkTreeNode[] | null>([])
+
+ 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 (
- <>
+ <BookmarkTree.Provider value={{bookmarkTree, setBookmarkTree}}>
+ <RootFolder.Provider value={{rootFolder, setRootFolder}}>
<button id="settings-button" onClick={_ => setSettingsOpen(!settingsOpen)}>
<img alt="open settings" src={imageUrl}/>
</button>
- {settingsOpen && (<SettingsEditor tree={props.tree} closer={setSettingsOpen}/>)}
- <Folder data={
- (props.tree && props.tree[0] && props.tree[0].children && props.tree[0].children[0])!
- }/>
- </>
+ {settingsOpen && (<SettingsEditor tree={ogBookmarkTree!} closer={setSettingsOpen}/>)}
+ {bookmarkTree[0] && (<Folder data={bookmarkTree[0]}/>)}
+ </RootFolder.Provider>
+ </BookmarkTree.Provider>
)
}
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 (
<div id="settings-menu">
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(<Body tree={tree}/>)
-});
+createRoot(document.body).render(<Body/>)
// 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