mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
[WEB-1319] chore: instance not ready pages improvement (#4492)
* chore: instance not ready pages improvement * fix: magic sign up * chore: issue mutation spinner and command k spinner updated * chore: forgot password email input disabled * chore: forgot password email input disabled revert * chore: unused asset removed
This commit is contained in:
parent
9bf1863f33
commit
33079c826d
Binary file not shown.
Before Width: | Height: | Size: 45 KiB |
@ -188,7 +188,7 @@ class MagicSignUpEndpoint(View):
|
|||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
# Existing user
|
# Existing user
|
||||||
existing_user = User.objects.filter(email=email).first()
|
existing_user = User.objects.filter(email=email).first()
|
||||||
if not existing_user:
|
if existing_user:
|
||||||
exc = AuthenticationException(
|
exc = AuthenticationException(
|
||||||
error_code=AUTHENTICATION_ERROR_CODES["USER_ALREADY_EXIST"],
|
error_code=AUTHENTICATION_ERROR_CODES["USER_ALREADY_EXIST"],
|
||||||
error_message="USER_ALREADY_EXIST",
|
error_message="USER_ALREADY_EXIST",
|
||||||
|
@ -2,30 +2,56 @@
|
|||||||
|
|
||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
import { useTheme } from "next-themes";
|
||||||
// ui
|
// ui
|
||||||
import { Button } from "@plane/ui";
|
import { Button } from "@plane/ui";
|
||||||
// helper
|
// helper
|
||||||
import { GOD_MODE_URL } from "@/helpers/common.helper";
|
import { GOD_MODE_URL } from "@/helpers/common.helper";
|
||||||
// images
|
// images
|
||||||
import PlaneTakeOffImage from "@/public/instance/plane-takeoff.png";
|
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 BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text.png";
|
||||||
|
|
||||||
export const InstanceNotReady: FC = () => (
|
export const InstanceNotReady: FC = () => {
|
||||||
<div className="h-full w-full relative container px-5 mx-auto flex justify-center items-center pt-12">
|
const { resolvedTheme } = useTheme();
|
||||||
<div className="w-auto max-w-2xl relative space-y-8 py-10">
|
const patternBackground = resolvedTheme === "dark" ? PlaneBackgroundPatternDark : PlaneBackgroundPattern;
|
||||||
<div className="relative flex flex-col justify-center items-center space-y-4">
|
|
||||||
<h1 className="text-3xl font-bold pb-3">Welcome aboard Plane!</h1>
|
return (
|
||||||
<Image src={PlaneTakeOffImage} alt="Plane Logo" />
|
<div className="relative">
|
||||||
<p className="font-medium text-base text-onboarding-text-400">
|
<div className="h-screen w-full overflow-hidden overflow-y-auto flex flex-col">
|
||||||
Get started by setting up your instance and workspace
|
<div className="container h-[110px] flex-shrink-0 mx-auto px-5 lg:px-0 flex items-center justify-between gap-5 z-50">
|
||||||
</p>
|
<div className="flex items-center gap-x-2 py-10">
|
||||||
</div>
|
<Image src={BluePlaneLogoWithoutText} height={30} width={30} alt="Plane Logo" />
|
||||||
<div>
|
<span className="text-2xl font-semibold sm:text-3xl">Plane</span>
|
||||||
<a href={GOD_MODE_URL}>
|
</div>
|
||||||
<Button size="lg" className="w-full">
|
</div>
|
||||||
Get started
|
|
||||||
</Button>
|
<div className="absolute inset-0 z-0">
|
||||||
</a>
|
<Image src={patternBackground} className="w-screen h-full object-cover" alt="Plane background pattern" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="relative z-10 mb-[110px] flex-grow">
|
||||||
|
<div className="h-full w-full relative container px-5 mx-auto flex justify-center items-center">
|
||||||
|
<div className="w-auto max-w-2xl relative space-y-8 py-10">
|
||||||
|
<div className="relative flex flex-col justify-center items-center space-y-4">
|
||||||
|
<h1 className="text-3xl font-bold pb-3">Welcome aboard Plane!</h1>
|
||||||
|
<Image src={PlaneTakeOffImage} alt="Plane Logo" />
|
||||||
|
<p className="font-medium text-base text-onboarding-text-400">
|
||||||
|
Get started by setting up your instance and workspace
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href={GOD_MODE_URL}>
|
||||||
|
<Button size="lg" className="w-full">
|
||||||
|
Get started
|
||||||
|
</Button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
);
|
||||||
);
|
};
|
||||||
|
@ -4,8 +4,7 @@ import { useRouter } from "next/router";
|
|||||||
// hooks
|
// hooks
|
||||||
import { Check } from "lucide-react";
|
import { Check } from "lucide-react";
|
||||||
import { TIssue } from "@plane/types";
|
import { TIssue } from "@plane/types";
|
||||||
import { StateGroupIcon } from "@plane/ui";
|
import { Spinner, StateGroupIcon } from "@plane/ui";
|
||||||
import { LogoSpinner } from "@/components/common";
|
|
||||||
import { EIssuesStoreType } from "@/constants/issue";
|
import { EIssuesStoreType } from "@/constants/issue";
|
||||||
import { useProjectState, useIssues } from "@/hooks/store";
|
import { useProjectState, useIssues } from "@/hooks/store";
|
||||||
// ui
|
// ui
|
||||||
@ -59,7 +58,7 @@ export const ChangeIssueState: React.FC<Props> = observer((props) => {
|
|||||||
<div className="text-center">No states found</div>
|
<div className="text-center">No states found</div>
|
||||||
)
|
)
|
||||||
) : (
|
) : (
|
||||||
<LogoSpinner />
|
<Spinner />
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
@ -1,41 +1,55 @@
|
|||||||
import { FC } from "react";
|
import { FC } from "react";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
|
import { useTheme } from "next-themes";
|
||||||
import { Button } from "@plane/ui";
|
import { Button } from "@plane/ui";
|
||||||
// helpers
|
// helpers
|
||||||
import { GOD_MODE_URL } from "@/helpers/common.helper";
|
import { GOD_MODE_URL } from "@/helpers/common.helper";
|
||||||
// images
|
// images
|
||||||
import PlaneTakeOffImage from "@/public/plane-takeoff.png";
|
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 BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text.png";
|
import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text.png";
|
||||||
|
|
||||||
export const InstanceNotReady: FC = () => (
|
export const InstanceNotReady: FC = () => {
|
||||||
<div className="relative h-screen max-h-max w-full overflow-hidden overflow-y-auto flex flex-col">
|
const { resolvedTheme } = useTheme();
|
||||||
<div className="flex-shrink-0 h-[100px]">
|
const patternBackground = resolvedTheme === "dark" ? PlaneBackgroundPatternDark : PlaneBackgroundPattern;
|
||||||
<div className="relative h-full container mx-auto px-5 lg:px-0 flex items-center justify-between gap-5 z-50">
|
|
||||||
<div className="flex items-center gap-x-2 py-10">
|
return (
|
||||||
<Image src={BluePlaneLogoWithoutText} height={30} width={30} alt="Plane Logo" />
|
<div className="relative">
|
||||||
<span className="text-2xl font-semibold sm:text-3xl">Plane</span>
|
<div className="h-screen w-full overflow-hidden overflow-y-auto flex flex-col">
|
||||||
</div>
|
<div className="container h-[110px] flex-shrink-0 mx-auto px-5 lg:px-0 flex items-center justify-between gap-5 z-50">
|
||||||
</div>
|
<div className="flex items-center gap-x-2 py-10">
|
||||||
</div>
|
<Image src={BluePlaneLogoWithoutText} height={30} width={30} alt="Plane Logo" />
|
||||||
<div className="w-full flex-grow px-5 lg:px-0 mb-[100px]">
|
<span className="text-2xl font-semibold sm:text-3xl">Plane</span>
|
||||||
<div className="h-full w-full relative container px-5 mx-auto flex justify-center items-center">
|
|
||||||
<div className="w-auto max-w-2xl relative space-y-8 py-10">
|
|
||||||
<div className="relative flex flex-col justify-center items-center space-y-4">
|
|
||||||
<h1 className="text-3xl font-bold pb-3">Welcome aboard Plane!</h1>
|
|
||||||
<Image src={PlaneTakeOffImage} alt="Plane Logo" />
|
|
||||||
<p className="font-medium text-base text-onboarding-text-400">
|
|
||||||
Get started by setting up your instance and workspace
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</div>
|
||||||
<a href={GOD_MODE_URL}>
|
|
||||||
<Button size="lg" className="w-full">
|
<div className="absolute inset-0 z-0">
|
||||||
Get started
|
<Image src={patternBackground} className="w-screen h-full object-cover" alt="Plane background pattern" />
|
||||||
</Button>
|
</div>
|
||||||
</a>
|
|
||||||
|
<div className="relative z-10 mb-[110px] flex-grow">
|
||||||
|
<div className="h-full w-full relative container px-5 mx-auto flex justify-center items-center">
|
||||||
|
<div className="w-auto max-w-2xl relative space-y-8 py-10">
|
||||||
|
<div className="relative flex flex-col justify-center items-center space-y-4">
|
||||||
|
<h1 className="text-3xl font-bold pb-3">Welcome aboard Plane!</h1>
|
||||||
|
<Image src={PlaneTakeOffImage} alt="Plane Logo" />
|
||||||
|
<p className="font-medium text-base text-onboarding-text-400">
|
||||||
|
Get started by setting up your instance and workspace
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href={GOD_MODE_URL}>
|
||||||
|
<Button size="lg" className="w-full">
|
||||||
|
Get started
|
||||||
|
</Button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
);
|
||||||
);
|
};
|
||||||
|
@ -3,7 +3,7 @@ import { observer } from "mobx-react";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
// components
|
// components
|
||||||
import { LogoSpinner } from "@/components/common";
|
import { Spinner } from "@plane/ui";
|
||||||
import {
|
import {
|
||||||
ListLayout,
|
ListLayout,
|
||||||
CalendarLayout,
|
CalendarLayout,
|
||||||
@ -61,8 +61,8 @@ export const ProjectLayoutRoot: FC = observer(() => {
|
|||||||
<div className="relative h-full w-full overflow-auto bg-custom-background-90">
|
<div className="relative h-full w-full overflow-auto bg-custom-background-90">
|
||||||
{/* mutation loader */}
|
{/* mutation loader */}
|
||||||
{issues?.loader === "mutation" && (
|
{issues?.loader === "mutation" && (
|
||||||
<div className="fixed w-[40px] h-[40px] z-50 right-[20px] top-[70px] flex justify-center items-center bg-custom-background-80 shadow-sm rounded">
|
<div className="fixed w-[40px] h-[40px] z-50 right-[16px] top-[64px] flex justify-center items-center bg-custom-background-80 shadow-sm rounded">
|
||||||
<LogoSpinner />
|
<Spinner className="w-4 h-4" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{activeLayout === "list" ? (
|
{activeLayout === "list" ? (
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 45 KiB |
Loading…
Reference in New Issue
Block a user