aboutsummaryrefslogtreecommitdiff
path: root/extension/src/components/FolderBody.tsx
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2024-12-17 03:16:10 -0500
committersowgro <tpoke.ferrari@gmail.com>2024-12-17 03:16:10 -0500
commit1ca4340e46f7fec3d2689cb8a3c60f9018ead048 (patch)
tree6b3d111f4bc0915e36937476177a2bf8f67c2fb3 /extension/src/components/FolderBody.tsx
parent12b5143a47daa20cc844c02ab28b56efd12b03b0 (diff)
downloadbookmarks-home-1ca4340e46f7fec3d2689cb8a3c60f9018ead048.tar.gz
bookmarks-home-1ca4340e46f7fec3d2689cb8a3c60f9018ead048.tar.bz2
bookmarks-home-1ca4340e46f7fec3d2689cb8a3c60f9018ead048.zip
backup push: not quite working
Diffstat (limited to 'extension/src/components/FolderBody.tsx')
-rw-r--r--extension/src/components/FolderBody.tsx46
1 files changed, 31 insertions, 15 deletions
diff --git a/extension/src/components/FolderBody.tsx b/extension/src/components/FolderBody.tsx
index a573a6e..e75fcc7 100644
--- a/extension/src/components/FolderBody.tsx
+++ b/extension/src/components/FolderBody.tsx
@@ -1,32 +1,48 @@
import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode;
+import {ReactElement, useContext, useEffect, useState} from "react";
+import {Settings} from "./Body.tsx";
+import {getBrowser} from "../main.tsx";
import Bookmark from "./Bookmark.tsx";
import FolderButton from "./FolderButton.tsx";
-import {useContext} from "react";
-import {Settings} from "./Body.tsx";
/**
* A component that displays the contents of a bookmark folder
- *
- * @param props.data The BookmarkTreeNode with data for the folder
- * @constructor
*/
-function FolderBody (props: {data: BookmarkTreeNode}) {
- const [settings, _] = useContext(Settings)
+function FolderBody (props: {id: string}) {
+
+ const [settings, ] = useContext(Settings)
- if (!props.data.children) return;
+ const [children, setChildren] = useState<BookmarkTreeNode[]>([])
- let content = [...props.data.children].sort(getSortFunction(settings.sort))
- if (settings.foldersFirst) {
- let [bookmarks, folders] = separateFolders(content)
- content = folders.concat(bookmarks)
+ const updateBookmarks = () => {
+ getBrowser().bookmarks.getSubTree(props.id).then(r => {
+ let content = [...r[0].children!].sort(getSortFunction(settings.sort))
+ if (settings.foldersFirst) {
+ let [bookmarks, folders] = separateFolders(content)
+ content = folders.concat(bookmarks)
+ }
+ setChildren(content);
+ })
}
+ useEffect(() => {
+ updateBookmarks();
+ // getBrowser().bookmarks.onRemoved.addListener((id: string, moveInfo) => {
+ // if (moveInfo.parentId !== props.id) return;
+ // updateBookmarks();
+ // })
+ }, []);
+
+ useEffect(() => {
+ updateBookmarks();
+ }, [settings]);
+
return (
<div className={"folderBody"}>
- {content.map(child =>
+ {children.map(child =>
child.children
- ? <FolderButton data={child} />
- : <Bookmark data={child} />
+ ? <FolderButton id={child.id} />
+ : <Bookmark id={child.id} />
)}
</div>
)