mirror of
https://github.com/langgenius/dify.git
synced 2026-07-26 22:28:32 +08:00
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
'use client'
|
|
|
|
import { keepPreviousData, skipToken } from '@tanstack/react-query'
|
|
import { atom } from 'jotai'
|
|
import { atomWithQuery } from 'jotai-tanstack-query'
|
|
import { selectAtom } from 'jotai/utils'
|
|
import { consoleQuery } from '@/service/client'
|
|
import { deploymentRouteAppInstanceIdAtom } from '../../route-state'
|
|
|
|
export const RELEASE_HISTORY_PAGE_SIZE = 20
|
|
|
|
export const releaseHistoryCurrentPageAtom = atom(0)
|
|
|
|
export const releaseHistoryQueryAtom = atomWithQuery((get) => {
|
|
const appInstanceId = get(deploymentRouteAppInstanceIdAtom)
|
|
const currentPage = get(releaseHistoryCurrentPageAtom)
|
|
|
|
return consoleQuery.enterprise.releaseService.listReleaseSummaries.queryOptions({
|
|
input: appInstanceId
|
|
? {
|
|
params: { appInstanceId },
|
|
query: {
|
|
pageNumber: currentPage + 1,
|
|
resultsPerPage: RELEASE_HISTORY_PAGE_SIZE,
|
|
},
|
|
}
|
|
: skipToken,
|
|
enabled: Boolean(appInstanceId),
|
|
placeholderData: keepPreviousData,
|
|
})
|
|
})
|
|
|
|
export const releaseHistoryAtom = selectAtom(releaseHistoryQueryAtom, (query) => query.data)
|
|
export const releaseHistoryIsLoadingAtom = selectAtom(
|
|
releaseHistoryQueryAtom,
|
|
(query) => query.isLoading,
|
|
)
|
|
export const releaseHistoryIsErrorAtom = selectAtom(
|
|
releaseHistoryQueryAtom,
|
|
(query) => query.isError,
|
|
)
|
|
|
|
export const setReleaseHistoryCurrentPageAtom = atom(null, (_get, set, page: number) => {
|
|
set(releaseHistoryCurrentPageAtom, Math.max(page, 0))
|
|
})
|
|
|
|
export const adjustReleaseHistoryPageAfterDeleteAtom = atom(
|
|
null,
|
|
(get, set, remainingRowsOnPage: number) => {
|
|
const currentPage = get(releaseHistoryCurrentPageAtom)
|
|
if (remainingRowsOnPage === 1 && currentPage > 0)
|
|
set(releaseHistoryCurrentPageAtom, currentPage - 1)
|
|
},
|
|
)
|
|
|
|
export const releasesLocalAtoms = [releaseHistoryCurrentPageAtom] as const
|