From a8f49deab8dd07cab19f24eb988cef3846bbca74 Mon Sep 17 00:00:00 2001 From: Jens Frost <93131870+jensfrost@users.noreply.github.com> Date: Tue, 23 May 2023 16:56:04 +0200 Subject: [PATCH] Added copying of tasks. Unclear why in payload there is two tasks with the same localId --- client/src/components/CardCopyStep/CardCopyStep.jsx | 7 ------- client/src/models/Task.js | 4 +++- client/src/sagas/core/services/cards.js | 13 ++++++++++++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/client/src/components/CardCopyStep/CardCopyStep.jsx b/client/src/components/CardCopyStep/CardCopyStep.jsx index 70ae2e9..9abd54d 100644 --- a/client/src/components/CardCopyStep/CardCopyStep.jsx +++ b/client/src/components/CardCopyStep/CardCopyStep.jsx @@ -54,13 +54,6 @@ const CardCopyStep = React.memo( ); const handleSubmit = useCallback(() => { - /* - if (selectedBoard.id !== defaultPath.boardId) { - onTransfer(selectedBoard.id, selectedList.id); - } else if (selectedList.id !== defaultPath.listId) { - console.log('test'); - } - */ onCopyCard(selectedList.id, path); onClose(); }, [onCopyCard, selectedList.id, path, onClose]); diff --git a/client/src/models/Task.js b/client/src/models/Task.js index 1a47271..218541f 100755 --- a/client/src/models/Task.js +++ b/client/src/models/Task.js @@ -57,7 +57,9 @@ export default class extends BaseModel { break; case ActionTypes.TASK_CREATE__SUCCESS: - Task.withId(payload.localId).delete(); + if (Task.withId(payload.localId)) { + Task.withId(payload.localId).delete(); + } Task.upsert(payload.task); break; diff --git a/client/src/sagas/core/services/cards.js b/client/src/sagas/core/services/cards.js index 399b226..fc3ea47 100644 --- a/client/src/sagas/core/services/cards.js +++ b/client/src/sagas/core/services/cards.js @@ -7,6 +7,7 @@ import actions from '../../../actions'; import api from '../../../api'; import { createLocalId } from '../../../utils/local-id'; import { addLabelToCard } from './labels'; +import { createTask } from './tasks'; export function* createCard(listId, data, autoOpen) { const { boardId } = yield select(selectors.selectListById, listId); @@ -41,10 +42,20 @@ export function* createCard(listId, data, autoOpen) { yield call(goToCard, card.id); } - // Add labels to card + // Add labels to card // const arr = []; Object.keys(nextData.labels).map((key) => arr.push(nextData.labels[key].id)); yield all(arr?.map((label) => call(addLabelToCard, label, card.id))); + + // Add tasks to card // + const tasks = []; + Object.keys(nextData.tasks)?.map((key) => tasks.push(nextData.tasks[key])); + tasks.forEach((task) => { + // eslint-disable-next-line no-param-reassign + task.id = `local:${task.id}`; + }); + + yield all(tasks?.map((task) => call(createTask, card.id, task))); } export function* handleCardCreate(card) {