forked from Mirrors/elk
refactor: add onMastoInit
This commit is contained in:
parent
6092b27da6
commit
6729666170
5 changed files with 15 additions and 22 deletions
|
@ -1,6 +1,4 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { warn } from 'vue'
|
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
text?: string
|
text?: string
|
||||||
icon: string
|
icon: string
|
||||||
|
@ -31,7 +29,7 @@ useCommand({
|
||||||
})
|
})
|
||||||
|
|
||||||
let activeClass = $ref('text-primary')
|
let activeClass = $ref('text-primary')
|
||||||
watch(isMastoInitialised, async () => {
|
onMastoInit(async () => {
|
||||||
if (!props.userOnly) {
|
if (!props.userOnly) {
|
||||||
// TODO: force NuxtLink to reevaluate, we now we are in this route though, so we should force it to active
|
// TODO: force NuxtLink to reevaluate, we now we are in this route though, so we should force it to active
|
||||||
// we don't have currentServer defined until later
|
// we don't have currentServer defined until later
|
||||||
|
|
|
@ -7,6 +7,12 @@ export const useMasto = () => useNuxtApp().$masto as ElkMasto
|
||||||
|
|
||||||
export const isMastoInitialised = computed(() => process.client && useMasto().loggedIn.value)
|
export const isMastoInitialised = computed(() => process.client && useMasto().loggedIn.value)
|
||||||
|
|
||||||
|
export const onMastoInit = (cb: () => unknown) => {
|
||||||
|
watchOnce(isMastoInitialised, () => {
|
||||||
|
cb()
|
||||||
|
}, { immediate: isMastoInitialised.value })
|
||||||
|
}
|
||||||
|
|
||||||
// @unocss-include
|
// @unocss-include
|
||||||
export const STATUS_VISIBILITIES = [
|
export const STATUS_VISIBILITIES = [
|
||||||
{
|
{
|
||||||
|
|
|
@ -86,7 +86,7 @@ export function usePaginator<T>(
|
||||||
}, 1000)
|
}, 1000)
|
||||||
|
|
||||||
if (!isMastoInitialised.value) {
|
if (!isMastoInitialised.value) {
|
||||||
watchOnce(isMastoInitialised, () => {
|
onMastoInit(() => {
|
||||||
state.value = 'idle'
|
state.value = 'idle'
|
||||||
loadNext()
|
loadNext()
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,18 +4,10 @@ export default defineNuxtRouteMiddleware((to) => {
|
||||||
if (to.path === '/signin/callback')
|
if (to.path === '/signin/callback')
|
||||||
return
|
return
|
||||||
|
|
||||||
if (!isMastoInitialised.value) {
|
onMastoInit(() => {
|
||||||
watchOnce(isMastoInitialised, () => {
|
if (!currentUser.value)
|
||||||
if (!currentUser.value)
|
return navigateTo(`/${currentServer.value}/public`)
|
||||||
return navigateTo(`/${currentServer.value}/public`)
|
if (to.path === '/')
|
||||||
if (to.path === '/')
|
return navigateTo('/home')
|
||||||
return navigateTo('/home')
|
})
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!currentUser.value)
|
|
||||||
return navigateTo(`/${currentServer.value}/public`)
|
|
||||||
if (to.path === '/')
|
|
||||||
return navigateTo('/home')
|
|
||||||
})
|
})
|
||||||
|
|
|
@ -45,10 +45,7 @@ const { form, reset, submitter, dirtyFields, isError } = useForm({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(isMastoInitialised, async (val) => {
|
onMastoInit(async () => {
|
||||||
if (!val)
|
|
||||||
return
|
|
||||||
|
|
||||||
// Keep the information to be edited up to date
|
// Keep the information to be edited up to date
|
||||||
await pullMyAccountInfo()
|
await pullMyAccountInfo()
|
||||||
reset()
|
reset()
|
||||||
|
|
Loading…
Reference in a new issue