| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { useInfiniteQuery, useQuery } from '@tanstack/react-query'
- import type { DataSet, DataSetListResponse, DatasetListRequest, RelatedAppResponse } from '@/models/datasets'
- import { get } from '../base'
- import { useReset } from '../use-base'
- import qs from 'qs'
-
- const NAME_SPACE = 'dataset'
-
- const DatasetListKey = [NAME_SPACE, 'list']
-
- export const useDatasetList = (params: DatasetListRequest) => {
- const { initialPage, tag_ids, limit, include_all, keyword } = params
- return useInfiniteQuery({
- queryKey: [...DatasetListKey, initialPage, tag_ids, limit, include_all, keyword],
- queryFn: ({ pageParam = 1 }) => {
- const urlParams = qs.stringify({
- tag_ids,
- limit,
- include_all,
- keyword,
- page: pageParam,
- }, { indices: false })
- return get<DataSetListResponse>(`/datasets?${urlParams}`)
- },
- getNextPageParam: lastPage => lastPage.has_more ? lastPage.page + 1 : null,
- initialPageParam: initialPage,
- })
- }
-
- export const useResetDatasetList = () => {
- return useReset([...DatasetListKey])
- }
-
- export const useDatasetDetail = (datasetId: string) => {
- return useQuery({
- queryKey: [NAME_SPACE, 'detail', datasetId],
- queryFn: () => get<DataSet>(`/datasets/${datasetId}`),
- })
- }
-
- export const useDatasetRelatedApps = (datasetId: string) => {
- return useQuery({
- queryKey: [NAME_SPACE, 'related-apps', datasetId],
- queryFn: () => get<RelatedAppResponse>(`/datasets/${datasetId}/related-apps`),
- })
- }
-
- type NotionPagePreviewRequest = {
- workspaceID: string
- pageID: string
- pageType: string
- }
-
- type NotionPagePreviewResponse = {
- content: string
- }
-
- export const usePreviewNotionPage = (params: NotionPagePreviewRequest) => {
- const { workspaceID, pageID, pageType } = params
- return useQuery({
- queryKey: [NAME_SPACE, 'preview-notion-page'],
- queryFn: () => get<NotionPagePreviewResponse>(`notion/workspaces/${workspaceID}/pages/${pageID}/${pageType}/preview`),
- enabled: !!workspaceID && !!pageID && !!pageType,
- })
- }
|