You've already forked AstralRinth
dfe12d4ecb
* fix: clicking users in table in app takes you to blank page instead of website * fix: wrong loader icon on server panel * fix: surface var misalignment * fix: password managers still detecting username field as something to autofill * feat: show users on backupitem components * feat: seperators for filter sections * fix: lint + change remove -> revoke * fix: copy * feat: align copy
39 lines
1.0 KiB
Vue
39 lines
1.0 KiB
Vue
<script setup lang="ts">
|
|
import {
|
|
injectModrinthClient,
|
|
injectModrinthServerContext,
|
|
ServersManageAccessPage,
|
|
} from '@modrinth/ui'
|
|
import { useQueryClient } from '@tanstack/vue-query'
|
|
import { openUrl } from '@tauri-apps/plugin-opener'
|
|
|
|
const client = injectModrinthClient()
|
|
const { serverId } = injectModrinthServerContext()
|
|
const queryClient = useQueryClient()
|
|
|
|
try {
|
|
await Promise.all([
|
|
queryClient.ensureQueryData({
|
|
queryKey: ['servers', 'users', 'v1', serverId],
|
|
queryFn: () => client.archon.server_users_v1.list(serverId),
|
|
staleTime: 30_000,
|
|
}),
|
|
queryClient.ensureQueryData({
|
|
queryKey: ['servers', 'v1', 'detail', serverId],
|
|
queryFn: () => client.archon.servers_v1.get(serverId),
|
|
staleTime: 30_000,
|
|
}),
|
|
])
|
|
} catch {
|
|
// Let mounted layouts' useQuery surface errors; do not fail route setup.
|
|
}
|
|
|
|
function userProfileLink(username: string) {
|
|
return () => openUrl(`https://modrinth.com/user/${encodeURIComponent(username)}`)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<ServersManageAccessPage :user-profile-link="userProfileLink" />
|
|
</template>
|