UNPKG

@owdproject/core

Version:

Nuxt Desktop module for browser desktop experiences (windows, shell, apps)

39 lines (31 loc) 972 B
import type { DesktopWorkAreaRect } from '@owdproject/core' import { defineStore } from 'pinia' import { computed, readonly, shallowRef } from 'vue' import { useDesktopStore } from './storeDesktop' import { DESKTOP_WINDOW_STORE_ID } from './storeIds' export const EMPTY_DESKTOP_WORK_AREA: DesktopWorkAreaRect = { x: 0, y: 0, width: 0, height: 0, } export const useDesktopWindowStore = defineStore(DESKTOP_WINDOW_STORE_ID, () => { const desktopStore = useDesktopStore() const workArea = shallowRef<DesktopWorkAreaRect>({ ...EMPTY_DESKTOP_WORK_AREA, }) const positionZ = computed(() => desktopStore.state.window.positionZ) function incrementPositionZ() { desktopStore.state.window.positionZ++ return desktopStore.state.window.positionZ } function setWorkArea(rect: DesktopWorkAreaRect) { workArea.value = { ...rect } } return { positionZ, incrementPositionZ, workArea: readonly(workArea), setWorkArea, } })