| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- import { useGlobalPublicStore } from '@/context/global-public-context'
 - import { AccessMode } from '@/models/access-control'
 - import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
 - import { fetchInstalledAppList, getAppAccessModeByAppId, uninstallApp, updatePinStatus } from './explore'
 - import { fetchAppMeta, fetchAppParams } from './share'
 - 
 - const NAME_SPACE = 'explore'
 - 
 - export const useGetInstalledApps = () => {
 -   return useQuery({
 -     queryKey: [NAME_SPACE, 'installedApps'],
 -     queryFn: () => {
 -       return fetchInstalledAppList()
 -     },
 -   })
 - }
 - 
 - export const useUninstallApp = () => {
 -   const client = useQueryClient()
 -   return useMutation({
 -     mutationKey: [NAME_SPACE, 'uninstallApp'],
 -     mutationFn: (appId: string) => uninstallApp(appId),
 -     onSuccess: () => {
 -       client.invalidateQueries({ queryKey: [NAME_SPACE, 'installedApps'] })
 -     },
 -   })
 - }
 - 
 - export const useUpdateAppPinStatus = () => {
 -   const client = useQueryClient()
 -   return useMutation({
 -     mutationKey: [NAME_SPACE, 'updateAppPinStatus'],
 -     mutationFn: ({ appId, isPinned }: { appId: string; isPinned: boolean }) => updatePinStatus(appId, isPinned),
 -     onSuccess: () => {
 -       client.invalidateQueries({ queryKey: [NAME_SPACE, 'installedApps'] })
 -     },
 -   })
 - }
 - 
 - export const useGetInstalledAppAccessModeByAppId = (appId: string | null) => {
 -   const systemFeatures = useGlobalPublicStore(s => s.systemFeatures)
 -   return useQuery({
 -     queryKey: [NAME_SPACE, 'appAccessMode', appId],
 -     queryFn: () => {
 -       if (systemFeatures.webapp_auth.enabled === false) {
 -         return {
 -           accessMode: AccessMode.PUBLIC,
 -         }
 -       }
 -       if (!appId || appId.length === 0)
 -         return Promise.reject(new Error('App code is required to get access mode'))
 - 
 -       return getAppAccessModeByAppId(appId)
 -     },
 -     enabled: !!appId,
 -   })
 - }
 - 
 - export const useGetInstalledAppParams = (appId: string | null) => {
 -   return useQuery({
 -     queryKey: [NAME_SPACE, 'appParams', appId],
 -     queryFn: () => {
 -       if (!appId || appId.length === 0)
 -         return Promise.reject(new Error('App ID is required to get app params'))
 -       return fetchAppParams(true, appId)
 -     },
 -     enabled: !!appId,
 -   })
 - }
 - 
 - export const useGetInstalledAppMeta = (appId: string | null) => {
 -   return useQuery({
 -     queryKey: [NAME_SPACE, 'appMeta', appId],
 -     queryFn: () => {
 -       if (!appId || appId.length === 0)
 -         return Promise.reject(new Error('App ID is required to get app meta'))
 -       return fetchAppMeta(true, appId)
 -     },
 -     enabled: !!appId,
 -   })
 - }
 
 
  |