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}
+
+
+
))}