[WEB-1970] fix: onboarding invitation page fluctuation on refresh. (#5627)
This commit is contained in:
parent
450bb42c46
commit
361ef9236e
3 changed files with 4 additions and 6 deletions
|
|
@ -61,6 +61,7 @@ export const CreateOrJoinWorkspaces: React.FC<Props> = observer((props) => {
|
||||||
<div className="flex flex-col w-full items-center justify-center p-8 mt-6">
|
<div className="flex flex-col w-full items-center justify-center p-8 mt-6">
|
||||||
{currentView === ECreateOrJoinWorkspaceViews.WORKSPACE_JOIN ? (
|
{currentView === ECreateOrJoinWorkspaceViews.WORKSPACE_JOIN ? (
|
||||||
<Invitations
|
<Invitations
|
||||||
|
invitations={invitations}
|
||||||
handleNextStep={handleNextStep}
|
handleNextStep={handleNextStep}
|
||||||
handleCurrentViewChange={() => setCurrentView(ECreateOrJoinWorkspaceViews.WORKSPACE_CREATE)}
|
handleCurrentViewChange={() => setCurrentView(ECreateOrJoinWorkspaceViews.WORKSPACE_CREATE)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import useSWR from "swr";;
|
|
||||||
// types
|
// types
|
||||||
import { IWorkspaceMemberInvitation } from "@plane/types";
|
import { IWorkspaceMemberInvitation } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
import { Button, Checkbox, Spinner } from "@plane/ui";
|
import { Button, Checkbox, Spinner } from "@plane/ui";
|
||||||
// constants
|
// constants
|
||||||
import { MEMBER_ACCEPTED } from "@/constants/event-tracker";
|
import { MEMBER_ACCEPTED } from "@/constants/event-tracker";
|
||||||
import { USER_WORKSPACE_INVITATIONS } from "@/constants/fetch-keys";
|
|
||||||
import { ROLE } from "@/constants/workspace";
|
import { ROLE } from "@/constants/workspace";
|
||||||
// helpers
|
// helpers
|
||||||
import { truncateText } from "@/helpers/string.helper";
|
import { truncateText } from "@/helpers/string.helper";
|
||||||
|
|
@ -19,13 +17,14 @@ import { useEventTracker, useUserSettings, useWorkspace } from "@/hooks/store";
|
||||||
import { WorkspaceService } from "@/plane-web/services";
|
import { WorkspaceService } from "@/plane-web/services";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
invitations: IWorkspaceMemberInvitation[];
|
||||||
handleNextStep: () => Promise<void>;
|
handleNextStep: () => Promise<void>;
|
||||||
handleCurrentViewChange: () => void;
|
handleCurrentViewChange: () => void;
|
||||||
};
|
};
|
||||||
const workspaceService = new WorkspaceService();
|
const workspaceService = new WorkspaceService();
|
||||||
|
|
||||||
export const Invitations: React.FC<Props> = (props) => {
|
export const Invitations: React.FC<Props> = (props) => {
|
||||||
const { handleNextStep, handleCurrentViewChange } = props;
|
const { invitations, handleNextStep, handleCurrentViewChange } = props;
|
||||||
// states
|
// states
|
||||||
const [isJoiningWorkspaces, setIsJoiningWorkspaces] = useState(false);
|
const [isJoiningWorkspaces, setIsJoiningWorkspaces] = useState(false);
|
||||||
const [invitationsRespond, setInvitationsRespond] = useState<string[]>([]);
|
const [invitationsRespond, setInvitationsRespond] = useState<string[]>([]);
|
||||||
|
|
@ -34,8 +33,6 @@ export const Invitations: React.FC<Props> = (props) => {
|
||||||
const { fetchWorkspaces } = useWorkspace();
|
const { fetchWorkspaces } = useWorkspace();
|
||||||
const { fetchCurrentUserSettings } = useUserSettings();
|
const { fetchCurrentUserSettings } = useUserSettings();
|
||||||
|
|
||||||
const { data: invitations } = useSWR(USER_WORKSPACE_INVITATIONS, () => workspaceService.userWorkspaceInvitations());
|
|
||||||
|
|
||||||
const handleInvitation = (workspace_invitation: IWorkspaceMemberInvitation, action: "accepted" | "withdraw") => {
|
const handleInvitation = (workspace_invitation: IWorkspaceMemberInvitation, action: "accepted" | "withdraw") => {
|
||||||
if (action === "accepted") {
|
if (action === "accepted") {
|
||||||
setInvitationsRespond((prevData) => [...prevData, workspace_invitation.id]);
|
setInvitationsRespond((prevData) => [...prevData, workspace_invitation.id]);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue