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
}
- } onClick={ exportBookmarks }>
+ } onClick={ exportBookmarks }>
{ i18n.t("features.netscape_bookmarks.export") }
- } onClick={ handleImport }>
+ } onClick={ handleImport }>
{ i18n.t("features.netscape_bookmarks.import") }
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, """);
}