From 03b7ccaa5c152c8d7ed73374be8ad4d4d034845b Mon Sep 17 00:00:00 2001
From: sowgro <tpoke.ferrari@gmail.com>
Date: Thu, 7 Nov 2024 12:40:42 -0500
Subject: Implement sorting and refactor

---
 extension/src/components/Bookmark.tsx | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 extension/src/components/Bookmark.tsx

(limited to 'extension/src/components/Bookmark.tsx')

diff --git a/extension/src/components/Bookmark.tsx b/extension/src/components/Bookmark.tsx
new file mode 100644
index 0000000..75badd7
--- /dev/null
+++ b/extension/src/components/Bookmark.tsx
@@ -0,0 +1,34 @@
+import BookmarkTreeNode = browser.bookmarks.BookmarkTreeNode;
+
+/**
+ * A component for a single bookmark
+ *
+ * @param props.data The BookmarkTreeNode with the data for the bookmark
+ */
+function Bookmark(props: {data: BookmarkTreeNode}) {
+    return(
+        <a className="bookmark draggable" href={props.data.url}>
+            <img alt="Bookmark icon" src={faviconURL(props.data.url)}></img>
+            <span>{props.data.title}</span>
+        </a>
+    );
+}
+
+/**
+ * Gets the icon for a bookmark
+ *
+ * @param u The URL of the link
+ * @return The URL of the icon
+ */
+function faviconURL(u: string | undefined) {
+    if (!u) return "";
+    u = new URL(u).hostname.toString();
+    const url = new URL('https://www.google.com/s2/favicons');
+    url.searchParams.set("sz", "256");
+    // u = u.split(".")[u.split(".").length-2] +"."+ u.split(".")[u.split(".").length-1]
+    url.searchParams.set("domain_url", u);
+    return url.toString();
+
+}
+
+export default Bookmark;
\ No newline at end of file
-- 
cgit v1.2.3

