@@ -38,7 +38,7 @@ const TaskDetailModal: FC<Props> = ({ open, task, columns, projectId, onClose, o
|
|||||||
const changeTaskPhase = useChangeTaskPhase();
|
const changeTaskPhase = useChangeTaskPhase();
|
||||||
const deleteTask = useDeleteTask();
|
const deleteTask = useDeleteTask();
|
||||||
|
|
||||||
const rawTaskDetail = getTaskDetail.data?.data?.task ?? getTaskDetail.data?.data;
|
const rawTaskDetail = getTaskDetail.data?.data;
|
||||||
const taskDetail: TaskDetailType | undefined = rawTaskDetail
|
const taskDetail: TaskDetailType | undefined = rawTaskDetail
|
||||||
? {
|
? {
|
||||||
...rawTaskDetail,
|
...rawTaskDetail,
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import TaskDetailActionBar from "./TaskDetailActionBar";
|
|||||||
import TaskDetailMetadataPreview from "./TaskDetailMetadataPreview";
|
import TaskDetailMetadataPreview from "./TaskDetailMetadataPreview";
|
||||||
import type { TaskDetailTab } from "./types";
|
import type { TaskDetailTab } from "./types";
|
||||||
import TaskDetailUsersPopover from "./users/TaskDetailUsersPopover";
|
import TaskDetailUsersPopover from "./users/TaskDetailUsersPopover";
|
||||||
|
import type { TaskUser } from "./users/types";
|
||||||
|
import type { UserItemType } from "../../../users/types/UserTypes";
|
||||||
import type { TaskDetailType } from "../../task/types/TaskTypes";
|
import type { TaskDetailType } from "../../task/types/TaskTypes";
|
||||||
import { useCreateCheckListItem, useCreateTaskAttachment, useCreateTaskRemark, useUpdateTask } from "../../task/hooks/useTaskData";
|
import { useCreateCheckListItem, useCreateTaskAttachment, useCreateTaskRemark, useUpdateTask } from "../../task/hooks/useTaskData";
|
||||||
import { useSingleUpload } from "../../../service/hooks/useServiceData";
|
import { useSingleUpload } from "../../../service/hooks/useServiceData";
|
||||||
@@ -64,18 +66,18 @@ const TaskDetailToolbar: FC<Props> = ({ activeTab, onTabChange, taskDetail, task
|
|||||||
}, [taskDetail]);
|
}, [taskDetail]);
|
||||||
|
|
||||||
const selectedLabels = labels.filter((label) => selectedLabelIds.has(label.id));
|
const selectedLabels = labels.filter((label) => selectedLabelIds.has(label.id));
|
||||||
const users = useMemo(() => {
|
const users = useMemo((): TaskUser[] => {
|
||||||
const apiUsers =
|
const apiUsers: TaskUser[] =
|
||||||
getUsers.data?.data?.users?.map((user) => ({
|
getUsers.data?.data?.users?.map((user: UserItemType) => ({
|
||||||
id: user.id,
|
id: user.id,
|
||||||
name: `${user.firstName} ${user.lastName}`.trim(),
|
name: `${user.firstName} ${user.lastName}`.trim(),
|
||||||
})) ?? [];
|
})) ?? [];
|
||||||
const taskUsers =
|
const taskUsers: TaskUser[] =
|
||||||
taskDetail?.users?.map((user) => ({
|
taskDetail?.users?.map((user) => ({
|
||||||
id: user.id,
|
id: user.id,
|
||||||
name: `${user.firstName} ${user.lastName}`.trim(),
|
name: `${user.firstName} ${user.lastName}`.trim(),
|
||||||
})) ?? [];
|
})) ?? [];
|
||||||
const userMap = new Map(apiUsers.map((user) => [user.id, user]));
|
const userMap = new Map<string, TaskUser>(apiUsers.map((user) => [user.id, user]));
|
||||||
|
|
||||||
taskUsers.forEach((user) => {
|
taskUsers.forEach((user) => {
|
||||||
if (!userMap.has(user.id)) {
|
if (!userMap.has(user.id)) {
|
||||||
@@ -160,10 +162,7 @@ const TaskDetailToolbar: FC<Props> = ({ activeTab, onTabChange, taskDetail, task
|
|||||||
{ title, color, taskId: effectiveTaskId },
|
{ title, color, taskId: effectiveTaskId },
|
||||||
{
|
{
|
||||||
onSuccess: (response) => {
|
onSuccess: (response) => {
|
||||||
const remark =
|
const remark = response.data?.remark;
|
||||||
response.data?.remark ??
|
|
||||||
(response as { remark?: TaskLabel }).remark ??
|
|
||||||
(response.data as TaskLabel | undefined);
|
|
||||||
if (remark?.id) {
|
if (remark?.id) {
|
||||||
const newLabel: TaskLabel = {
|
const newLabel: TaskLabel = {
|
||||||
id: remark.id,
|
id: remark.id,
|
||||||
|
|||||||
Reference in New Issue
Block a user