diff --git a/next-ui/src/colada/queries/actuator-info.ts b/next-ui/src/colada/queries/actuator-info.ts
index b35e4e599..b7ec551b5 100644
--- a/next-ui/src/colada/queries/actuator-info.ts
+++ b/next-ui/src/colada/queries/actuator-info.ts
@@ -3,7 +3,7 @@ import {komgaClient} from '@/api/komga-client'
import type {ActuatorInfo} from '@/types/Actuator'
export const useActuatorInfo = defineQuery(() => {
- return useQuery({
+ const {data, ...rest} = useQuery({
key: () => ['actuator-info'],
query: () => komgaClient.GET('/actuator/info')
// unwrap the openapi-fetch structure on success
@@ -12,4 +12,14 @@ export const useActuatorInfo = defineQuery(() => {
staleTime: 60 * 60 * 1000,
gcTime: false,
})
+
+ const buildVersion = computed(() => data.value?.build?.version)
+ const commitId = computed(() => data.value?.git?.commit?.id)
+
+ return {
+ data,
+ ...rest,
+ buildVersion,
+ commitId,
+ }
})
diff --git a/next-ui/src/colada/queries/app-releases.ts b/next-ui/src/colada/queries/app-releases.ts
index 7819a81a3..805e835fc 100644
--- a/next-ui/src/colada/queries/app-releases.ts
+++ b/next-ui/src/colada/queries/app-releases.ts
@@ -1,8 +1,9 @@
import {defineQuery, useQuery} from '@pinia/colada'
import {komgaClient} from '@/api/komga-client'
+import {useActuatorInfo} from '@/colada/queries/actuator-info.ts'
export const useAppReleases = defineQuery(() => {
- return useQuery({
+ const {data, ...rest} = useQuery({
key: () => ['app-releases'],
query: () => komgaClient.GET('/api/v1/releases')
// unwrap the openapi-fetch structure on success
@@ -11,4 +12,21 @@ export const useAppReleases = defineQuery(() => {
staleTime: 60 * 60 * 1000,
gcTime: false,
})
+
+ const {buildVersion} = useActuatorInfo()
+ const latestRelease = computed(() => data.value?.find(x => x.latest))
+
+ const isLatestVersion = computed(() => {
+ if(buildVersion.value && latestRelease.value)
+ return buildVersion.value == latestRelease.value?.version
+ else return undefined
+ })
+
+ return {
+ data,
+ ...rest,
+ buildVersion,
+ latestRelease,
+ isLatestVersion,
+ }
})
diff --git a/next-ui/src/colada/queries/current-user.ts b/next-ui/src/colada/queries/current-user.ts
index 9d6dd1846..1a61b1b9a 100644
--- a/next-ui/src/colada/queries/current-user.ts
+++ b/next-ui/src/colada/queries/current-user.ts
@@ -1,8 +1,9 @@
import {defineQuery, useQuery} from '@pinia/colada'
import {komgaClient} from '@/api/komga-client'
+import {UserRoles} from '@/types/UserRoles.ts'
export const useCurrentUser = defineQuery(() => {
- return useQuery({
+ const {data, ...rest} = useQuery({
key: () => ['current-user'],
query: () => komgaClient.GET('/api/v2/users/me')
// unwrap the openapi-fetch structure on success
@@ -12,4 +13,14 @@ export const useCurrentUser = defineQuery(() => {
gcTime: false,
autoRefetch: true,
})
+
+ const hasRole =(role: UserRoles) => data.value?.roles.includes(role)
+ const isAdmin = computed(() => hasRole(UserRoles.ADMIN))
+
+ return {
+ data,
+ ...rest,
+ hasRole,
+ isAdmin,
+ }
})
diff --git a/next-ui/src/components/BuildCommit.vue b/next-ui/src/components/BuildCommit.vue
index 36a017248..bb4e3c28d 100644
--- a/next-ui/src/components/BuildCommit.vue
+++ b/next-ui/src/components/BuildCommit.vue
@@ -1,15 +1,15 @@
-
+
- {{ commit }}
+ {{ commitId }}
@@ -17,7 +17,5 @@
diff --git a/next-ui/src/components/BuildVersion.vue b/next-ui/src/components/BuildVersion.vue
index 6a6b8c7d5..3356b6b3d 100644
--- a/next-ui/src/components/BuildVersion.vue
+++ b/next-ui/src/components/BuildVersion.vue
@@ -20,9 +20,7 @@
diff --git a/next-ui/src/components/app/drawer/AppDrawerFooter.vue b/next-ui/src/components/app/drawer/AppDrawerFooter.vue
index bc884c6f0..96cc8c63e 100644
--- a/next-ui/src/components/app/drawer/AppDrawerFooter.vue
+++ b/next-ui/src/components/app/drawer/AppDrawerFooter.vue
@@ -11,8 +11,7 @@
diff --git a/next-ui/src/components/app/drawer/AppDrawerMenu.vue b/next-ui/src/components/app/drawer/AppDrawerMenu.vue
index 2aacfcedd..db4f5bf61 100644
--- a/next-ui/src/components/app/drawer/AppDrawerMenu.vue
+++ b/next-ui/src/components/app/drawer/AppDrawerMenu.vue
@@ -10,8 +10,7 @@
diff --git a/next-ui/src/composables/buid-version.ts b/next-ui/src/composables/buid-version.ts
deleted file mode 100644
index 5f120d5a4..000000000
--- a/next-ui/src/composables/buid-version.ts
+++ /dev/null
@@ -1,9 +0,0 @@
- import {useActuatorInfo} from '@/colada/queries/actuator-info'
-
-export function useBuildVersion() {
- const {data} = useActuatorInfo()
-
- const buildVersion = computed(() => data.value?.build?.version)
-
- return {buildVersion}
-}
diff --git a/next-ui/src/composables/current-user-role.ts b/next-ui/src/composables/current-user-role.ts
deleted file mode 100644
index 2010d8b92..000000000
--- a/next-ui/src/composables/current-user-role.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import {useCurrentUser} from '@/colada/queries/current-user.ts'
-import {UserRoles} from '@/types/UserRoles.ts'
-
-export function useCurrentUserRole(role: UserRoles) {
- const {data} = useCurrentUser()
-
- const hasRole = computed(() => data.value?.roles.includes(role))
-
- return {hasRole}
-}
diff --git a/next-ui/src/composables/latest-version.ts b/next-ui/src/composables/latest-version.ts
deleted file mode 100644
index 1457d7376..000000000
--- a/next-ui/src/composables/latest-version.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import {useAppReleases} from '@/colada/queries/app-releases.ts'
-import {useBuildVersion} from '@/composables/buid-version.ts'
-
-export function useLatestVersion() {
- const {data } = useAppReleases()
-
- const {buildVersion} = useBuildVersion()
- const latestRelease = computed(() => data.value?.find(x => x.latest))
-
- const isLatestVersion = computed(() => {
- if(buildVersion.value && latestRelease.value)
- return buildVersion.value == latestRelease.value?.version
- else return undefined
- })
-
- return {isLatestVersion, latestRelease}
-}
diff --git a/next-ui/src/pages/server/updates.vue b/next-ui/src/pages/server/updates.vue
index 4de5b3636..d83986b0e 100644
--- a/next-ui/src/pages/server/updates.vue
+++ b/next-ui/src/pages/server/updates.vue
@@ -93,13 +93,8 @@