mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
refactor: reomve unused hooks
This commit is contained in:
parent
06c42d5669
commit
9a1bfe4169
@ -54,14 +54,9 @@ export const CURRENT_USER = "CURRENT_USER";
|
|||||||
export const USER_WORKSPACE_INVITATIONS = "USER_WORKSPACE_INVITATIONS";
|
export const USER_WORKSPACE_INVITATIONS = "USER_WORKSPACE_INVITATIONS";
|
||||||
export const USER_WORKSPACES = "USER_WORKSPACES";
|
export const USER_WORKSPACES = "USER_WORKSPACES";
|
||||||
|
|
||||||
export const WORKSPACE_DETAILS = (workspaceSlug: string) => `WORKSPACE_DETAILS_${workspaceSlug.toUpperCase()}`;
|
|
||||||
|
|
||||||
export const WORKSPACE_MEMBERS = (workspaceSlug: string) => `WORKSPACE_MEMBERS_${workspaceSlug.toUpperCase()}`;
|
export const WORKSPACE_MEMBERS = (workspaceSlug: string) => `WORKSPACE_MEMBERS_${workspaceSlug.toUpperCase()}`;
|
||||||
export const WORKSPACE_INVITATIONS = (workspaceSlug: string) => `WORKSPACE_INVITATIONS_${workspaceSlug.toString()}`;
|
|
||||||
export const WORKSPACE_INVITATION = (invitationId: string) => `WORKSPACE_INVITATION_${invitationId}`;
|
export const WORKSPACE_INVITATION = (invitationId: string) => `WORKSPACE_INVITATION_${invitationId}`;
|
||||||
|
|
||||||
export const PROJECT_DETAILS = (projectId: string) => `PROJECT_DETAILS_${projectId.toUpperCase()}`;
|
|
||||||
|
|
||||||
export const PROJECT_MEMBERS = (projectId: string) => `PROJECT_MEMBERS_${projectId.toUpperCase()}`;
|
export const PROJECT_MEMBERS = (projectId: string) => `PROJECT_MEMBERS_${projectId.toUpperCase()}`;
|
||||||
|
|
||||||
export const PROJECT_ISSUES_LIST = (workspaceSlug: string, projectId: string) =>
|
export const PROJECT_ISSUES_LIST = (workspaceSlug: string, projectId: string) =>
|
||||||
|
@ -1,95 +0,0 @@
|
|||||||
import useSWR from "swr";
|
|
||||||
// fetch keys
|
|
||||||
import { COMMENT_REACTION_LIST } from "@/constants/fetch-keys";
|
|
||||||
// services
|
|
||||||
import { groupReactions } from "@/helpers/emoji.helper";
|
|
||||||
import { IssueReactionService } from "@/services/issue";
|
|
||||||
// helpers
|
|
||||||
import { useUser } from "./store";
|
|
||||||
// hooks
|
|
||||||
|
|
||||||
// services
|
|
||||||
const issueReactionService = new IssueReactionService();
|
|
||||||
|
|
||||||
const useCommentReaction = (
|
|
||||||
workspaceSlug?: string | string[] | null,
|
|
||||||
projectId?: string | string[] | null,
|
|
||||||
commendId?: string | string[] | null
|
|
||||||
) => {
|
|
||||||
const {
|
|
||||||
data: commentReactions,
|
|
||||||
mutate: mutateCommentReactions,
|
|
||||||
error,
|
|
||||||
} = useSWR(
|
|
||||||
workspaceSlug && projectId && commendId
|
|
||||||
? COMMENT_REACTION_LIST(workspaceSlug.toString(), projectId.toString(), commendId.toString())
|
|
||||||
: null,
|
|
||||||
workspaceSlug && projectId && commendId
|
|
||||||
? () =>
|
|
||||||
issueReactionService.listIssueCommentReactions(
|
|
||||||
workspaceSlug.toString(),
|
|
||||||
projectId.toString(),
|
|
||||||
commendId.toString()
|
|
||||||
)
|
|
||||||
: null
|
|
||||||
);
|
|
||||||
|
|
||||||
const user = useUser();
|
|
||||||
|
|
||||||
const groupedReactions = groupReactions(commentReactions || [], "reaction");
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @description Use this function to create user's reaction to an issue. This function will mutate the reactions state.
|
|
||||||
* @param {string} reaction
|
|
||||||
* @example handleReactionDelete("123") // 123 -> is emoji hexa-code
|
|
||||||
*/
|
|
||||||
|
|
||||||
const handleReactionCreate = async (reaction: string) => {
|
|
||||||
if (!workspaceSlug || !projectId || !commendId) return;
|
|
||||||
|
|
||||||
const data = await issueReactionService.createIssueCommentReaction(
|
|
||||||
workspaceSlug.toString(),
|
|
||||||
projectId.toString(),
|
|
||||||
commendId.toString(),
|
|
||||||
{ reaction }
|
|
||||||
);
|
|
||||||
|
|
||||||
mutateCommentReactions((prev: any) => [...(prev || []), data]);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @description Use this function to delete user's reaction from an issue. This function will mutate the reactions state.
|
|
||||||
* @param {string} reaction
|
|
||||||
* @example handleReactionDelete("123") // 123 -> is emoji hexa-code
|
|
||||||
*/
|
|
||||||
|
|
||||||
const handleReactionDelete = async (reaction: string) => {
|
|
||||||
if (!workspaceSlug || !projectId || !commendId) return;
|
|
||||||
|
|
||||||
mutateCommentReactions(
|
|
||||||
(prevData: any) =>
|
|
||||||
prevData?.filter((r: any) => r.actor !== user?.currentUser?.id || r.reaction !== reaction) || [],
|
|
||||||
false
|
|
||||||
);
|
|
||||||
|
|
||||||
await issueReactionService.deleteIssueCommentReaction(
|
|
||||||
workspaceSlug.toString(),
|
|
||||||
projectId.toString(),
|
|
||||||
commendId.toString(),
|
|
||||||
reaction
|
|
||||||
);
|
|
||||||
|
|
||||||
mutateCommentReactions();
|
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
|
||||||
isLoading: !commentReactions && !error,
|
|
||||||
commentReactions,
|
|
||||||
groupedReactions,
|
|
||||||
handleReactionCreate,
|
|
||||||
handleReactionDelete,
|
|
||||||
mutateCommentReactions,
|
|
||||||
} as const;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default useCommentReaction;
|
|
@ -1,31 +0,0 @@
|
|||||||
import { useEffect, useRef } from "react";
|
|
||||||
import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd";
|
|
||||||
import { createPortal } from "react-dom";
|
|
||||||
|
|
||||||
const useDraggableInPortal = () => {
|
|
||||||
const self = useRef<Element>();
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const div = document.createElement("div");
|
|
||||||
div.style.position = "absolute";
|
|
||||||
div.style.pointerEvents = "none";
|
|
||||||
div.style.top = "0";
|
|
||||||
div.style.width = "100%";
|
|
||||||
div.style.height = "100%";
|
|
||||||
self.current = div;
|
|
||||||
document.body.appendChild(div);
|
|
||||||
return () => {
|
|
||||||
document.body.removeChild(div);
|
|
||||||
};
|
|
||||||
}, [self.current]);
|
|
||||||
|
|
||||||
return (render: any) => (provided: DraggableProvided, snapshot: DraggableStateSnapshot) => {
|
|
||||||
const element = render(provided, snapshot);
|
|
||||||
if (self.current && snapshot?.isDragging) {
|
|
||||||
return createPortal(element, self.current);
|
|
||||||
}
|
|
||||||
return element;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export default useDraggableInPortal;
|
|
@ -1,53 +0,0 @@
|
|||||||
import { useEffect } from "react";
|
|
||||||
import { useRouter } from "next/router";
|
|
||||||
import useSWR from "swr";
|
|
||||||
// services
|
|
||||||
import { CURRENT_USER } from "@/constants/fetch-keys";
|
|
||||||
import { UserService } from "@/services/user.service";
|
|
||||||
// constants
|
|
||||||
// types
|
|
||||||
import type { IUser } from "@plane/types";
|
|
||||||
|
|
||||||
// services
|
|
||||||
const userService = new UserService();
|
|
||||||
|
|
||||||
export default function useUser({ redirectTo = "", redirectIfFound = false, options = {} } = {}) {
|
|
||||||
const router = useRouter();
|
|
||||||
// API to fetch user information
|
|
||||||
const { data, isLoading, error, mutate } = useSWR<IUser>(CURRENT_USER, () => userService.currentUser(), options);
|
|
||||||
|
|
||||||
const user = error ? undefined : data;
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
// if no redirect needed, just return (example: already on /dashboard)
|
|
||||||
// if user data not yet there (fetch in progress, logged in or not) then don't do anything yet
|
|
||||||
if (!redirectTo || !user) return;
|
|
||||||
|
|
||||||
if (
|
|
||||||
// If redirectTo is set, redirect if the user was not found.
|
|
||||||
(redirectTo && !redirectIfFound) ||
|
|
||||||
// If redirectIfFound is also set, redirect if the user was found
|
|
||||||
(redirectIfFound && user)
|
|
||||||
) {
|
|
||||||
router.push(redirectTo);
|
|
||||||
return;
|
|
||||||
// const nextLocation = router.asPath.split("?next_path=")[1];
|
|
||||||
// if (nextLocation) {
|
|
||||||
// router.push(nextLocation as string);
|
|
||||||
// return;
|
|
||||||
// } else {
|
|
||||||
// router.push("/");
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}, [user, redirectIfFound, redirectTo, router]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
user,
|
|
||||||
isUserLoading: isLoading,
|
|
||||||
mutateUser: mutate,
|
|
||||||
userError: error,
|
|
||||||
// assignedIssuesLength: user?.assigned_issues ?? 0,
|
|
||||||
// workspaceInvitesLength: user?.workspace_invites ?? 0,
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user