diff --git a/features/netscapeBookmarks/layouts/BookmarksSection.tsx b/features/netscapeBookmarks/layouts/BookmarksSection.tsx index bd13b56..8471e14 100644 --- a/features/netscapeBookmarks/layouts/BookmarksSection.tsx +++ b/features/netscapeBookmarks/layouts/BookmarksSection.tsx @@ -1,6 +1,6 @@ import { useDialog } from "@/contexts/DialogProvider"; import { Body1, Button, makeStyles, MessageBar, MessageBarBody, Subtitle2, tokens } from "@fluentui/react-components"; -import { ArrowDownload24Regular, ArrowUpload24Regular } from "@fluentui/react-icons"; +import { ArrowDownload20Regular, ArrowUpload20Regular } from "@fluentui/react-icons"; import importBookmarks from "../utils/importBookmarks"; import exportBookmarks from "../utils/exportBookmarks"; @@ -39,10 +39,10 @@ export default function BookmarksSection(): React.ReactElement }
- -
diff --git a/features/netscapeBookmarks/utils/convertBookmarks.ts b/features/netscapeBookmarks/utils/convertBookmarks.ts index 294f528..e37d597 100644 --- a/features/netscapeBookmarks/utils/convertBookmarks.ts +++ b/features/netscapeBookmarks/utils/convertBookmarks.ts @@ -19,7 +19,7 @@ export default function convertBookmarks(bookmarks: Bookmark[]): [CollectionItem untitled.items.push(getTab(bookmark, graphics)); count++; } - else if (bookmark.type === "folder" && bookmark.children) + else if (bookmark.type === "folder") { const collection: CollectionItem = getCollection(bookmark, graphics); items.push(collection); @@ -34,6 +34,9 @@ export default function convertBookmarks(bookmarks: Bookmark[]): [CollectionItem } } + if (untitled.items.length > 0) + items.unshift(untitled); + return [items, graphics, count]; } @@ -60,13 +63,14 @@ function getCollection(bookmark: Bookmark, graphics: GraphicsStorage): Collectio type: "collection" }; - for (const child of bookmark.children!) - { - if (child.type === "bookmark") - collection.items.push(getTab(child, graphics)); - else if (child.type === "folder" && child.children) - collection.items.push(getGroup(child, graphics)); - } + if (bookmark.children) + for (const child of bookmark.children) + { + if (child.type === "bookmark") + collection.items.push(getTab(child, graphics)); + else if (child.type === "folder" && child.children) + collection.items.push(getGroup(child, graphics)); + } return collection; } @@ -81,13 +85,14 @@ function getGroup(bookmark: Bookmark, graphics: GraphicsStorage): GroupItem color: getRandomColor() }; - for (const child of bookmark.children!) - { - if (child.type === "bookmark") - group.items.push(getTab(child, graphics)); - else if (child.type === "folder") - group.items.push(...getGroup(child, graphics).items); - } + if (bookmark.children) + for (const child of bookmark.children) + { + if (child.type === "bookmark") + group.items.push(getTab(child, graphics)); + else if (child.type === "folder") + group.items.push(...getGroup(child, graphics).items); + } return group; } diff --git a/features/netscapeBookmarks/utils/exportBookmarks.ts b/features/netscapeBookmarks/utils/exportBookmarks.ts index cfaf62e..70e4e06 100644 --- a/features/netscapeBookmarks/utils/exportBookmarks.ts +++ b/features/netscapeBookmarks/utils/exportBookmarks.ts @@ -50,7 +50,7 @@ function createFolder(item: CollectionItem | GroupItem): string[] for (const subItem of item.items) { if (subItem.type === "tab") - lines.push(`
${sanitizeString(subItem.title || subItem.url)}`); + lines.push(`
${sanitizeString(subItem.title || subItem.url)}`); else if (subItem.type === "group") lines.push(...createFolder(subItem)); } @@ -61,5 +61,9 @@ function createFolder(item: CollectionItem | GroupItem): string[] function sanitizeString(str: string): string { - return str.replace(/&/g, "&").replace(//g, ">"); + return str + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """); }