feat: update purchase server flow (#5714)

* implement server list empty state component

* fix stories and adjust spacing

* implement select plan design refresh

* implement auth for empty server list

* use refs instead of reactive

* pnpm prepr

* fix auth usage for empty servers list

* move app auth provider setup to src/providers/setup

* pnpm prepr
This commit is contained in:
Truman Gao
2026-03-31 11:08:33 -07:00
committed by GitHub
parent afac705a39
commit 7d6ad93528
35 changed files with 596 additions and 302 deletions
+10 -7
View File
@@ -1,12 +1,15 @@
import type { Labrinth } from '@modrinth/api-client'
import { type AuthProvider, provideAuth } from '@modrinth/ui'
import { reactive, watchEffect } from 'vue'
import { ref, watchEffect } from 'vue'
export function setupAuthProvider(auth: Awaited<ReturnType<typeof useAuth>>) {
const router = useRouter()
const authProvider = reactive<AuthProvider>({
session_token: null,
user: null,
const sessionToken = ref<string | null>(null)
const user = ref<Labrinth.Users.v2.User | null>(null)
const authProvider: AuthProvider = {
session_token: sessionToken,
user,
requestSignIn: async (redirectPath: string) => {
await router.push({
path: '/auth/sign-in',
@@ -15,11 +18,11 @@ export function setupAuthProvider(auth: Awaited<ReturnType<typeof useAuth>>) {
},
})
},
})
}
watchEffect(() => {
authProvider.session_token = auth.value.token || null
authProvider.user = (auth.value.user as Labrinth.Users.v2.User | null) ?? null
sessionToken.value = auth.value.token || null
user.value = (auth.value.user as Labrinth.Users.v2.User | null) ?? null
})
provideAuth(authProvider)