@owdproject/core
Version:
Nuxt Desktop module for browser desktop experiences (windows, shell, apps)
55 lines (47 loc) • 1.4 kB
text/typescript
import { defineStore } from 'pinia'
import { useDesktopStore } from './storeDesktop'
import { DESKTOP_DEFAULT_APPS_STORE_ID } from './storeIds'
export const useDesktopDefaultAppsStore = defineStore(
DESKTOP_DEFAULT_APPS_STORE_ID,
() => {
const desktopStore = useDesktopStore()
/**
* Sets a default app for a given feature
*/
function setDefaultApp(
feature: string,
application: IApplicationController,
entry: string,
) {
if (!desktopStore.state.hasOwnProperty('defaultApps')) {
desktopStore.state.defaultApps = {}
}
desktopStore.state.defaultApps[feature] = {
applicationId: application.id,
entry,
}
}
/**
* Gets the default app config for a given feature
*/
function getDefaultApp(feature: string): DefaultAppConfig | undefined {
if (!desktopStore.state.hasOwnProperty('defaultApps')) {
desktopStore.state.defaultApps = {}
}
return desktopStore.state.defaultApps[feature]
}
/**
* Loads default apps from current config
*/
function loadDefaultAppsFromConfig(runtimeConfig) {
if (runtimeConfig.public.desktop.defaultApps) {
desktopStore.state.defaultApps = runtimeConfig.public.desktop.defaultApps
}
}
return {
setDefaultApp,
getDefaultApp,
loadDefaultAppsFromConfig,
}
},
)