From b78a064305b64ab642ceefdd72866907b61eb311 Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Wed, 15 May 2024 21:26:57 +0530 Subject: [PATCH] refactor: admin and added new spinner --- admin/app/email/components/index.ts | 2 - .../{components => }/email-config-form.tsx | 17 ++--- admin/app/email/layout.tsx | 10 +-- admin/app/email/page.tsx | 5 +- .../{components => }/test-email-modal.tsx | 2 +- admin/app/setup/layout.tsx | 14 ---- admin/app/setup/page.tsx | 11 --- admin/components/common/index.ts | 1 + admin/components/common/logo-spinner.tsx | 17 +++++ admin/layouts/admin-layout.tsx | 5 +- admin/lib/app-providers.tsx | 4 +- admin/lib/{wrappers => }/app-wrapper.tsx | 0 admin/lib/wrappers/auth-wrapper.tsx | 59 ---------------- admin/lib/wrappers/index.ts | 3 - admin/lib/wrappers/instance-wrapper.tsx | 65 ------------------ admin/public/images/logo-spinner-dark.gif | Bin 0 -> 36427 bytes admin/public/images/logo-spinner-light.gif | Bin 0 -> 35819 bytes 17 files changed, 36 insertions(+), 179 deletions(-) delete mode 100644 admin/app/email/components/index.ts rename admin/app/email/{components => }/email-config-form.tsx (98%) rename admin/app/email/{components => }/test-email-modal.tsx (98%) delete mode 100644 admin/app/setup/layout.tsx delete mode 100644 admin/app/setup/page.tsx create mode 100644 admin/components/common/logo-spinner.tsx rename admin/lib/{wrappers => }/app-wrapper.tsx (100%) delete mode 100644 admin/lib/wrappers/auth-wrapper.tsx delete mode 100644 admin/lib/wrappers/index.ts delete mode 100644 admin/lib/wrappers/instance-wrapper.tsx create mode 100644 admin/public/images/logo-spinner-dark.gif create mode 100644 admin/public/images/logo-spinner-light.gif diff --git a/admin/app/email/components/index.ts b/admin/app/email/components/index.ts deleted file mode 100644 index f06acf7f2..000000000 --- a/admin/app/email/components/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./email-config-form"; -export * from "./test-email-modal"; diff --git a/admin/app/email/components/email-config-form.tsx b/admin/app/email/email-config-form.tsx similarity index 98% rename from admin/app/email/components/email-config-form.tsx rename to admin/app/email/email-config-form.tsx index eb73e18b9..8a18b481d 100644 --- a/admin/app/email/components/email-config-form.tsx +++ b/admin/app/email/email-config-form.tsx @@ -1,14 +1,15 @@ import React, { FC, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; -// hooks -import { IFormattedInstanceConfiguration, TInstanceEmailConfigurationKeys } from "@plane/types"; -import { Button, CustomSelect, TOAST_TYPE, setToast } from "@plane/ui"; -import { useInstance } from "@/hooks/store"; -// ui -// components -import { ControllerInput, TControllerInputFormField } from "components/common"; -import { SendTestEmailModal } from "./test-email-modal"; // types +import { IFormattedInstanceConfiguration, TInstanceEmailConfigurationKeys } from "@plane/types"; +// ui +import { Button, CustomSelect, TOAST_TYPE, setToast } from "@plane/ui"; +// components +import { ControllerInput, TControllerInputFormField } from "@/components/common"; +// hooks +import { useInstance } from "@/hooks/store"; +// local components +import { SendTestEmailModal } from "./test-email-modal"; type IInstanceEmailForm = { config: IFormattedInstanceConfiguration; diff --git a/admin/app/email/layout.tsx b/admin/app/email/layout.tsx index 5eb8af8ee..626c5d557 100644 --- a/admin/app/email/layout.tsx +++ b/admin/app/email/layout.tsx @@ -3,19 +3,11 @@ import { ReactNode } from "react"; // layouts import { AdminLayout } from "@/layouts/admin-layout"; -// lib -import { AuthWrapper, InstanceWrapper } from "@/lib/wrappers"; interface EmailLayoutProps { children: ReactNode; } -const EmailLayout = ({ children }: EmailLayoutProps) => ( - - - {children} - - -); +const EmailLayout = ({ children }: EmailLayoutProps) => {children}; export default EmailLayout; diff --git a/admin/app/email/page.tsx b/admin/app/email/page.tsx index 51566e5f2..de776b175 100644 --- a/admin/app/email/page.tsx +++ b/admin/app/email/page.tsx @@ -5,9 +5,10 @@ import useSWR from "swr"; import { Loader } from "@plane/ui"; // components import { PageHeader } from "@/components/core"; -import { useInstance } from "@/hooks/store"; -import { InstanceEmailForm } from "./components"; // hooks +import { useInstance } from "@/hooks/store"; +// components +import { InstanceEmailForm } from "./email-config-form"; const InstanceEmailPage = observer(() => { // store diff --git a/admin/app/email/components/test-email-modal.tsx b/admin/app/email/test-email-modal.tsx similarity index 98% rename from admin/app/email/components/test-email-modal.tsx rename to admin/app/email/test-email-modal.tsx index 6e9f6d9d3..0feea4128 100644 --- a/admin/app/email/components/test-email-modal.tsx +++ b/admin/app/email/test-email-modal.tsx @@ -3,7 +3,7 @@ import { Dialog, Transition } from "@headlessui/react"; // ui import { Button, Input } from "@plane/ui"; // services -import { InstanceService } from "services/instance.service"; +import { InstanceService } from "@/services/instance.service"; type Props = { isOpen: boolean; diff --git a/admin/app/setup/layout.tsx b/admin/app/setup/layout.tsx deleted file mode 100644 index 61038f97f..000000000 --- a/admin/app/setup/layout.tsx +++ /dev/null @@ -1,14 +0,0 @@ -"use client"; - -import { ReactNode } from "react"; -// layouts -import { DefaultLayout } from "@/layouts/default-layout"; -interface SetupLayoutProps { - children: ReactNode; - params: any; -} - -export default function SetupLayout(props: SetupLayoutProps) { - const { children } = props; - return {children}; -} diff --git a/admin/app/setup/page.tsx b/admin/app/setup/page.tsx deleted file mode 100644 index 06174f792..000000000 --- a/admin/app/setup/page.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Metadata } from "next"; -// components -import { InstanceSetupForm } from "@/components/instance"; - -export const metadata: Metadata = { - title: "Setup - God Mode", -}; - -export default function SetupPage() { - return ; -} diff --git a/admin/components/common/index.ts b/admin/components/common/index.ts index 77f0e9327..005711a62 100644 --- a/admin/components/common/index.ts +++ b/admin/components/common/index.ts @@ -5,3 +5,4 @@ export * from "./copy-field"; export * from "./password-strength-meter"; export * from "./banner"; export * from "./empty-state"; +export * from "./logo-spinner"; diff --git a/admin/components/common/logo-spinner.tsx b/admin/components/common/logo-spinner.tsx new file mode 100644 index 000000000..69bb9423d --- /dev/null +++ b/admin/components/common/logo-spinner.tsx @@ -0,0 +1,17 @@ +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 const LogoSpinner = () => { + const { resolvedTheme } = useTheme(); + + const logoSrc = resolvedTheme === "dark" ? LogoSpinnerDark : LogoSpinnerLight; + + return ( +
+ logo +
+ ); +}; diff --git a/admin/layouts/admin-layout.tsx b/admin/layouts/admin-layout.tsx index 041a5b8bf..f7f828954 100644 --- a/admin/layouts/admin-layout.tsx +++ b/admin/layouts/admin-layout.tsx @@ -3,11 +3,10 @@ import { FC, ReactNode, useEffect } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/navigation"; import useSWR from "swr"; -// ui -import { Spinner } from "@plane/ui"; // components import { InstanceSidebar } from "@/components/admin-sidebar"; import { InstanceHeader } from "@/components/auth-header"; +import { LogoSpinner } from "@/components/common"; import { NewUserPopup } from "@/components/new-user-popup"; // hooks import { useInstance, useUser } from "@/hooks/store"; @@ -39,7 +38,7 @@ export const AdminLayout: FC = observer((props) => { if (isUserLoggedIn === undefined) { return (
- +
); } diff --git a/admin/lib/app-providers.tsx b/admin/lib/app-providers.tsx index 28bfdd08b..64853c62d 100644 --- a/admin/lib/app-providers.tsx +++ b/admin/lib/app-providers.tsx @@ -2,10 +2,10 @@ import { ReactNode, createContext } from "react"; import { ThemeProvider } from "next-themes"; -// ui -import { AppWrapper } from "@/lib/wrappers"; // store import { RootStore } from "@/store/root.store"; +// store initialization +import { AppWrapper } from "./app-wrapper"; let rootStore = new RootStore(); diff --git a/admin/lib/wrappers/app-wrapper.tsx b/admin/lib/app-wrapper.tsx similarity index 100% rename from admin/lib/wrappers/app-wrapper.tsx rename to admin/lib/app-wrapper.tsx diff --git a/admin/lib/wrappers/auth-wrapper.tsx b/admin/lib/wrappers/auth-wrapper.tsx deleted file mode 100644 index c471b3a23..000000000 --- a/admin/lib/wrappers/auth-wrapper.tsx +++ /dev/null @@ -1,59 +0,0 @@ -"use client"; - -import { FC, ReactNode } from "react"; -import { observer } from "mobx-react-lite"; -import { useRouter } from "next/navigation"; -import useSWR from "swr"; -import { Spinner } from "@plane/ui"; -// hooks -import { EAuthenticationPageType } from "@/helpers"; -import { useInstance, useUser } from "@/hooks/store"; -// helpers - -export interface IAuthWrapper { - children: ReactNode; - authType?: EAuthenticationPageType; -} - -export const AuthWrapper: FC = observer((props) => { - const router = useRouter(); - // props - const { children, authType = EAuthenticationPageType.AUTHENTICATED } = props; - // hooks - const { instance } = useInstance(); - const { isLoading, currentUser, fetchCurrentUser } = useUser(); - - const { isLoading: isSWRLoading } = useSWR("CURRENT_USER_DETAILS", () => fetchCurrentUser(), { - shouldRetryOnError: false, - }); - - if (isSWRLoading || isLoading) - return ( -
- -
- ); - - if (authType === EAuthenticationPageType.NOT_AUTHENTICATED) { - if (currentUser === undefined) return <>{children}; - else { - router.push("/general/"); - return <>; - } - } - - if (authType === EAuthenticationPageType.AUTHENTICATED) { - if (currentUser) return <>{children}; - else { - if (instance && instance?.instance?.is_setup_done) { - router.push("/"); - return <>; - } else { - router.push("/setup/"); - return <>; - } - } - } - - return <>{children}; -}); diff --git a/admin/lib/wrappers/index.ts b/admin/lib/wrappers/index.ts deleted file mode 100644 index 81c379624..000000000 --- a/admin/lib/wrappers/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./app-wrapper"; -export * from "./instance-wrapper"; -export * from "./auth-wrapper"; diff --git a/admin/lib/wrappers/instance-wrapper.tsx b/admin/lib/wrappers/instance-wrapper.tsx deleted file mode 100644 index bfc5cc289..000000000 --- a/admin/lib/wrappers/instance-wrapper.tsx +++ /dev/null @@ -1,65 +0,0 @@ -"use client"; - -import { FC, ReactNode } from "react"; -import { observer } from "mobx-react-lite"; -import { redirect, useSearchParams } from "next/navigation"; -import useSWR from "swr"; -import { Spinner } from "@plane/ui"; -// components -import { EmptyState } from "@/components/common"; -import { InstanceNotReady } from "@/components/instance"; -// helpers -import { EInstancePageType } from "@/helpers"; -// hooks -import { useInstance } from "@/hooks/store"; -// layouts -import { DefaultLayout } from "@/layouts/default-layout"; - -type TInstanceWrapper = { - children: ReactNode; - pageType?: EInstancePageType; -}; - -export const InstanceWrapper: FC = observer((props) => { - const { children, pageType } = props; - const searchparams = useSearchParams(); - const authEnabled = searchparams.get("auth_enabled") || "1"; - // hooks - const { isLoading, instance, fetchInstanceInfo } = useInstance(); - - const { isLoading: isSWRLoading } = useSWR("INSTANCE_INFORMATION", () => fetchInstanceInfo(), { - revalidateOnFocus: false, - revalidateIfStale: false, - revalidateOnReconnect: false, - errorRetryCount: 0, - }); - - if (isSWRLoading || isLoading) - return ( -
- -
- ); - - if (!instance) { - return ( - - ); - } - - if (instance?.instance?.is_setup_done === false && authEnabled === "1") - return ( - - - - ); - - if (instance?.instance?.is_setup_done && pageType === EInstancePageType.PRE_SETUP) redirect("/"); - - if (!instance?.instance?.is_setup_done && pageType === EInstancePageType.POST_SETUP) redirect("/setup"); - - return <>{children}; -}); diff --git a/admin/public/images/logo-spinner-dark.gif b/admin/public/images/logo-spinner-dark.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e0a1deb7b752d475d5d1c331f21c7d346c2ca6f GIT binary patch literal 36427 zcmeFaby$>p*Y~ZcD4?A)R5;{WSdSFpa zu>KdYcD2xp1TgS&&$Yp#dSJayu$0}e`a@4dl!X;zpD4V2BL7ZMOz(;4E3k;xufR7- z!3Qj=Eo3k(D57xT!i9S$1ahLvFGQXyh;p$%ymaxmo77|#XrAji=mGx<3cJ|o8JHV6 z(C8bPm{|$kU#qCOPh(~%bYGQM_Mxneh>@w8gqxkw3pY7s12=O6e#861U>ZRe0T)Xf zOCtw88W&3oD|-PKq5FD<*7`;Qz{jUIbKIx-c^3zBq5Dry|AXfAHASrLjA;1SAF>%d ze8@$^$;rpg$;b1EkB^mx>me5>$3rd-PJT8nZUN4R0uLY2{O!+u;N|QLjRlmRi~a4z zfX{^Pn>sky2yk#XJ3F&GbF*99nE;RF=RbW8E-p6U9&GlmRt|bDY*zNPe}9JOM)n4F zW;PCH)>bs9�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 m|1G`fj0j@bq|{{(=R(2`;ExCR?byxdz6rd(FK^ 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 literal 0 HcmV?d00001