aboutsummaryrefslogtreecommitdiff
path: root/extension/src/main.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'extension/src/main.tsx')
-rw-r--r--extension/src/main.tsx45
1 files changed, 45 insertions, 0 deletions
diff --git a/extension/src/main.tsx b/extension/src/main.tsx
new file mode 100644
index 0000000..36df6f6
--- /dev/null
+++ b/extension/src/main.tsx
@@ -0,0 +1,45 @@
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import Folder from "./Folder.tsx";
+import BookmarkTreeNode = chrome.bookmarks.BookmarkTreeNode;
+import Bookmark from "./Bookmark.tsx";
+
+chrome.bookmarks.getTree((tree) => {
+ createRoot(document.getElementById('root')!).render(createFolder(tree[0]))
+});
+
+function createFolder(lev: BookmarkTreeNode) {
+ return (
+ <Folder name={lev.title}>
+ {
+ lev.children ? lev.children.map(item => {
+ if (item.children) {
+ return createFolder(item)
+ } else {
+ return <Bookmark name={item.title} url={item.url ? item.url : ""} icon={faviconURL(item.url)} />
+ }
+ }) : <span>err</span>
+ }
+ </Folder>
+ )
+}
+
+function faviconURL(u: string | undefined) {
+ if (!u) {
+ return "";
+ }
+ u = new URL(u).origin.toString();
+ const url = new URL(chrome.runtime.getURL("/_favicon/"));
+ url.searchParams.set("pageUrl", u);
+ url.searchParams.set("size", "32");
+ console.log(u)
+ return url.toString();
+}
+
+
+// chrome.bookmarks.create(
+// {'parentId': '0', 'title': 'Bookmarks Extension'},
+// function (newFolder) {
+// console.log("added folder: " + newFolder.title);
+// },
+// ); \ No newline at end of file