feat: import analysis step (#2657)
Shows course analysis information in review import details step in course import stepper page. Also handles alerts based on the import status, like, reimport or unsupported number of blocks.
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
||||
import { getWaffleFlags, waffleFlagDefaults } from './api';
|
||||
import {
|
||||
skipToken, useMutation, useQuery, useQueryClient,
|
||||
} from '@tanstack/react-query';
|
||||
import { libraryAuthoringQueryKeys } from '@src/library-authoring/data/apiHooks';
|
||||
import {
|
||||
getWaffleFlags,
|
||||
waffleFlagDefaults,
|
||||
bulkModulestoreMigrate,
|
||||
getModulestoreMigrationStatus,
|
||||
BulkMigrateRequestData,
|
||||
} from './api';
|
||||
|
||||
export const migrationQueryKeys = {
|
||||
all: ['contentLibrary'],
|
||||
/**
|
||||
* Base key for data specific to a migration task
|
||||
*/
|
||||
migrationTask: (migrationId?: string | null) => [...migrationQueryKeys.all, migrationId],
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the waffle flags (which enable/disable specific features). They may
|
||||
@@ -30,3 +47,28 @@ export const useWaffleFlags = (courseId?: string) => {
|
||||
isError,
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Use this mutation to migrate multiple sources to a library
|
||||
*/
|
||||
export const useBulkModulestoreMigrate = () => {
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async (requestData: BulkMigrateRequestData) => bulkModulestoreMigrate(requestData),
|
||||
onSettled: (_data, _err, variables) => {
|
||||
queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.courseImports(variables.target) });
|
||||
queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.allMigrationInfo() });
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the migration status
|
||||
*/
|
||||
export const useModulestoreMigrationStatus = (migrationId: string | null) => (
|
||||
useQuery({
|
||||
queryKey: migrationQueryKeys.migrationTask(migrationId),
|
||||
queryFn: migrationId ? () => getModulestoreMigrationStatus(migrationId!) : skipToken,
|
||||
refetchInterval: 1000, // Refresh every second
|
||||
})
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user