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 +--- 3 files changed, 43 insertions(+), 12 deletions(-) (limited to 'extension/src') 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'}, -- cgit v1.2.3