aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components/settings/ImportExport.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/components/settings/ImportExport.tsx')
-rw-r--r--apps/web/components/settings/ImportExport.tsx17
1 files changed, 16 insertions, 1 deletions
diff --git a/apps/web/components/settings/ImportExport.tsx b/apps/web/components/settings/ImportExport.tsx
index 34e069da..e38f629a 100644
--- a/apps/web/components/settings/ImportExport.tsx
+++ b/apps/web/components/settings/ImportExport.tsx
@@ -11,6 +11,7 @@ import { useTranslation } from "@/lib/i18n/client";
import {
ParsedBookmark,
parseHoarderBookmarkFile,
+ parseLinkwardenBookmarkFile,
parseNetscapeBookmarkFile,
parseOmnivoreBookmarkFile,
parsePocketBookmarkFile,
@@ -121,7 +122,7 @@ export function ImportExportRow() {
source,
}: {
file: File;
- source: "html" | "pocket" | "omnivore" | "hoarder";
+ source: "html" | "pocket" | "omnivore" | "hoarder" | "linkwarden";
}) => {
if (source === "html") {
return await parseNetscapeBookmarkFile(file);
@@ -131,6 +132,8 @@ export function ImportExportRow() {
return await parseHoarderBookmarkFile(file);
} else if (source === "omnivore") {
return await parseOmnivoreBookmarkFile(file);
+ } else if (source === "linkwarden") {
+ return await parseLinkwardenBookmarkFile(file);
} else {
throw new Error("Unknown source");
}
@@ -236,6 +239,18 @@ export function ImportExportRow() {
multiple={false}
className="flex items-center gap-2"
onFileSelect={(file) =>
+ runUploadBookmarkFile({ file, source: "linkwarden" })
+ }
+ >
+ <Upload />
+ <p>{t("settings.import.import_bookmarks_from_linkwarden_export")}</p>
+ </FilePickerButton>
+ <FilePickerButton
+ loading={false}
+ accept=".json"
+ multiple={false}
+ className="flex items-center gap-2"
+ onFileSelect={(file) =>
runUploadBookmarkFile({ file, source: "hoarder" })
}
>