aboutsummaryrefslogtreecommitdiffstats
path: root/components/loader
diff options
context:
space:
mode:
Diffstat (limited to 'components/loader')
-rw-r--r--components/loader/LoaderDiscardSessionModal.vue48
-rw-r--r--components/loader/LoaderFileSystemButton.vue2
-rw-r--r--components/loader/LoaderImportButton.vue9
-rw-r--r--components/loader/LoaderNetworkButton.vue8
-rw-r--r--components/loader/LoaderTestDataButton.vue2
5 files changed, 67 insertions, 2 deletions
diff --git a/components/loader/LoaderDiscardSessionModal.vue b/components/loader/LoaderDiscardSessionModal.vue
new file mode 100644
index 0000000..845b10a
--- /dev/null
+++ b/components/loader/LoaderDiscardSessionModal.vue
@@ -0,0 +1,48 @@
+<script setup lang="ts">
+const session = useSessionStore();
+
+const showModal = ref(false);
+
+const open = () => {
+ showModal.value = true;
+}
+
+const confirm = () => {
+ session.setQuests([]);
+ session.setCategories([]);
+ session.setItems([]);
+ session.setSessionType('none');
+
+ navigateToEditorPane(null);
+
+ showModal.value = false;
+}
+
+defineExpose({
+ open
+})
+</script>
+
+<template>
+ <Modal v-model="showModal">
+ <template v-slot:header>
+ <h2>Discard current session</h2>
+ </template>
+
+ <p>You are about to discard your current session. All changes will be lost.
+ Do you want to continue?</p>
+
+ <div id="controls" class="control-group">
+ <Button :icon="['fas', 'xmark']" :label="'Cancel'" @click="showModal = false"></Button>
+ <Button type="solid" accent="danger" :icon="['fas', 'trash']" :label="'Confirm'" @click="confirm"></Button>
+ </div>
+ </Modal>
+</template>
+
+<style scoped>
+#controls {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: 1rem;
+}
+</style> \ No newline at end of file
diff --git a/components/loader/LoaderFileSystemButton.vue b/components/loader/LoaderFileSystemButton.vue
index 0d02477..3a70860 100644
--- a/components/loader/LoaderFileSystemButton.vue
+++ b/components/loader/LoaderFileSystemButton.vue
@@ -32,7 +32,7 @@ const openFileSystemPrompt = async () => {
<template>
<ClientOnly>
- <Button type="solid" :icon="['fas', 'folder-open']" label="Import from Filesystem" @click="openFileSystemPrompt"
+ <Button type="solid" :icon="['fas', 'folder-open']" label="Load" @click="openFileSystemPrompt"
:disabled="!canUseFsApi" />
<LoaderFileSystemModal ref="fileSystemModal" />
diff --git a/components/loader/LoaderImportButton.vue b/components/loader/LoaderImportButton.vue
new file mode 100644
index 0000000..48bcb8d
--- /dev/null
+++ b/components/loader/LoaderImportButton.vue
@@ -0,0 +1,9 @@
+<script setup lang="ts">
+const navigateToImport = async () => {
+ navigateTo('/import');
+}
+</script>
+
+<template>
+ <Button type="solid" :icon="['fas', 'file-import']" label="Import" @click="navigateToImport" />
+</template> \ No newline at end of file
diff --git a/components/loader/LoaderNetworkButton.vue b/components/loader/LoaderNetworkButton.vue
new file mode 100644
index 0000000..3364597
--- /dev/null
+++ b/components/loader/LoaderNetworkButton.vue
@@ -0,0 +1,8 @@
+<script setup lang="ts">
+</script>
+
+<template>
+ <ClientOnly>
+ <Button type="solid" :icon="['fas', 'download']" label="Download" :disabled="true" />
+ </ClientOnly>
+</template> \ No newline at end of file
diff --git a/components/loader/LoaderTestDataButton.vue b/components/loader/LoaderTestDataButton.vue
index b01b0ee..1e648d6 100644
--- a/components/loader/LoaderTestDataButton.vue
+++ b/components/loader/LoaderTestDataButton.vue
@@ -10,7 +10,7 @@ const openTestDataModal = async () => {
<template>
<ClientOnly>
- <Button :icon="['fas', 'flask-vial']" label="Demo" @click="openTestDataModal" />
+ <Button type="solid" :icon="['fas', 'flask-vial']" label="Demo" @click="openTestDataModal" />
<LoaderTestDataModal ref="testDataModal" />
</ClientOnly>