dify/web/service/use-explore.ts
非法操作 c1fdd6fb78
chore: paginate installed apps (#39739)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
2026-07-29 09:51:34 +00:00

49 lines
1.6 KiB
TypeScript

import type { App, AppCategory } from '@/models/explore'
import { useQuery } from '@tanstack/react-query'
import { useLocale } from '@/context/i18n'
import { consoleQuery } from './client'
import { fetchAppList, fetchLearnDifyAppList } from './explore'
type ExploreAppListData = {
categories: AppCategory[]
allList: App[]
}
export const useExploreAppList = (options: { enabled?: boolean } = {}) => {
const locale = useLocale()
const exploreAppsInput = locale ? { query: { language: locale } } : {}
const exploreAppsLanguage = exploreAppsInput?.query?.language
return useQuery<ExploreAppListData>({
queryKey: [
...consoleQuery.explore.apps.get.queryKey({ input: exploreAppsInput }),
exploreAppsLanguage,
],
queryFn: async () => {
const { categories, recommended_apps } = await fetchAppList(exploreAppsLanguage)
return {
categories,
allList: [...recommended_apps].sort((a, b) => a.position - b.position),
}
},
enabled: options.enabled,
})
}
export const useLearnDifyAppList = () => {
const locale = useLocale()
const learnDifyAppsInput = locale ? { query: { language: locale } } : {}
const learnDifyAppsLanguage = learnDifyAppsInput?.query?.language
return useQuery({
queryKey: [
...consoleQuery.explore.apps.learnDify.get.queryKey({ input: learnDifyAppsInput }),
learnDifyAppsLanguage,
],
queryFn: async () => {
const { recommended_apps } = await fetchLearnDifyAppList(learnDifyAppsLanguage)
return [...recommended_apps].sort((a, b) => a.position - b.position)
},
})
}