aboutsummaryrefslogtreecommitdiff
path: root/front-end/src/components/Settings/Bookmarks.vue
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-02-02 17:04:47 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2024-02-02 17:04:47 -0500
commitdd5e5164262c5ff7ecf6db1003d41d81e6364c09 (patch)
tree9b5a34f0c57eeb55f7625f2eb60b191a494d1758 /front-end/src/components/Settings/Bookmarks.vue
parentdab4c63543af688e67661b0091b49edb00e9557d (diff)
add bookmark export, fix some ui stuff
Diffstat (limited to 'front-end/src/components/Settings/Bookmarks.vue')
-rw-r--r--front-end/src/components/Settings/Bookmarks.vue33
1 files changed, 33 insertions, 0 deletions
diff --git a/front-end/src/components/Settings/Bookmarks.vue b/front-end/src/components/Settings/Bookmarks.vue
new file mode 100644
index 0000000..68fa86b
--- /dev/null
+++ b/front-end/src/components/Settings/Bookmarks.vue
@@ -0,0 +1,33 @@
+<script setup lang="ts">
+import { apiCall, useWait } from '@vnuge/vnlib.browser';
+import { useStore } from '../../store';
+import { useObjectUrl, set } from '@vueuse/core';
+import { ref } from 'vue';
+
+const { bookmarks } = useStore();
+
+const blobUrl = ref<Blob>();
+const downloadAnchor = ref();
+const obj = useObjectUrl(blobUrl);
+const { waiting } = useWait()
+
+const downloadBookmarks = () => {
+ apiCall(async () => {
+ const htmlData = await bookmarks.api.downloadAll();
+ const blob = new Blob([htmlData], { type: 'text/html' });
+ set(blobUrl, blob);
+ downloadAnchor.value?.click();
+ });
+}
+
+</script>
+<template>
+ <div class="flex flex-row justify-start">
+ <div class="">
+ <button class="flex items-center btn light" :disabled="waiting" @click="downloadBookmarks()">
+ Download
+ </button>
+ </div>
+ </div>
+ <a ref="downloadAnchor" :href="obj" download="bookmarks.html" class="hidden"></a>
+</template> \ No newline at end of file