From c9e6ead3af7d5748d81e32b48b1128ebcc01d2b8 Mon Sep 17 00:00:00 2001 From: guru_sainath Date: Thu, 23 May 2024 14:04:53 +0530 Subject: [PATCH 1/7] chore: handled suppert email validation in the admin app (#4560) --- admin/helpers/authentication.helper.tsx | 9 +++++++++ admin/helpers/common.helper.ts | 2 ++ 2 files changed, 11 insertions(+) diff --git a/admin/helpers/authentication.helper.tsx b/admin/helpers/authentication.helper.tsx index 6bfccd45e..cc9058611 100644 --- a/admin/helpers/authentication.helper.tsx +++ b/admin/helpers/authentication.helper.tsx @@ -1,5 +1,7 @@ import { ReactNode } from "react"; import Link from "next/link"; +// helpers +import { SUPPORT_EMAIL } from "./common.helper"; export enum EPageTypes { PUBLIC = "PUBLIC", @@ -38,6 +40,7 @@ export enum EAuthenticationErrorCodes { ADMIN_AUTHENTICATION_FAILED = "5175", ADMIN_USER_ALREADY_EXIST = "5180", ADMIN_USER_DOES_NOT_EXIST = "5185", + ADMIN_USER_DEACTIVATED = "5190", } export type TAuthErrorInfo = { @@ -99,6 +102,10 @@ const errorCodeMessages: { ), }, + [EAuthenticationErrorCodes.ADMIN_USER_DEACTIVATED]: { + title: `User account deactivated`, + message: () => `User account deactivated. Please contact ${!!SUPPORT_EMAIL ? SUPPORT_EMAIL : "administrator"}.`, + }, }; export const authErrorHandler = ( @@ -106,6 +113,7 @@ export const authErrorHandler = ( email?: string | undefined ): TAuthErrorInfo | undefined => { const bannerAlertErrorCodes = [ + EAuthenticationErrorCodes.ADMIN_ALREADY_EXIST, EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME, EAuthenticationErrorCodes.INVALID_ADMIN_EMAIL, EAuthenticationErrorCodes.INVALID_ADMIN_PASSWORD, @@ -113,6 +121,7 @@ export const authErrorHandler = ( EAuthenticationErrorCodes.ADMIN_AUTHENTICATION_FAILED, EAuthenticationErrorCodes.ADMIN_USER_ALREADY_EXIST, EAuthenticationErrorCodes.ADMIN_USER_DOES_NOT_EXIST, + EAuthenticationErrorCodes.ADMIN_USER_DEACTIVATED, ]; if (bannerAlertErrorCodes.includes(errorCode)) diff --git a/admin/helpers/common.helper.ts b/admin/helpers/common.helper.ts index e7aae0698..e282e5792 100644 --- a/admin/helpers/common.helper.ts +++ b/admin/helpers/common.helper.ts @@ -10,6 +10,8 @@ export const SPACE_BASE_PATH = process.env.NEXT_PUBLIC_SPACE_BASE_PATH || ""; export const WEB_BASE_URL = process.env.NEXT_PUBLIC_WEB_BASE_URL || ""; +export const SUPPORT_EMAIL = process.env.NEXT_PUBLIC_SUPPORT_EMAIL || ""; + export const ASSET_PREFIX = ADMIN_BASE_PATH; export const cn = (...inputs: ClassValue[]) => twMerge(clsx(inputs)); From 780caf59a0d1b9e079fad5abab7142e9256521ab Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Thu, 23 May 2024 14:27:16 +0530 Subject: [PATCH 2/7] [WEB-1404] chore: space app infinite loader and scroll fix. (#4559) * [WEB-1404] chore: space app infinite loader and scroll fix. * chore: revert back `isLoading` initail state to `true` in user store. --- space/app/loading.tsx | 20 -------------------- space/app/page.tsx | 7 +++++-- space/components/views/auth.tsx | 2 +- space/helpers/authentication.helper.tsx | 4 +++- space/helpers/common.helper.ts | 2 ++ space/lib/instance-provider.tsx | 6 +++++- 6 files changed, 16 insertions(+), 25 deletions(-) delete mode 100644 space/app/loading.tsx diff --git a/space/app/loading.tsx b/space/app/loading.tsx deleted file mode 100644 index d35e42a76..000000000 --- a/space/app/loading.tsx +++ /dev/null @@ -1,20 +0,0 @@ -"use client"; -import Image from "next/image"; -import { useTheme } from "next-themes"; -// assets -import LogoSpinnerDark from "@/public/images/logo-spinner-dark.gif"; -import LogoSpinnerLight from "@/public/images/logo-spinner-light.gif"; - -export default function LogoSpinner() { - const { resolvedTheme } = useTheme(); - - const logoSrc = resolvedTheme === "dark" ? LogoSpinnerDark : LogoSpinnerLight; - - return ( -
-
- logo -
-
- ); -} diff --git a/space/app/page.tsx b/space/app/page.tsx index d03300a25..a6058fb8a 100644 --- a/space/app/page.tsx +++ b/space/app/page.tsx @@ -1,5 +1,6 @@ "use client"; +import { observer } from "mobx-react-lite"; // components import { UserLoggedIn } from "@/components/account"; import { LogoSpinner } from "@/components/common"; @@ -7,7 +8,7 @@ import { AuthView } from "@/components/views"; // hooks import { useUser } from "@/hooks/store"; -export default function HomePage() { +const HomePage = observer(() => { const { data: currentUser, isAuthenticated, isLoading } = useUser(); if (isLoading) return ; @@ -15,4 +16,6 @@ export default function HomePage() { if (currentUser && isAuthenticated) return ; return ; -} +}); + +export default HomePage; diff --git a/space/components/views/auth.tsx b/space/components/views/auth.tsx index 88023dbef..5992ca5a5 100644 --- a/space/components/views/auth.tsx +++ b/space/components/views/auth.tsx @@ -37,7 +37,7 @@ export const AuthView = observer(() => { -
+
diff --git a/space/helpers/authentication.helper.tsx b/space/helpers/authentication.helper.tsx index e2be3c617..0e5ab0186 100644 --- a/space/helpers/authentication.helper.tsx +++ b/space/helpers/authentication.helper.tsx @@ -1,5 +1,7 @@ import { ReactNode } from "react"; import Link from "next/link"; +// helpers +import { SUPPORT_EMAIL } from "./common.helper"; export enum EPageTypes { INIT = "INIT", @@ -152,7 +154,7 @@ const errorCodeMessages: { // sign in [EAuthenticationErrorCodes.USER_ACCOUNT_DEACTIVATED]: { title: `User account deactivated`, - message: () =>
Your account is deactivated. Contact support@plane.so.
, + message: () => `User account deactivated. Please contact ${!!SUPPORT_EMAIL ? SUPPORT_EMAIL : "administrator"}.`, }, [EAuthenticationErrorCodes.USER_DOES_NOT_EXIST]: { diff --git a/space/helpers/common.helper.ts b/space/helpers/common.helper.ts index 52c61e4e2..6db73a4a1 100644 --- a/space/helpers/common.helper.ts +++ b/space/helpers/common.helper.ts @@ -8,6 +8,8 @@ export const ADMIN_BASE_PATH = process.env.NEXT_PUBLIC_ADMIN_BASE_PATH || ""; export const SPACE_BASE_PATH = process.env.NEXT_PUBLIC_SPACE_BASE_PATH || ""; +export const SUPPORT_EMAIL = process.env.NEXT_PUBLIC_SUPPORT_EMAIL || ""; + export const WEB_BASE_URL = process.env.NEXT_PUBLIC_WEB_BASE_URL || ""; export const GOD_MODE_URL = encodeURI(`${ADMIN_BASE_URL}${ADMIN_BASE_PATH}`); diff --git a/space/lib/instance-provider.tsx b/space/lib/instance-provider.tsx index a4de61a16..db9b15db7 100644 --- a/space/lib/instance-provider.tsx +++ b/space/lib/instance-provider.tsx @@ -31,7 +31,11 @@ export const InstanceProvider = observer(({ children }: { children: ReactNode }) revalidateIfStale: false, errorRetryCount: 0, }); - useSWR("CURRENT_USER", () => fetchCurrentUser()); + useSWR("CURRENT_USER", () => fetchCurrentUser(), { + shouldRetryOnError: false, + revalidateOnFocus: false, + revalidateIfStale: false, + }); if (!instance && !error) return ( From 7089474c11c5300c05ef72ed2f697d7b358afb7c Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Thu, 23 May 2024 14:28:11 +0530 Subject: [PATCH 3/7] [WEB-1240] chore: toast messages updates (#4561) * [WEB-1240] fix: toast messages inconsistency in sub-issues. * [WEB-1241] chore: update draft issue creation toast message. * chore: minor logic improvement. --- web/components/issues/delete-issue-modal.tsx | 8 +++++++- web/components/issues/issue-modal/modal.tsx | 4 ++-- web/components/issues/sub-issues/root.tsx | 18 ++++++++---------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/web/components/issues/delete-issue-modal.tsx b/web/components/issues/delete-issue-modal.tsx index dc7b64075..49c1a8700 100644 --- a/web/components/issues/delete-issue-modal.tsx +++ b/web/components/issues/delete-issue-modal.tsx @@ -13,11 +13,12 @@ type Props = { handleClose: () => void; dataId?: string | null | undefined; data?: TIssue; + isSubIssue?: boolean; onSubmit?: () => Promise; }; export const DeleteIssueModal: React.FC = (props) => { - const { dataId, data, isOpen, handleClose, onSubmit } = props; + const { dataId, data, isOpen, handleClose, isSubIssue = false, onSubmit } = props; // states const [isDeleting, setIsDeleting] = useState(false); // store hooks @@ -44,6 +45,11 @@ export const DeleteIssueModal: React.FC = (props) => { if (onSubmit) await onSubmit() .then(() => { + setToast({ + type: TOAST_TYPE.SUCCESS, + title: "Success!", + message: `${isSubIssue ? "Sub-issue" : "Issue"} deleted successfully`, + }); onClose(); }) .catch(() => { diff --git a/web/components/issues/issue-modal/modal.tsx b/web/components/issues/issue-modal/modal.tsx index 04970028b..38b328df6 100644 --- a/web/components/issues/issue-modal/modal.tsx +++ b/web/components/issues/issue-modal/modal.tsx @@ -162,7 +162,7 @@ export const CreateUpdateIssueModal: React.FC = observer((prop setToast({ type: TOAST_TYPE.SUCCESS, title: "Success!", - message: "Issue created successfully.", + message: `${is_draft_issue ? "Draft issue" : "Issue"} created successfully.`, }); captureIssueEvent({ eventName: ISSUE_CREATED, @@ -178,7 +178,7 @@ export const CreateUpdateIssueModal: React.FC = observer((prop setToast({ type: TOAST_TYPE.ERROR, title: "Error!", - message: "Issue could not be created. Please try again.", + message: `${is_draft_issue ? "Draft issue" : "Issue"} could not be created. Please try again.`, }); captureIssueEvent({ eventName: ISSUE_CREATED, diff --git a/web/components/issues/sub-issues/root.tsx b/web/components/issues/sub-issues/root.tsx index a88434e3b..b697ff20a 100644 --- a/web/components/issues/sub-issues/root.tsx +++ b/web/components/issues/sub-issues/root.tsx @@ -1,20 +1,22 @@ import { FC, useCallback, useEffect, useMemo, useState } from "react"; import { observer } from "mobx-react"; import { useRouter } from "next/router"; +// icons import { Plus, ChevronRight, Loader, Pencil } from "lucide-react"; +// types import { IUser, TIssue } from "@plane/types"; -// hooks +// ui import { CircularProgressIndicator, CustomMenu, LayersIcon, TOAST_TYPE, setToast } from "@plane/ui"; +// components import { ExistingIssuesListModal } from "@/components/core"; import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +// helpers import { cn } from "@/helpers/common.helper"; import { copyTextToClipboard } from "@/helpers/string.helper"; +// hooks import { useEventTracker, useIssueDetail } from "@/hooks/store"; -// components +// local components import { IssueList } from "./issues-list"; -// ui -// helpers -// types export interface ISubIssuesRoot { workspaceSlug: string; @@ -248,11 +250,6 @@ export const SubIssuesRoot: FC = observer((props) => { try { setSubIssueHelpers(parentIssueId, "issue_loader", issueId); await deleteSubIssue(workspaceSlug, projectId, parentIssueId, issueId); - setToast({ - type: TOAST_TYPE.SUCCESS, - title: "Error!", - message: "Issue deleted successfully", - }); captureIssueEvent({ eventName: "Sub-issue deleted", payload: { id: issueId, state: "SUCCESS", element: "Issue detail page" }, @@ -535,6 +532,7 @@ export const SubIssuesRoot: FC = observer((props) => { issueCrudState?.delete?.issue?.id as string ) } + isSubIssue /> )} From 073d4537521bbe3fd5de8e12ad7074cc6ce86654 Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Date: Thu, 23 May 2024 14:45:40 +0530 Subject: [PATCH 4/7] chore: plane logo asset updated (#4562) --- admin/layouts/default-layout.tsx | 4 ++-- .../black-horizontal-with-blue-logo.png | Bin 0 -> 2852 bytes .../black-horizontal-with-blue-logo.svg | 17 ----------------- .../white-horizontal-with-blue-logo.png | Bin 0 -> 2412 bytes .../white-horizontal-with-blue-logo.svg | 17 ----------------- space/components/account/user-logged-in.tsx | 2 +- space/components/instance/not-ready-view.tsx | 4 ++-- space/components/views/auth.tsx | 4 ++-- space/lib/instance-provider.tsx | 4 ++-- .../black-horizontal-with-blue-logo.png | Bin 0 -> 2852 bytes .../black-horizontal-with-blue-logo.svg | 17 ----------------- .../white-horizontal-with-blue-logo.png | Bin 0 -> 2412 bytes .../white-horizontal-with-blue-logo.svg | 17 ----------------- web/components/instance/not-ready-view.tsx | 4 ++-- web/layouts/auth-layout/workspace-wrapper.tsx | 4 ++-- web/pages/accounts/forgot-password.tsx | 4 ++-- web/pages/accounts/reset-password.tsx | 4 ++-- web/pages/accounts/set-password.tsx | 4 ++-- web/pages/create-workspace.tsx | 4 ++-- web/pages/index.tsx | 4 ++-- web/pages/invitations/index.tsx | 4 ++-- web/pages/sign-up.tsx | 4 ++-- .../black-horizontal-with-blue-logo.png | Bin 0 -> 2852 bytes .../black-horizontal-with-blue-logo.svg | 17 ----------------- .../white-horizontal-with-blue-logo.png | Bin 0 -> 2412 bytes .../white-horizontal-with-blue-logo.svg | 17 ----------------- 26 files changed, 27 insertions(+), 129 deletions(-) create mode 100644 admin/public/plane-logos/black-horizontal-with-blue-logo.png delete mode 100644 admin/public/plane-logos/black-horizontal-with-blue-logo.svg create mode 100644 admin/public/plane-logos/white-horizontal-with-blue-logo.png delete mode 100644 admin/public/plane-logos/white-horizontal-with-blue-logo.svg create mode 100644 space/public/plane-logos/black-horizontal-with-blue-logo.png delete mode 100644 space/public/plane-logos/black-horizontal-with-blue-logo.svg create mode 100644 space/public/plane-logos/white-horizontal-with-blue-logo.png delete mode 100644 space/public/plane-logos/white-horizontal-with-blue-logo.svg create mode 100644 web/public/plane-logos/black-horizontal-with-blue-logo.png delete mode 100644 web/public/plane-logos/black-horizontal-with-blue-logo.svg create mode 100644 web/public/plane-logos/white-horizontal-with-blue-logo.png delete mode 100644 web/public/plane-logos/white-horizontal-with-blue-logo.svg diff --git a/admin/layouts/default-layout.tsx b/admin/layouts/default-layout.tsx index 4a3724248..1be40ea12 100644 --- a/admin/layouts/default-layout.tsx +++ b/admin/layouts/default-layout.tsx @@ -7,8 +7,8 @@ import { useTheme } from "next-themes"; // logo/ images import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; type TDefaultLayout = { children: ReactNode; diff --git a/admin/public/plane-logos/black-horizontal-with-blue-logo.png b/admin/public/plane-logos/black-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c14505a6f621fcfffe2bf3f3f5c8d7660f81ab96 GIT binary patch literal 2852 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 - - - - - - - - - - - - - - - - diff --git a/admin/public/plane-logos/white-horizontal-with-blue-logo.png b/admin/public/plane-logos/white-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97560fb9f92ee7bd29ed2df5a353ac6b39b2ec75 GIT binary patch literal 2412 zcmV-y36u7TP)%xyoan5-PxHAV3A#R1i`@mI{ChSSkQ2z^NeIH{PP#0VyEt)!=b( zHXg0L9_?=I`OeV^v9(?yq~D{FG#WvXzu(=RZjDCIv0-eD9xnXVs~m=5bY>fhjDY>w zZ04|G{CL0@7>1$377W8MT417K7)C2phbKlqkcOC}(a6IXJSG}O9p@os^B04dyfoo3 zYF@R(HIsqd^rii z@fn7(B<2WRFCU`0+x>;)1m?fnl`3L}LK3 z)gf6N?_n4%Fwqzehr)Gdi@%IEm?Lx`&`>3a!xf748uMf!ZOvzr~SlS#HPA9rNP3;}qh-!ut`$l=@D?kJZ&DiS6|=8yd~0F(BAX^) ziN^4#9pCaBObu?}U(ro0<|+5jWJm;y5|vwHkB&ppF*_~WXYsuZKT^{CJ2@2McHTye zO*Dpwxrey$P(Bilw~N|>iN^3qHdDewl1U^BHD;Q@IgLyMmVTF< z@^QzRpnegWrZqFEd6q}qp;;~K5&H*7G@X#2exEN*1iGPM9HV_*j=79=(0vk)-Pkm( z4NnFHH=4Rmc8iYivri&f=sTz}PTH&+;HB{6@Z($j?!2*hg(>VzW&XW{z} zmsu3Wzhg`|vPF(uwpgU0gs11n)~+mq%Sd~Yq-Pw&%4ni7EF|Y)jt+1G8wK`2$wNdm!h>{qA?Ko?Uf0)uh5NHBi9Tx zR0@acGb?zlXLC7^h1;1l#m#>wCw%Tu%VAAa#H|h|t>G}y7y#^VkUDm!V-EP)nQ;3! z#hwfvs+>We3(Za$n4;d=AiatGUYW*)J8a;;p;4#6tQs~(G!u1rEz)#pB$e~B7gQare z`ad<-B(qCu9ctG-}NG=_yoVPR-_;dg}V>R$c`^j!{rK2EsaW)*2Fe)&6_Ph%L+8-%>? zyUNpcT1&XQ@E!eN6Y5gJRsXa7Y-{!sO8l6O&R@K{b5P*fX!ZdktwlV4t=05gBRPtQ zRHrG{OGNN6`ou4SwyhPOk6^)YP(rh88;XY>o)f)!$(p!Yu}~NT!F(EPBy?&uD{sI& zhp|#jG>k4tmJH3Rc&vs^_64*-s!OsO53yc;DVvFg(FMt=N}{of#a-oh^#LzjcPUqc zE`!aU7+sJ=V-G8Um&y0S(uhQg-S;#tJ|Aln={1iRiQOj@n zSU5(9qAoA_ILs&<26D{eO9C&6w_otRwv61+gCl9t8!~40()GunG9fQbF?tkl)bf-! z3b;!RIzxQ5Cw-P0_gC~3dfRivu2>Kr5{xpkSB|1C%W#XdnXe23*~BXGC=O$a?v6Im zFjV1~n2Us?q-kTGhXms-ixm0{3kP-LCNoAE|GUge*~g7>P4>Ci@WfE3a#pBjwD6KM zJ{R^L1A!yElMv@f1I^YnKJL*(!$<;kYCgl2qOW;$r?f75JKY+CPkblg(5g@3XPveY zVb$Tuv#m$7REfcc=<5~ig`cvsj*j_jYdYsBrvGvn)%qNx*n88qKFj?=OV{ZLMslQ? zf=!E)P$GrX*D5cs*&ttr!;|BaxW|)Ilp1!v=ndGmZfB9B0#XfmQvdxU^+|XXAt32r es?*!9zvurqzPKh2y6xit0000 - - - - - - - - - - - - - - - - diff --git a/space/components/account/user-logged-in.tsx b/space/components/account/user-logged-in.tsx index a9930b5fd..33be330fa 100644 --- a/space/components/account/user-logged-in.tsx +++ b/space/components/account/user-logged-in.tsx @@ -6,7 +6,7 @@ import { UserAvatar } from "@/components/issues/navbar/user-avatar"; // hooks import { useUser } from "@/hooks/store"; // assets -import PlaneLogo from "@/public/plane-logos/black-horizontal-with-blue-logo.svg"; +import PlaneLogo from "@/public/plane-logos/black-horizontal-with-blue-logo.png"; import UserLoggedInImage from "@/public/user-logged-in.svg"; export const UserLoggedIn = () => { diff --git a/space/components/instance/not-ready-view.tsx b/space/components/instance/not-ready-view.tsx index f79778387..be46a9473 100644 --- a/space/components/instance/not-ready-view.tsx +++ b/space/components/instance/not-ready-view.tsx @@ -12,8 +12,8 @@ import { GOD_MODE_URL, SPACE_BASE_PATH } from "@/helpers/common.helper"; import PlaneTakeOffImage from "@/public/instance/plane-takeoff.png"; import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; export const InstanceNotReady: FC = () => { const { resolvedTheme } = useTheme(); diff --git a/space/components/views/auth.tsx b/space/components/views/auth.tsx index 5992ca5a5..538519696 100644 --- a/space/components/views/auth.tsx +++ b/space/components/views/auth.tsx @@ -11,8 +11,8 @@ import { SPACE_BASE_PATH } from "@/helpers/common.helper"; // images import PlaneBackgroundPatternDark from "@/public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "@/public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; export const AuthView = observer(() => { // hooks diff --git a/space/lib/instance-provider.tsx b/space/lib/instance-provider.tsx index db9b15db7..8447d8a5f 100644 --- a/space/lib/instance-provider.tsx +++ b/space/lib/instance-provider.tsx @@ -16,8 +16,8 @@ import { useInstance, useUser } from "@/hooks/store"; // assets import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; export const InstanceProvider = observer(({ children }: { children: ReactNode }) => { const { fetchInstanceInfo, instance, error } = useInstance(); diff --git a/space/public/plane-logos/black-horizontal-with-blue-logo.png b/space/public/plane-logos/black-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c14505a6f621fcfffe2bf3f3f5c8d7660f81ab96 GIT binary patch literal 2852 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 - - - - - - - - - - - - - - - - diff --git a/space/public/plane-logos/white-horizontal-with-blue-logo.png b/space/public/plane-logos/white-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97560fb9f92ee7bd29ed2df5a353ac6b39b2ec75 GIT binary patch literal 2412 zcmV-y36u7TP)%xyoan5-PxHAV3A#R1i`@mI{ChSSkQ2z^NeIH{PP#0VyEt)!=b( zHXg0L9_?=I`OeV^v9(?yq~D{FG#WvXzu(=RZjDCIv0-eD9xnXVs~m=5bY>fhjDY>w zZ04|G{CL0@7>1$377W8MT417K7)C2phbKlqkcOC}(a6IXJSG}O9p@os^B04dyfoo3 zYF@R(HIsqd^rii z@fn7(B<2WRFCU`0+x>;)1m?fnl`3L}LK3 z)gf6N?_n4%Fwqzehr)Gdi@%IEm?Lx`&`>3a!xf748uMf!ZOvzr~SlS#HPA9rNP3;}qh-!ut`$l=@D?kJZ&DiS6|=8yd~0F(BAX^) ziN^4#9pCaBObu?}U(ro0<|+5jWJm;y5|vwHkB&ppF*_~WXYsuZKT^{CJ2@2McHTye zO*Dpwxrey$P(Bilw~N|>iN^3qHdDewl1U^BHD;Q@IgLyMmVTF< z@^QzRpnegWrZqFEd6q}qp;;~K5&H*7G@X#2exEN*1iGPM9HV_*j=79=(0vk)-Pkm( z4NnFHH=4Rmc8iYivri&f=sTz}PTH&+;HB{6@Z($j?!2*hg(>VzW&XW{z} zmsu3Wzhg`|vPF(uwpgU0gs11n)~+mq%Sd~Yq-Pw&%4ni7EF|Y)jt+1G8wK`2$wNdm!h>{qA?Ko?Uf0)uh5NHBi9Tx zR0@acGb?zlXLC7^h1;1l#m#>wCw%Tu%VAAa#H|h|t>G}y7y#^VkUDm!V-EP)nQ;3! z#hwfvs+>We3(Za$n4;d=AiatGUYW*)J8a;;p;4#6tQs~(G!u1rEz)#pB$e~B7gQare z`ad<-B(qCu9ctG-}NG=_yoVPR-_;dg}V>R$c`^j!{rK2EsaW)*2Fe)&6_Ph%L+8-%>? zyUNpcT1&XQ@E!eN6Y5gJRsXa7Y-{!sO8l6O&R@K{b5P*fX!ZdktwlV4t=05gBRPtQ zRHrG{OGNN6`ou4SwyhPOk6^)YP(rh88;XY>o)f)!$(p!Yu}~NT!F(EPBy?&uD{sI& zhp|#jG>k4tmJH3Rc&vs^_64*-s!OsO53yc;DVvFg(FMt=N}{of#a-oh^#LzjcPUqc zE`!aU7+sJ=V-G8Um&y0S(uhQg-S;#tJ|Aln={1iRiQOj@n zSU5(9qAoA_ILs&<26D{eO9C&6w_otRwv61+gCl9t8!~40()GunG9fQbF?tkl)bf-! z3b;!RIzxQ5Cw-P0_gC~3dfRivu2>Kr5{xpkSB|1C%W#XdnXe23*~BXGC=O$a?v6Im zFjV1~n2Us?q-kTGhXms-ixm0{3kP-LCNoAE|GUge*~g7>P4>Ci@WfE3a#pBjwD6KM zJ{R^L1A!yElMv@f1I^YnKJL*(!$<;kYCgl2qOW;$r?f75JKY+CPkblg(5g@3XPveY zVb$Tuv#m$7REfcc=<5~ig`cvsj*j_jYdYsBrvGvn)%qNx*n88qKFj?=OV{ZLMslQ? zf=!E)P$GrX*D5cs*&ttr!;|BaxW|)Ilp1!v=ndGmZfB9B0#XfmQvdxU^+|XXAt32r es?*!9zvurqzPKh2y6xit0000 - - - - - - - - - - - - - - - - diff --git a/web/components/instance/not-ready-view.tsx b/web/components/instance/not-ready-view.tsx index 526030f56..68221283f 100644 --- a/web/components/instance/not-ready-view.tsx +++ b/web/components/instance/not-ready-view.tsx @@ -10,8 +10,8 @@ import PlaneTakeOffImage from "@/public/plane-takeoff.png"; // assets import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; export const InstanceNotReady: FC = () => { const { resolvedTheme } = useTheme(); diff --git a/web/layouts/auth-layout/workspace-wrapper.tsx b/web/layouts/auth-layout/workspace-wrapper.tsx index 972bb92cb..603fa9b6b 100644 --- a/web/layouts/auth-layout/workspace-wrapper.tsx +++ b/web/layouts/auth-layout/workspace-wrapper.tsx @@ -12,8 +12,8 @@ import { LogoSpinner } from "@/components/common"; import { useMember, useProject, useUser, useWorkspace } from "@/hooks/store"; import { usePlatformOS } from "@/hooks/use-platform-os"; // images -import PlaneBlackLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import PlaneWhiteLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import PlaneBlackLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import PlaneWhiteLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; import WorkSpaceNotAvailable from "public/workspace/workspace-not-available.png"; export interface IWorkspaceAuthWrapper { diff --git a/web/pages/accounts/forgot-password.tsx b/web/pages/accounts/forgot-password.tsx index b86b2518f..8810e47cd 100644 --- a/web/pages/accounts/forgot-password.tsx +++ b/web/pages/accounts/forgot-password.tsx @@ -30,8 +30,8 @@ import { AuthService } from "@/services/auth.service"; // images import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; type TForgotPasswordFormValues = { email: string; diff --git a/web/pages/accounts/reset-password.tsx b/web/pages/accounts/reset-password.tsx index 02772f914..92756cd43 100644 --- a/web/pages/accounts/reset-password.tsx +++ b/web/pages/accounts/reset-password.tsx @@ -31,8 +31,8 @@ import { AuthService } from "@/services/auth.service"; // images import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; type TResetPasswordFormValues = { email: string; diff --git a/web/pages/accounts/set-password.tsx b/web/pages/accounts/set-password.tsx index 93a9148c0..9328d2cc9 100644 --- a/web/pages/accounts/set-password.tsx +++ b/web/pages/accounts/set-password.tsx @@ -27,8 +27,8 @@ import { AuthService } from "@/services/auth.service"; // images import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; type TResetPasswordFormValues = { email: string; diff --git a/web/pages/create-workspace.tsx b/web/pages/create-workspace.tsx index d20b93a7d..e5992e008 100644 --- a/web/pages/create-workspace.tsx +++ b/web/pages/create-workspace.tsx @@ -16,8 +16,8 @@ import DefaultLayout from "@/layouts/default-layout"; import { NextPageWithLayout } from "@/lib/types"; // wrappers import { AuthenticationWrapper } from "@/lib/wrappers"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; // types const CreateWorkspacePage: NextPageWithLayout = observer(() => { diff --git a/web/pages/index.tsx b/web/pages/index.tsx index 9cc1f9d95..ee22cd77f 100644 --- a/web/pages/index.tsx +++ b/web/pages/index.tsx @@ -22,8 +22,8 @@ import { AuthenticationWrapper } from "@/lib/wrappers"; // assets import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; const HomePage: NextPageWithLayout = observer(() => { const { resolvedTheme } = useTheme(); diff --git a/web/pages/invitations/index.tsx b/web/pages/invitations/index.tsx index 1f0debaaf..aac6c833b 100644 --- a/web/pages/invitations/index.tsx +++ b/web/pages/invitations/index.tsx @@ -31,8 +31,8 @@ import { AuthenticationWrapper } from "@/lib/wrappers"; import { WorkspaceService } from "@/services/workspace.service"; // images import emptyInvitation from "public/empty-state/invitation.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; const workspaceService = new WorkspaceService(); diff --git a/web/pages/sign-up.tsx b/web/pages/sign-up.tsx index 470f927b4..2c511d730 100644 --- a/web/pages/sign-up.tsx +++ b/web/pages/sign-up.tsx @@ -22,8 +22,8 @@ import { AuthenticationWrapper } from "@/lib/wrappers"; import PlaneBackgroundPatternDark from "public/auth/background-pattern-dark.svg"; import PlaneBackgroundPattern from "public/auth/background-pattern.svg"; -import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; -import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.svg"; +import BlackHorizontalLogo from "public/plane-logos/black-horizontal-with-blue-logo.png"; +import WhiteHorizontalLogo from "public/plane-logos/white-horizontal-with-blue-logo.png"; export type AuthType = "sign-in" | "sign-up"; diff --git a/web/public/plane-logos/black-horizontal-with-blue-logo.png b/web/public/plane-logos/black-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c14505a6f621fcfffe2bf3f3f5c8d7660f81ab96 GIT binary patch literal 2852 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 - - - - - - - - - - - - - - - - diff --git a/web/public/plane-logos/white-horizontal-with-blue-logo.png b/web/public/plane-logos/white-horizontal-with-blue-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97560fb9f92ee7bd29ed2df5a353ac6b39b2ec75 GIT binary patch literal 2412 zcmV-y36u7TP)%xyoan5-PxHAV3A#R1i`@mI{ChSSkQ2z^NeIH{PP#0VyEt)!=b( zHXg0L9_?=I`OeV^v9(?yq~D{FG#WvXzu(=RZjDCIv0-eD9xnXVs~m=5bY>fhjDY>w zZ04|G{CL0@7>1$377W8MT417K7)C2phbKlqkcOC}(a6IXJSG}O9p@os^B04dyfoo3 zYF@R(HIsqd^rii z@fn7(B<2WRFCU`0+x>;)1m?fnl`3L}LK3 z)gf6N?_n4%Fwqzehr)Gdi@%IEm?Lx`&`>3a!xf748uMf!ZOvzr~SlS#HPA9rNP3;}qh-!ut`$l=@D?kJZ&DiS6|=8yd~0F(BAX^) ziN^4#9pCaBObu?}U(ro0<|+5jWJm;y5|vwHkB&ppF*_~WXYsuZKT^{CJ2@2McHTye zO*Dpwxrey$P(Bilw~N|>iN^3qHdDewl1U^BHD;Q@IgLyMmVTF< z@^QzRpnegWrZqFEd6q}qp;;~K5&H*7G@X#2exEN*1iGPM9HV_*j=79=(0vk)-Pkm( z4NnFHH=4Rmc8iYivri&f=sTz}PTH&+;HB{6@Z($j?!2*hg(>VzW&XW{z} zmsu3Wzhg`|vPF(uwpgU0gs11n)~+mq%Sd~Yq-Pw&%4ni7EF|Y)jt+1G8wK`2$wNdm!h>{qA?Ko?Uf0)uh5NHBi9Tx zR0@acGb?zlXLC7^h1;1l#m#>wCw%Tu%VAAa#H|h|t>G}y7y#^VkUDm!V-EP)nQ;3! z#hwfvs+>We3(Za$n4;d=AiatGUYW*)J8a;;p;4#6tQs~(G!u1rEz)#pB$e~B7gQare z`ad<-B(qCu9ctG-}NG=_yoVPR-_;dg}V>R$c`^j!{rK2EsaW)*2Fe)&6_Ph%L+8-%>? zyUNpcT1&XQ@E!eN6Y5gJRsXa7Y-{!sO8l6O&R@K{b5P*fX!ZdktwlV4t=05gBRPtQ zRHrG{OGNN6`ou4SwyhPOk6^)YP(rh88;XY>o)f)!$(p!Yu}~NT!F(EPBy?&uD{sI& zhp|#jG>k4tmJH3Rc&vs^_64*-s!OsO53yc;DVvFg(FMt=N}{of#a-oh^#LzjcPUqc zE`!aU7+sJ=V-G8Um&y0S(uhQg-S;#tJ|Aln={1iRiQOj@n zSU5(9qAoA_ILs&<26D{eO9C&6w_otRwv61+gCl9t8!~40()GunG9fQbF?tkl)bf-! z3b;!RIzxQ5Cw-P0_gC~3dfRivu2>Kr5{xpkSB|1C%W#XdnXe23*~BXGC=O$a?v6Im zFjV1~n2Us?q-kTGhXms-ixm0{3kP-LCNoAE|GUge*~g7>P4>Ci@WfE3a#pBjwD6KM zJ{R^L1A!yElMv@f1I^YnKJL*(!$<;kYCgl2qOW;$r?f75JKY+CPkblg(5g@3XPveY zVb$Tuv#m$7REfcc=<5~ig`cvsj*j_jYdYsBrvGvn)%qNx*n88qKFj?=OV{ZLMslQ? zf=!E)P$GrX*D5cs*&ttr!;|BaxW|)Ilp1!v=ndGmZfB9B0#XfmQvdxU^+|XXAt32r es?*!9zvurqzPKh2y6xit0000 - - - - - - - - - - - - - - - - From ddc28d37d398466784bfad47157a576918505cd4 Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Thu, 23 May 2024 16:45:23 +0530 Subject: [PATCH 5/7] [WEB-1404] chore: auth and onboarding improvements (#4564) * chore: `switch account` modal revamp. * chore: workspace invitation page message display logic update. * chore: update `showDeleteAccountModal` state to `showSwitchAccountModal`. --- packages/ui/src/button/helper.tsx | 6 +- .../onboarding/create-or-join-workspaces.tsx | 6 +- web/components/onboarding/index.ts | 4 +- web/components/onboarding/invite-members.tsx | 6 +- web/components/onboarding/profile-setup.tsx | 6 +- ...opdown.tsx => switch-account-dropdown.tsx} | 12 +-- ...unt-modal.tsx => switch-account-modal.tsx} | 75 +++++----------- web/pages/workspace-invitations.tsx | 86 +++++++++---------- 8 files changed, 82 insertions(+), 119 deletions(-) rename web/components/onboarding/{switch-or-delete-account-dropdown.tsx => switch-account-dropdown.tsx} (83%) rename web/components/onboarding/{switch-delete-account-modal.tsx => switch-account-modal.tsx} (61%) diff --git a/packages/ui/src/button/helper.tsx b/packages/ui/src/button/helper.tsx index 0378b0334..ae9e85359 100644 --- a/packages/ui/src/button/helper.tsx +++ b/packages/ui/src/button/helper.tsx @@ -44,9 +44,9 @@ export const buttonStyling: IButtonStyling = { disabled: `cursor-not-allowed !bg-custom-primary-60 hover:bg-custom-primary-60`, }, "accent-primary": { - default: `bg-custom-primary-10 text-custom-primary-100`, - hover: `hover:bg-custom-primary-20 hover:text-custom-primary-200`, - pressed: `focus:bg-custom-primary-20`, + default: `bg-custom-primary-100/20 text-custom-primary-100`, + hover: `hover:bg-custom-primary-100/10 hover:text-custom-primary-200`, + pressed: `focus:bg-custom-primary-100/10`, disabled: `cursor-not-allowed !text-custom-primary-60`, }, "outline-primary": { diff --git a/web/components/onboarding/create-or-join-workspaces.tsx b/web/components/onboarding/create-or-join-workspaces.tsx index 1f0bd5c69..b88857186 100644 --- a/web/components/onboarding/create-or-join-workspaces.tsx +++ b/web/components/onboarding/create-or-join-workspaces.tsx @@ -6,7 +6,7 @@ import { useTheme } from "next-themes"; // types import { IWorkspaceMemberInvitation, TOnboardingSteps } from "@plane/types"; // components -import { Invitations, OnboardingHeader, SwitchOrDeleteAccountDropdown, CreateWorkspace } from "@/components/onboarding"; +import { Invitations, OnboardingHeader, SwitchAccountDropdown, CreateWorkspace } from "@/components/onboarding"; // hooks import { useUser } from "@/hooks/store"; // assets @@ -55,7 +55,7 @@ export const CreateOrJoinWorkspaces: React.FC = observer((props) => {
- +
@@ -79,7 +79,7 @@ export const CreateOrJoinWorkspaces: React.FC = observer((props) => {
- +
Promise; @@ -366,7 +366,7 @@ export const InviteMembers: React.FC = (props) => { {/* Since this will always be the last step */}
- +
@@ -433,7 +433,7 @@ export const InviteMembers: React.FC = (props) => {
- +
= observer((props) => {
- +
@@ -567,7 +567,7 @@ export const ProfileSetup: React.FC = observer((props) => {
- +
{profileSetupStep === EProfileSetupSteps.USER_PERSONALIZATION ? ( = observer((props) => { +export const SwitchAccountDropdown: FC = observer((props) => { const { fullName } = props; // states - const [showDeleteAccountModal, setShowDeleteAccountModal] = useState(false); + const [showSwitchAccountModal, setShowSwitchAccountModal] = useState(false); // store hooks const { data: user } = useUser(); @@ -30,7 +30,7 @@ export const SwitchOrDeleteAccountDropdown: FC - setShowDeleteAccountModal(false)} /> + setShowSwitchAccountModal(false)} />
{user?.avatar && ( setShowDeleteAccountModal(true)} + onClick={() => setShowSwitchAccountModal(true)} > Wrong e-mail address? diff --git a/web/components/onboarding/switch-delete-account-modal.tsx b/web/components/onboarding/switch-account-modal.tsx similarity index 61% rename from web/components/onboarding/switch-delete-account-modal.tsx rename to web/components/onboarding/switch-account-modal.tsx index bfa17387f..35f23588d 100644 --- a/web/components/onboarding/switch-delete-account-modal.tsx +++ b/web/components/onboarding/switch-account-modal.tsx @@ -1,34 +1,31 @@ import React, { useState } from "react"; import { useRouter } from "next/router"; import { useTheme } from "next-themes"; -import { mutate } from "swr"; -import { Trash2 } from "lucide-react"; +import { ArrowRightLeft } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; -// hooks -import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { useUser } from "@/hooks/store"; // ui +import { Button, TOAST_TYPE, setToast } from "@plane/ui"; +// hooks +import { useUser } from "@/hooks/store"; type Props = { isOpen: boolean; onClose: () => void; }; -export const SwitchOrDeleteAccountModal: React.FC = (props) => { +export const SwitchAccountModal: React.FC = (props) => { const { isOpen, onClose } = props; // states const [switchingAccount, setSwitchingAccount] = useState(false); - const [isDeactivating, setIsDeactivating] = useState(false); // router const router = useRouter(); // store hooks - const { signOut, deactivateAccount } = useUser(); + const { data: userData, signOut } = useUser(); const { setTheme } = useTheme(); const handleClose = () => { setSwitchingAccount(false); - setIsDeactivating(false); onClose(); }; @@ -51,32 +48,6 @@ export const SwitchOrDeleteAccountModal: React.FC = (props) => { .finally(() => setSwitchingAccount(false)); }; - const handleDeactivateAccount = async () => { - setIsDeactivating(true); - - await deactivateAccount() - .then(() => { - setToast({ - type: TOAST_TYPE.SUCCESS, - title: "Success!", - message: "Account deleted successfully.", - }); - mutate("CURRENT_USER_DETAILS", null); - signOut(); - setTheme("system"); - router.push("/"); - handleClose(); - }) - .catch((err: any) => - setToast({ - type: TOAST_TYPE.ERROR, - title: "Error!", - message: err?.error, - }) - ) - .finally(() => setIsDeactivating(false)); - }; - return ( @@ -104,32 +75,30 @@ export const SwitchOrDeleteAccountModal: React.FC = (props) => { leaveTo="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" > -
-
-
-
-