use-apps.ts 779 B

12345678910111213141516171819202122232425262728
  1. import { get } from './base'
  2. import type { App } from '@/types/app'
  3. import type { AppListResponse } from '@/models/app'
  4. import { useInvalid } from './use-base'
  5. import { useQuery } from '@tanstack/react-query'
  6. const NAME_SPACE = 'apps'
  7. // TODO paging for list
  8. const useAppFullListKey = [NAME_SPACE, 'full-list']
  9. export const useAppFullList = () => {
  10. return useQuery<AppListResponse>({
  11. queryKey: useAppFullListKey,
  12. queryFn: () => get<AppListResponse>('/apps', { params: { page: 1, limit: 100 } }),
  13. })
  14. }
  15. export const useInvalidateAppFullList = () => {
  16. return useInvalid(useAppFullListKey)
  17. }
  18. export const useAppDetail = (appID: string) => {
  19. return useQuery<App>({
  20. queryKey: [NAME_SPACE, 'detail', appID],
  21. queryFn: () => get<App>(`/apps/${appID}`),
  22. })
  23. }