useMainHeaderStore.js 1.49 KB
import { defineStore } from 'pinia';
import { reactive, ref } from 'vue';

export const useMainHeaderStore = defineStore('main-header', () => {
    const items = reactive([
        {
            key: 'Dashboard',
            icon: null,
            enabled: true
        },
        {
            key: 'Files',
            icon: null,
            enabled: false
        },
        {
            key: 'Slice',
            icon: null,
            enabled: false
        },
        {
            key: 'Print Job',
            icon: null,
            enabled: false
        },
        {
            key: 'Printer',
            icon: null,
            enabled: false
        },
        {
            key: 'Manage',
            icon: null,
            enabled: false
        }
    ]);
    const isUploadModalVisible = ref(false);

    const isCanUndo = ref(false);
    const isCanRedo = ref(false);

    const setUploadModalVisible = (val) => {
        isUploadModalVisible.value = val;
    };

    const setIsCanUndo = (val) => {
        isCanUndo.value = val;
        const object = items.find((el) => el.key === 'undo');
        if (object) object.enabled = val;
    };

    const setIsCanRedo = (val) => {
        isCanRedo.value = val;
        const object = items.find((el) => el.key === 'redo');
        if (object) object.enabled = val;
    };

    return {
        items,
        isCanUndo,
        isCanRedo,
        isUploadModalVisible,
        setUploadModalVisible,
        setIsCanUndo,
        setIsCanRedo
    };
});