123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <script setup lang="ts">
- /* Initialize stores. */
- import { useProfileStore } from '@/stores/profile'
- import { useSystemStore } from '@/stores/system'
- const Profile = useProfileStore()
- const System = useSystemStore()
- onBeforeMount(() => {
- // TODO Move this block to @nexajs/app
- try {
- Profile.$state = JSON.parse(localStorage.getItem('profile'), (key, value) => {
- if (typeof value === 'string' && /^\d+n$/.test(value)) {
- return BigInt(value.slice(0, value.length - 1))
- }
- return value
- })
- System.$state = JSON.parse(localStorage.getItem('system'), (key, value) => {
- if (typeof value === 'string' && /^\d+n$/.test(value)) {
- return BigInt(value.slice(0, value.length - 1))
- }
- return value
- })
- // add additional states here...
- } catch (err) {
- console.error(err)
- }
- })
- // TODO Move this block to @nexajs/app
- watch([Profile.$state, System.$state], (_state) => {
- localStorage.setItem('profile',
- JSON.stringify(_state[0], (key, value) =>
- typeof value === 'bigint' ? value.toString() + 'n' : value
- )
- )
- localStorage.setItem('system',
- JSON.stringify(_state[1], (key, value) =>
- typeof value === 'bigint' ? value.toString() + 'n' : value
- )
- )
- // watch additional states here...
- })
- onMounted(() => {
- /* Initailize system. */
- System.init()
- })
- onBeforeUnmount(() => {
- console.log('TODO! Cleanup session.')
- // Now is the time to perform all cleanup operations.
- })
- </script>
- <template>
- <main>
- <slot />
- </main>
- </template>
|