aboutsummaryrefslogtreecommitdiff
path: root/src/components/admin_modal/admin_modal.js
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2023-03-14 21:50:43 +0200
committerHenry Jameson <me@hjkos.com>2023-03-14 21:50:43 +0200
commit4d23d31fecf480abfccc4db3ac79c6640078dc3b (patch)
tree545b0ffe95fe206db0cb39971a6aa8c3368b5617 /src/components/admin_modal/admin_modal.js
parent9632b77786a9d3735f04ecf4a814311fad926ad0 (diff)
initial admin settings prototype (WIP)
Diffstat (limited to 'src/components/admin_modal/admin_modal.js')
-rw-r--r--src/components/admin_modal/admin_modal.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/components/admin_modal/admin_modal.js b/src/components/admin_modal/admin_modal.js
new file mode 100644
index 00000000..525f09aa
--- /dev/null
+++ b/src/components/admin_modal/admin_modal.js
@@ -0,0 +1,68 @@
+import Modal from 'src/components/modal/modal.vue'
+import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
+import AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'
+import getResettableAsyncComponent from 'src/services/resettable_async_component.js'
+import Popover from '../popover/popover.vue'
+import Checkbox from 'src/components/checkbox/checkbox.vue'
+import { library } from '@fortawesome/fontawesome-svg-core'
+import {
+ newImporter,
+ newExporter
+} from 'src/services/export_import/export_import.js'
+import {
+ faTimes,
+ faFileUpload,
+ faFileDownload,
+ faChevronDown
+} from '@fortawesome/free-solid-svg-icons'
+import {
+ faWindowMinimize
+} from '@fortawesome/free-regular-svg-icons'
+
+library.add(
+ faTimes,
+ faWindowMinimize,
+ faFileUpload,
+ faFileDownload,
+ faChevronDown
+)
+
+const AdminModal = {
+ data () {
+ return {}
+ },
+ components: {
+ Modal,
+ Popover,
+ Checkbox,
+ AdminModalContent: getResettableAsyncComponent(
+ () => import('./admin_modal_content.vue'),
+ {
+ loadingComponent: PanelLoading,
+ errorComponent: AsyncComponentError,
+ delay: 0
+ }
+ )
+ },
+ methods: {
+ closeModal () {
+ this.$store.dispatch('closeAdminModal')
+ },
+ peekModal () {
+ this.$store.dispatch('togglePeekAdminModal')
+ }
+ },
+ computed: {
+ modalActivated () {
+ return this.$store.state.interface.adminModalState !== 'hidden'
+ },
+ modalOpenedOnce () {
+ return this.$store.state.interface.adminModalLoaded
+ },
+ modalPeeked () {
+ return this.$store.state.interface.adminModalState === 'minimized'
+ }
+ }
+}
+
+export default AdminModal