feat(ui): rough out recent workflows

This commit is contained in:
psychedelicious
2025-03-06 15:38:45 +10:00
parent f657c95e45
commit 50657650c2
8 changed files with 90 additions and 21 deletions

View File

@@ -2,7 +2,7 @@ import { useToast } from '@invoke-ai/ui-library';
import { useLoadWorkflow } from 'features/workflowLibrary/hooks/useLoadWorkflow';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { useLazyGetWorkflowQuery, workflowsApi } from 'services/api/endpoints/workflows';
import { useLazyGetWorkflowQuery, useUpdateOpenedAtMutation, workflowsApi } from 'services/api/endpoints/workflows';
type UseGetAndLoadLibraryWorkflowOptions = {
onSuccess?: () => void;
@@ -20,13 +20,15 @@ export const useGetAndLoadLibraryWorkflow: UseGetAndLoadLibraryWorkflow = (arg)
const toast = useToast();
const { t } = useTranslation();
const loadWorkflow = useLoadWorkflow();
const [_getAndLoadWorkflow, getAndLoadWorkflowResult] = useLazyGetWorkflowQuery();
const [getWorkflow, getAndLoadWorkflowResult] = useLazyGetWorkflowQuery();
const [updateOpenedAt] = useUpdateOpenedAtMutation();
const getAndLoadWorkflow = useCallback(
async (workflow_id: string) => {
try {
const { workflow } = await _getAndLoadWorkflow(workflow_id).unwrap();
const { workflow } = await getWorkflow(workflow_id).unwrap();
// This action expects a stringified workflow, instead of updating the routes and services we will just stringify it here
loadWorkflow({ workflow: JSON.stringify(workflow), graph: null });
await loadWorkflow({ workflow: JSON.stringify(workflow), graph: null });
updateOpenedAt({ workflow_id });
// No toast - the listener for this action does that after the workflow is loaded
arg?.onSuccess && arg.onSuccess();
} catch {
@@ -38,7 +40,7 @@ export const useGetAndLoadLibraryWorkflow: UseGetAndLoadLibraryWorkflow = (arg)
arg?.onError && arg.onError();
}
},
[_getAndLoadWorkflow, loadWorkflow, arg, toast, t]
[getWorkflow, loadWorkflow, updateOpenedAt, arg, toast, t]
);
return { getAndLoadWorkflow, getAndLoadWorkflowResult };