fix: complete exploration data flow
This commit is contained in:
@@ -7,6 +7,8 @@ import { createAISession, listAIExperts, listAISessions, type CreateAISessionInp
|
||||
import {
|
||||
createDatasetSource,
|
||||
deleteDatasetSource,
|
||||
depositDatasetItem,
|
||||
listDatasetCrons,
|
||||
listDatasetItems,
|
||||
listDatasetSources,
|
||||
queueDatasetSync,
|
||||
@@ -75,9 +77,9 @@ function App() {
|
||||
return listDatasetSources(session, signal)
|
||||
}, [session])
|
||||
|
||||
const handleListDatasetItems = useCallback((signal?: AbortSignal) => {
|
||||
const handleListDatasetItems = useCallback((sourceId?: string, offset = 0, limit = 50, signal?: AbortSignal) => {
|
||||
if (!session) return Promise.reject(new Error('未登录'))
|
||||
return listDatasetItems(session, undefined, signal)
|
||||
return listDatasetItems(session, sourceId, offset, limit, signal)
|
||||
}, [session])
|
||||
|
||||
const handleCreateDatasetSource = useCallback((input: DatasetSourceInput) => {
|
||||
@@ -105,6 +107,27 @@ function App() {
|
||||
return queueDatasetSync(session)
|
||||
}, [session])
|
||||
|
||||
const handleListDatasetCrons = useCallback((signal?: AbortSignal) => {
|
||||
if (!session) return Promise.reject(new Error('未登录'))
|
||||
return listDatasetCrons(session, signal)
|
||||
}, [session])
|
||||
|
||||
const handleDepositDatasetItem = useCallback(async (itemId: string, projectId: string) => {
|
||||
if (!session) throw new Error('未登录')
|
||||
const result = await depositDatasetItem(session, itemId, projectId)
|
||||
const workspaceIndex = workspaces.findIndex((workspace) => workspace.project.id === projectId)
|
||||
if (workspaceIndex >= 0) {
|
||||
try {
|
||||
const payload = await fetchProjectWorkspace(session, projectId)
|
||||
const refreshed = mapWorkspace(payload, workspaceIndex)
|
||||
setWorkspaces((current) => current.map((workspace) => workspace.project.id === projectId ? refreshed : workspace))
|
||||
} catch {
|
||||
return { ...result, refreshFailed: true }
|
||||
}
|
||||
}
|
||||
return result
|
||||
}, [session, workspaces])
|
||||
|
||||
const dark = theme === 'dark'
|
||||
const activeWorkspace = workspaces.find((workspace) => workspace.project.id === activeProjectID) ?? workspaces[0]
|
||||
const activeTagOptions = activeWorkspace?.tags.filter((tag) => tag !== 'all' && tag !== '全部') ?? []
|
||||
@@ -418,6 +441,8 @@ function App() {
|
||||
onDeleteDatasetSource={handleDeleteDatasetSource}
|
||||
onUpdateDatasetItem={handleUpdateDatasetItem}
|
||||
onQueueDatasetSync={handleQueueDatasetSync}
|
||||
onListDatasetCrons={handleListDatasetCrons}
|
||||
onDepositDatasetItem={handleDepositDatasetItem}
|
||||
/>
|
||||
) : (
|
||||
<Spin loading />
|
||||
|
||||
Reference in New Issue
Block a user