diff --git a/services/madoc-ts/src/frontend/site/features/reviewer/AssignManifestToUser.tsx b/services/madoc-ts/src/frontend/site/features/reviewer/AssignManifestToUser.tsx index 56e3438eb..8619d6955 100644 --- a/services/madoc-ts/src/frontend/site/features/reviewer/AssignManifestToUser.tsx +++ b/services/madoc-ts/src/frontend/site/features/reviewer/AssignManifestToUser.tsx @@ -34,6 +34,16 @@ export const AssignManifestToUser: React.FC = () => { throwOnError: true, } ); + const [unassignUser] = useMutation( + async (taskId: string) => { + if (projectId) { + await api.updateTask(taskId, { status: -1, status_text: 'unassigned' }); + } + }, + { + throwOnError: true, + } + ); if (project.claimGranularity === 'canvas' /*|| project.contributionMode !== 'transcription'*/) { return null; @@ -47,7 +57,7 @@ export const AssignManifestToUser: React.FC = () => { } + render={() => } > {t('Assign')} diff --git a/services/madoc-ts/src/frontend/site/features/reviewer/AssignUserToManifestTask.tsx b/services/madoc-ts/src/frontend/site/features/reviewer/AssignUserToManifestTask.tsx index 2216610c8..ae8a456d4 100644 --- a/services/madoc-ts/src/frontend/site/features/reviewer/AssignUserToManifestTask.tsx +++ b/services/madoc-ts/src/frontend/site/features/reviewer/AssignUserToManifestTask.tsx @@ -12,9 +12,10 @@ import { TableContainer, TableRow, TableRowLabel } from '../../../shared/layout/ import { AutocompleteUser, UserAutocomplete } from '../../../shared/components/UserAutocomplete'; import { useManifestTask } from '../../hooks/use-manifest-task'; -export const AssignUserToManifestTask: React.FC<{ onAssign: (user: AutocompleteUser) => Promise }> = ({ - onAssign, -}) => { +export const AssignUserToManifestTask: React.FC<{ + onAssign: (user: AutocompleteUser) => Promise; + onUnassign: (taskId: string) => Promise; +}> = ({ onAssign, onUnassign }) => { const { t } = useTranslation(); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); @@ -44,6 +45,19 @@ export const AssignUserToManifestTask: React.FC<{ onAssign: (user: AutocompleteU } }; + const unassignManifest = (taskId: string) => { + setError(''); + setIsLoading(true); + onUnassign(taskId) + .then(async () => { + await refetch(); + setIsLoading(false); + }) + .catch((err: ApiError) => { + setError(err.message); + }); + }; + const alreadyAssigned = crowdsourcingManifestTasks .map(task => { const user = task.assignee ? parseUrn(task.assignee.id) : null; @@ -78,6 +92,11 @@ export const AssignUserToManifestTask: React.FC<{ onAssign: (user: AutocompleteU t('unassigned') )} {task.name} + + + ))}