diff --git a/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx b/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx index 5554947be39..656d0531dd6 100644 --- a/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx +++ b/apps/admin/app/(all)/(dashboard)/sidebar-dropdown.tsx @@ -42,7 +42,7 @@ export const AdminSidebarDropdown = observer(() => { )} >
- {currentUser?.email} + {currentUser?.email}
Set a new password to your Plane account - - + + - + - + @@ -94,9 +94,9 @@ @@ -187,7 +187,7 @@ @@ -236,7 +236,7 @@ diff --git a/apps/api/templates/emails/auth/magic_signin.html b/apps/api/templates/emails/auth/magic_signin.html index a7a86a94c99..c32b399fbc0 100644 --- a/apps/api/templates/emails/auth/magic_signin.html +++ b/apps/api/templates/emails/auth/magic_signin.html @@ -9,7 +9,7 @@ - + - + - + @@ -80,7 +80,7 @@

­

@@ -194,7 +194,7 @@

- + @@ -202,7 +202,7 @@

- + @@ -210,7 +210,7 @@

- + @@ -218,7 +218,7 @@

- + diff --git a/apps/api/templates/emails/invitations/project_invitation.html b/apps/api/templates/emails/invitations/project_invitation.html index 0a40d42bf84..254408ac573 100644 --- a/apps/api/templates/emails/invitations/project_invitation.html +++ b/apps/api/templates/emails/invitations/project_invitation.html @@ -8,7 +8,7 @@ {{ first_name }} invited you to join {{ project_name }} on Plane - + @@ -58,7 +58,7 @@ ­ - + ­ @@ -91,17 +91,17 @@ - -

Accept the invite

+
+

Accept the invite

diff --git a/apps/api/templates/emails/invitations/workspace_invitation.html b/apps/api/templates/emails/invitations/workspace_invitation.html index a9474538311..619f03992a7 100644 --- a/apps/api/templates/emails/invitations/workspace_invitation.html +++ b/apps/api/templates/emails/invitations/workspace_invitation.html @@ -8,8 +8,8 @@ {{first_name}} has invited you to join them in {{workspace_name}} on Plane. - - + + - + - + @@ -88,9 +88,9 @@

-

+ - + @@ -131,7 +131,7 @@

- + @@ -139,7 +139,7 @@

- + @@ -147,7 +147,7 @@

- + @@ -155,7 +155,7 @@

- + diff --git a/apps/api/templates/emails/notifications/issue-updates.html b/apps/api/templates/emails/notifications/issue-updates.html index 8ba91c6feaa..c6fe3b2786c 100644 --- a/apps/api/templates/emails/notifications/issue-updates.html +++ b/apps/api/templates/emails/notifications/issue-updates.html @@ -8,14 +8,14 @@ - +
-
+
diff --git a/apps/api/templates/emails/notifications/project_addition.html b/apps/api/templates/emails/notifications/project_addition.html index ccf0f7a9538..59c7e0e4dd7 100644 --- a/apps/api/templates/emails/notifications/project_addition.html +++ b/apps/api/templates/emails/notifications/project_addition.html @@ -164,7 +164,7 @@ text-align: center !important; } .r15-r { - background-color: #3f76ff !important; + background-color: #006399 !important; border-radius: 4px !important; border-width: 0px !important; box-sizing: border-box; @@ -296,7 +296,7 @@ } a, a:link { - color: #3f76ff; + color: #006399; text-decoration: underline; } .nl2go-default-textstyle { @@ -372,7 +372,7 @@ [endif]--> @@ -380,7 +380,7 @@ @@ -483,7 +483,7 @@ " > @@ -1308,7 +1308,7 @@ href="https://www.linkedin.com/company/planepowers/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1368,7 +1368,7 @@ href="https://twitter.com/planepowers" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1428,7 +1428,7 @@ href="https://plane.so/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > diff --git a/apps/api/templates/emails/notifications/webhook-deactivate.html b/apps/api/templates/emails/notifications/webhook-deactivate.html index 0755eb49834..272271f9608 100644 --- a/apps/api/templates/emails/notifications/webhook-deactivate.html +++ b/apps/api/templates/emails/notifications/webhook-deactivate.html @@ -8,8 +8,8 @@ {{ message }} - - + + - + - + @@ -80,7 +80,7 @@ - + @@ -155,7 +155,7 @@ ­
-

Despite our popularity, we are humbly early-stage. We are shipping fast, so please reach out to us with feature requests, major and minor nits, and anything else you find missing. We read every message, tweet, and conversation and update our public roadmap.

+

Despite our popularity, we are humbly early-stage. We are shipping fast, so please reach out to us with feature requests, major and minor nits, and anything else you find missing. We read every message, tweet, and conversation and update our public roadmap.

­ @@ -204,7 +204,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -220,7 +220,7 @@ - + @@ -228,7 +228,7 @@ - + diff --git a/apps/api/templates/emails/user/user_activation.html b/apps/api/templates/emails/user/user_activation.html index 1ec60e95552..a454d0a3c16 100644 --- a/apps/api/templates/emails/user/user_activation.html +++ b/apps/api/templates/emails/user/user_activation.html @@ -173,7 +173,7 @@ text-align: center !important; } .r16-r { - background-color: #3f76ff !important; + background-color: #006399 !important; border-radius: 4px !important; border-width: 0px !important; box-sizing: border-box; @@ -305,7 +305,7 @@ } a, a:link { - color: #3f76ff; + color: #006399; text-decoration: underline; } .nl2go-default-textstyle { @@ -382,7 +382,7 @@ @@ -390,7 +390,7 @@ @@ -493,7 +493,7 @@ " > @@ -1287,7 +1287,7 @@ href="https://www.linkedin.com/company/planepowers/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1347,7 +1347,7 @@ href="https://twitter.com/planepowers" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1407,7 +1407,7 @@ href="https://plane.so/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > diff --git a/apps/api/templates/emails/user/user_deactivation.html b/apps/api/templates/emails/user/user_deactivation.html index b6bc7b76826..8a0c097a7ac 100644 --- a/apps/api/templates/emails/user/user_deactivation.html +++ b/apps/api/templates/emails/user/user_deactivation.html @@ -173,7 +173,7 @@ text-align: center !important; } .r16-r { - background-color: #3f76ff !important; + background-color: #006399 !important; border-radius: 4px !important; border-width: 0px !important; box-sizing: border-box; @@ -305,7 +305,7 @@ } a, a:link { - color: #3f76ff; + color: #006399; text-decoration: underline; } .nl2go-default-textstyle { @@ -382,7 +382,7 @@ @@ -390,7 +390,7 @@ @@ -493,7 +493,7 @@ " > @@ -1288,7 +1288,7 @@ href="https://www.linkedin.com/company/planepowers/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1348,7 +1348,7 @@ href="https://twitter.com/planepowers" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > @@ -1408,7 +1408,7 @@ href="https://plane.so/" target="_blank" style=" - color: #3f76ff; + color: #006399; text-decoration: underline; " > diff --git a/apps/space/app/issues/[anchor]/client-layout.tsx b/apps/space/app/issues/[anchor]/client-layout.tsx index 0e24ab55163..3fc4902ff9f 100644 --- a/apps/space/app/issues/[anchor]/client-layout.tsx +++ b/apps/space/app/issues/[anchor]/client-layout.tsx @@ -39,7 +39,13 @@ export const IssuesClientLayout = observer((props: Props) => { : null ); - if (!publishSettings && !error) return ; + if (!publishSettings && !error) { + return ( +
+ +
+ ); + } if (error) return ; diff --git a/apps/space/app/page.tsx b/apps/space/app/page.tsx index a905f71b731..7ffff361f0f 100644 --- a/apps/space/app/page.tsx +++ b/apps/space/app/page.tsx @@ -11,7 +11,13 @@ import { useUser } from "@/hooks/store"; const HomePage = observer(() => { const { data: currentUser, isAuthenticated, isLoading } = useUser(); - if (isLoading) return ; + + if (isLoading) + return ( +
+ +
+ ); if (currentUser && isAuthenticated) return ; diff --git a/apps/space/app/views/[anchor]/layout.tsx b/apps/space/app/views/[anchor]/layout.tsx index 57b2971c4c3..05e113a08d9 100644 --- a/apps/space/app/views/[anchor]/layout.tsx +++ b/apps/space/app/views/[anchor]/layout.tsx @@ -42,7 +42,13 @@ const IssuesLayout = observer((props: Props) => { if (error) return ; - if (!publishSettings || !viewData) return ; + if (!publishSettings || !viewData) { + return ( +
+ +
+ ); + } return (
diff --git a/apps/space/core/components/account/auth-forms/auth-header.tsx b/apps/space/core/components/account/auth-forms/auth-header.tsx index 95a539ddfc2..f75dccecf5f 100644 --- a/apps/space/core/components/account/auth-forms/auth-header.tsx +++ b/apps/space/core/components/account/auth-forms/auth-header.tsx @@ -1,12 +1,11 @@ "use client"; -import { FC, ReactNode } from "react"; +import { FC } from "react"; // helpers import { EAuthModes } from "@/types/auth"; type TAuthHeader = { authMode: EAuthModes; - children: ReactNode; }; type TAuthHeaderContent = { @@ -30,7 +29,7 @@ const Titles: TAuthHeaderDetails = { }; export const AuthHeader: FC = (props) => { - const { authMode, children } = props; + const { authMode } = props; const getHeaderSubHeader = (mode: EAuthModes | null): TAuthHeaderContent => { if (mode) { @@ -38,7 +37,7 @@ export const AuthHeader: FC = (props) => { } return { - header: "Comment or react to work itemss", + header: "Comment or react to work items", subHeader: "Use plane to add your valuable inputs to features.", }; }; @@ -47,11 +46,10 @@ export const AuthHeader: FC = (props) => { return ( <> -
-

{header}

-

{subHeader}

+
+ {header} + {subHeader}
- {children} ); }; diff --git a/apps/space/core/components/account/auth-forms/auth-root.tsx b/apps/space/core/components/account/auth-forms/auth-root.tsx index 2ce944a2589..653c97cc73a 100644 --- a/apps/space/core/components/account/auth-forms/auth-root.tsx +++ b/apps/space/core/components/account/auth-forms/auth-root.tsx @@ -2,10 +2,14 @@ import React, { FC, useEffect, useState } from "react"; import { observer } from "mobx-react"; +import Image from "next/image"; import { useSearchParams } from "next/navigation"; +import { useTheme } from "next-themes"; // plane imports +import { API_BASE_URL } from "@plane/constants"; import { SitesAuthService } from "@plane/services"; import { IEmailCheckData } from "@plane/types"; +import { OAuthOptions } from "@plane/ui"; // components import { AuthHeader, @@ -13,7 +17,6 @@ import { AuthEmailForm, AuthUniqueCodeForm, AuthPasswordForm, - OAuthOptions, TermsAndConditions, } from "@/components/account"; // helpers @@ -27,6 +30,11 @@ import { import { useInstance } from "@/hooks/store"; // types import { EAuthModes, EAuthSteps } from "@/types/auth"; +// assets +import GithubLightLogo from "/public/logos/github-black.png"; +import GithubDarkLogo from "/public/logos/github-dark.svg"; +import GitlabLogo from "/public/logos/gitlab-logo.svg"; +import GoogleLogo from "/public/logos/google-logo.svg"; const authService = new SitesAuthService(); @@ -36,6 +44,7 @@ export const AuthRoot: FC = observer(() => { const emailParam = searchParams.get("email") || undefined; const error_code = searchParams.get("error_code") || undefined; const nextPath = searchParams.get("next_path") || undefined; + const next_path = searchParams.get("next_path"); // states const [authMode, setAuthMode] = useState(EAuthModes.SIGN_UP); const [authStep, setAuthStep] = useState(EAuthSteps.EMAIL); @@ -43,6 +52,7 @@ export const AuthRoot: FC = observer(() => { const [errorInfo, setErrorInfo] = useState(undefined); const [isPasswordAutoset, setIsPasswordAutoset] = useState(true); // hooks + const { resolvedTheme } = useTheme(); const { config } = useInstance(); useEffect(() => { @@ -146,12 +156,54 @@ export const AuthRoot: FC = observer(() => { }); }; + const content = authMode === EAuthModes.SIGN_UP ? "Sign up" : "Sign in"; + + const OAuthConfig = [ + { + id: "google", + text: `${content} with Google`, + icon: Google Logo, + onClick: () => { + window.location.assign(`${API_BASE_URL}/auth/google/${next_path ? `?next_path=${next_path}` : ``}`); + }, + enabled: config?.is_google_enabled, + }, + { + id: "github", + text: `${content} with GitHub`, + icon: ( + GitHub Logo + ), + onClick: () => { + window.location.assign(`${API_BASE_URL}/auth/github/${next_path ? `?next_path=${next_path}` : ``}`); + }, + enabled: config?.is_github_enabled, + }, + { + id: "gitlab", + text: `${content} with GitLab`, + icon: GitLab Logo, + onClick: () => { + window.location.assign(`${API_BASE_URL}/auth/gitlab/${next_path ? `?next_path=${next_path}` : ``}`); + }, + enabled: config?.is_gitlab_enabled, + }, + ]; + return ( -
- +
+
{errorInfo && errorInfo?.type === EErrorAlertType.BANNER_ALERT && ( setErrorInfo(value)} /> )} + + {isOAuthEnabled && } + {authStep === EAuthSteps.EMAIL && } {authStep === EAuthSteps.UNIQUE_CODE && ( { }} /> )} - {isOAuthEnabled && } - +
); }); diff --git a/apps/space/core/components/account/auth-forms/email.tsx b/apps/space/core/components/account/auth-forms/email.tsx index 4815fef6aee..6fb08ff7a68 100644 --- a/apps/space/core/components/account/auth-forms/email.tsx +++ b/apps/space/core/components/account/auth-forms/email.tsx @@ -46,13 +46,13 @@ export const AuthEmailForm: FC = observer((props) => { return (
-