diff --git a/package.json b/package.json index 140e0ac..64170bc 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "pinia-plugin-persistedstate": "^3.1.0", "sass": "^1.62.1", "vue": "^3.3.4", - "vue-router": "^4.2.2" + "vue-clipboard3": "^2.0.0" }, "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", diff --git a/src/views/SettingsView.vue b/src/views/SettingsView.vue index ee70c86..7a6c8eb 100644 --- a/src/views/SettingsView.vue +++ b/src/views/SettingsView.vue @@ -4,9 +4,12 @@ import { useGeneralStore } from '@/store' import { faCloudUploadAlt, faCopy, faTrash } from '@fortawesome/fontawesome-free-solid' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' import { ref } from 'vue' +import useClipboard from 'vue-clipboard3' const store = useGeneralStore() +const { toClipboard } = useClipboard() +const serializedStateRef = ref() const dataToLoad = ref('') const deleteConfirm = ref(false) @@ -26,6 +29,11 @@ function onDelete() { deleteConfirm.value = true } } + +async function copySerializedState() { + await toClipboard(store.getSerializedState) + serializedStateRef.value.focus() +}