forked from github/plane
fix: my issues mutation (#1753)
* fix: my issues mutation * fix: activity message and icon return value
This commit is contained in:
parent
d22e4b8212
commit
2cd431b4a4
@ -481,7 +481,7 @@ const activityDetails: {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const ActivityIcon = ({ activity }: { activity: IIssueActivity }) => (
|
export const ActivityIcon = ({ activity }: { activity: IIssueActivity }) => (
|
||||||
<>{activityDetails[activity.field as keyof typeof activityDetails].icon}</>
|
<>{activityDetails[activity.field as keyof typeof activityDetails]?.icon}</>
|
||||||
);
|
);
|
||||||
|
|
||||||
export const ActivityMessage = ({
|
export const ActivityMessage = ({
|
||||||
@ -492,6 +492,6 @@ export const ActivityMessage = ({
|
|||||||
showIssue?: boolean;
|
showIssue?: boolean;
|
||||||
}) => (
|
}) => (
|
||||||
<>
|
<>
|
||||||
{activityDetails[activity.field as keyof typeof activityDetails].message(activity, showIssue)}
|
{activityDetails[activity.field as keyof typeof activityDetails]?.message(activity, showIssue)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -18,6 +18,7 @@ import useToast from "hooks/use-toast";
|
|||||||
import useInboxView from "hooks/use-inbox-view";
|
import useInboxView from "hooks/use-inbox-view";
|
||||||
import useSpreadsheetIssuesView from "hooks/use-spreadsheet-issues-view";
|
import useSpreadsheetIssuesView from "hooks/use-spreadsheet-issues-view";
|
||||||
import useProjects from "hooks/use-projects";
|
import useProjects from "hooks/use-projects";
|
||||||
|
import useMyIssues from "hooks/my-issues/use-my-issues";
|
||||||
// components
|
// components
|
||||||
import { IssueForm } from "components/issues";
|
import { IssueForm } from "components/issues";
|
||||||
// types
|
// types
|
||||||
@ -85,6 +86,8 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
|
|||||||
const { user } = useUser();
|
const { user } = useUser();
|
||||||
const { projects } = useProjects();
|
const { projects } = useProjects();
|
||||||
|
|
||||||
|
const { groupedIssues, mutateMyIssues } = useMyIssues(workspaceSlug?.toString());
|
||||||
|
|
||||||
const { setToastAlert } = useToast();
|
const { setToastAlert } = useToast();
|
||||||
|
|
||||||
if (cycleId) prePopulateData = { ...prePopulateData, cycle: cycleId as string };
|
if (cycleId) prePopulateData = { ...prePopulateData, cycle: cycleId as string };
|
||||||
@ -243,6 +246,7 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
|
|||||||
if (issueView === "calendar") mutate(calendarFetchKey);
|
if (issueView === "calendar") mutate(calendarFetchKey);
|
||||||
if (issueView === "gantt_chart") mutate(ganttFetchKey);
|
if (issueView === "gantt_chart") mutate(ganttFetchKey);
|
||||||
if (issueView === "spreadsheet") mutate(spreadsheetFetchKey);
|
if (issueView === "spreadsheet") mutate(spreadsheetFetchKey);
|
||||||
|
if (groupedIssues) mutateMyIssues();
|
||||||
|
|
||||||
setToastAlert({
|
setToastAlert({
|
||||||
type: "success",
|
type: "success",
|
||||||
|
@ -8,6 +8,7 @@ import useSWR from "swr";
|
|||||||
import { DropResult } from "react-beautiful-dnd";
|
import { DropResult } from "react-beautiful-dnd";
|
||||||
// services
|
// services
|
||||||
import issuesService from "services/issues.service";
|
import issuesService from "services/issues.service";
|
||||||
|
import userService from "services/user.service";
|
||||||
// hooks
|
// hooks
|
||||||
import useProfileIssues from "hooks/use-profile-issues";
|
import useProfileIssues from "hooks/use-profile-issues";
|
||||||
import useUser from "hooks/use-user";
|
import useUser from "hooks/use-user";
|
||||||
@ -19,7 +20,7 @@ import { orderArrayBy } from "helpers/array.helper";
|
|||||||
// types
|
// types
|
||||||
import { IIssue, IIssueFilterOptions } from "types";
|
import { IIssue, IIssueFilterOptions } from "types";
|
||||||
// fetch-keys
|
// fetch-keys
|
||||||
import { WORKSPACE_LABELS } from "constants/fetch-keys";
|
import { USER_PROFILE_PROJECT_SEGREGATION, WORKSPACE_LABELS } from "constants/fetch-keys";
|
||||||
|
|
||||||
export const ProfileIssuesView = () => {
|
export const ProfileIssuesView = () => {
|
||||||
// create issue modal
|
// create issue modal
|
||||||
@ -60,6 +61,16 @@ export const ProfileIssuesView = () => {
|
|||||||
params,
|
params,
|
||||||
} = useProfileIssues(workspaceSlug?.toString(), userId?.toString());
|
} = useProfileIssues(workspaceSlug?.toString(), userId?.toString());
|
||||||
|
|
||||||
|
const { data: profileData } = useSWR(
|
||||||
|
workspaceSlug && userId
|
||||||
|
? USER_PROFILE_PROJECT_SEGREGATION(workspaceSlug.toString(), userId.toString())
|
||||||
|
: null,
|
||||||
|
workspaceSlug && userId
|
||||||
|
? () =>
|
||||||
|
userService.getUserProfileProjectsSegregation(workspaceSlug.toString(), userId.toString())
|
||||||
|
: null
|
||||||
|
);
|
||||||
|
|
||||||
const { data: labels } = useSWR(
|
const { data: labels } = useSWR(
|
||||||
workspaceSlug && (filters?.labels ?? []).length > 0
|
workspaceSlug && (filters?.labels ?? []).length > 0
|
||||||
? WORKSPACE_LABELS(workspaceSlug.toString())
|
? WORKSPACE_LABELS(workspaceSlug.toString())
|
||||||
@ -268,10 +279,10 @@ export const ProfileIssuesView = () => {
|
|||||||
dragDisabled={groupByProperty !== "priority"}
|
dragDisabled={groupByProperty !== "priority"}
|
||||||
emptyState={{
|
emptyState={{
|
||||||
title: router.pathname.includes("assigned")
|
title: router.pathname.includes("assigned")
|
||||||
? `Issues assigned to ${user?.first_name} ${user?.last_name} will appear here`
|
? `Issues assigned to ${profileData?.user_data.first_name} ${profileData?.user_data.last_name} will appear here`
|
||||||
: router.pathname.includes("created")
|
: router.pathname.includes("created")
|
||||||
? `Issues created by ${user?.first_name} ${user?.last_name} will appear here`
|
? `Issues created by ${profileData?.user_data.first_name} ${profileData?.user_data.last_name} will appear here`
|
||||||
: `Issues subscribed by ${user?.first_name} ${user?.last_name} will appear here`,
|
: `Issues subscribed by ${profileData?.user_data.first_name} ${profileData?.user_data.last_name} will appear here`,
|
||||||
}}
|
}}
|
||||||
handleOnDragEnd={handleOnDragEnd}
|
handleOnDragEnd={handleOnDragEnd}
|
||||||
handleIssueAction={handleIssueAction}
|
handleIssueAction={handleIssueAction}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
|
|
||||||
|
import { useRouter } from "next/router";
|
||||||
|
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
|
|
||||||
// services
|
// services
|
||||||
@ -12,6 +14,8 @@ import { IIssue } from "types";
|
|||||||
import { USER_ISSUES } from "constants/fetch-keys";
|
import { USER_ISSUES } from "constants/fetch-keys";
|
||||||
|
|
||||||
const useMyIssues = (workspaceSlug: string | undefined) => {
|
const useMyIssues = (workspaceSlug: string | undefined) => {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
const { filters, groupBy, orderBy } = useMyIssuesFilters(workspaceSlug);
|
const { filters, groupBy, orderBy } = useMyIssuesFilters(workspaceSlug);
|
||||||
|
|
||||||
const params: any = {
|
const params: any = {
|
||||||
@ -27,8 +31,12 @@ const useMyIssues = (workspaceSlug: string | undefined) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const { data: myIssues, mutate: mutateMyIssues } = useSWR(
|
const { data: myIssues, mutate: mutateMyIssues } = useSWR(
|
||||||
workspaceSlug ? USER_ISSUES(workspaceSlug.toString(), params) : null,
|
workspaceSlug && router.pathname.includes("my-issues")
|
||||||
workspaceSlug ? () => userService.userIssues(workspaceSlug.toString(), params) : null
|
? USER_ISSUES(workspaceSlug.toString(), params)
|
||||||
|
: null,
|
||||||
|
workspaceSlug && router.pathname.includes("my-issues")
|
||||||
|
? () => userService.userIssues(workspaceSlug.toString(), params)
|
||||||
|
: null
|
||||||
);
|
);
|
||||||
|
|
||||||
const groupedIssues:
|
const groupedIssues:
|
||||||
|
Loading…
Reference in New Issue
Block a user