diff options
Diffstat (limited to 'apps/web/components')
| -rw-r--r-- | apps/web/components/settings/ImportExport.tsx | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/apps/web/components/settings/ImportExport.tsx b/apps/web/components/settings/ImportExport.tsx index d6086c97..ab4fb640 100644 --- a/apps/web/components/settings/ImportExport.tsx +++ b/apps/web/components/settings/ImportExport.tsx @@ -16,6 +16,7 @@ import { parseNetscapeBookmarkFile, parseOmnivoreBookmarkFile, parsePocketBookmarkFile, + parseTabSessionManagerStateFile, } from "@/lib/importBookmarkParser"; import { cn } from "@/lib/utils"; import { useMutation } from "@tanstack/react-query"; @@ -161,7 +162,13 @@ export function ImportExportRow() { source, }: { file: File; - source: "html" | "pocket" | "omnivore" | "hoarder" | "linkwarden"; + source: + | "html" + | "pocket" + | "omnivore" + | "hoarder" + | "linkwarden" + | "tab-session-manager"; }) => { if (source === "html") { return await parseNetscapeBookmarkFile(file); @@ -173,6 +180,8 @@ export function ImportExportRow() { return await parseOmnivoreBookmarkFile(file); } else if (source === "linkwarden") { return await parseLinkwardenBookmarkFile(file); + } else if (source === "tab-session-manager") { + return await parseTabSessionManagerStateFile(file); } else { throw new Error("Unknown source"); } @@ -346,6 +355,25 @@ export function ImportExportRow() { </FilePickerButton> </ImportCard> <ImportCard + text="Tab Session Manager" + description={t( + "settings.import.import_bookmarks_from_tab_session_manager_export", + )} + > + <FilePickerButton + size={"sm"} + loading={false} + accept=".json" + multiple={false} + className="flex items-center gap-2" + onFileSelect={(file) => + runUploadBookmarkFile({ file, source: "tab-session-manager" }) + } + > + <p>Import</p> + </FilePickerButton> + </ImportCard> + <ImportCard text="Hoarder" description={t( "settings.import.import_bookmarks_from_hoarder_export", |
