forked from github/plane
fix: upgrading to nextjs 14 (#2959)
This commit is contained in:
parent
df647cc82a
commit
ff03f8badb
@ -1,11 +1,5 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
// react hook form
|
|
||||||
import { useForm } from "react-hook-form";
|
import { useForm } from "react-hook-form";
|
||||||
// services
|
|
||||||
import userService from "services/user.service";
|
|
||||||
// hooks
|
|
||||||
// import useToast from "hooks/use-toast";
|
|
||||||
// ui
|
// ui
|
||||||
import { Input } from "components/ui";
|
import { Input } from "components/ui";
|
||||||
import { Button } from "@plane/ui";
|
import { Button } from "@plane/ui";
|
||||||
@ -30,10 +24,9 @@ export const EmailResetPasswordForm: React.FC<Props> = ({ setIsResettingPassword
|
|||||||
});
|
});
|
||||||
|
|
||||||
const forgotPassword = async (formData: any) => {
|
const forgotPassword = async (formData: any) => {
|
||||||
const payload = {
|
// const payload = {
|
||||||
email: formData.email,
|
// email: formData.email,
|
||||||
};
|
// };
|
||||||
|
|
||||||
// await userService
|
// await userService
|
||||||
// .forgotPassword(payload)
|
// .forgotPassword(payload)
|
||||||
// .then(() =>
|
// .then(() =>
|
||||||
@ -60,7 +53,7 @@ export const EmailResetPasswordForm: React.FC<Props> = ({ setIsResettingPassword
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form className="space-y-4 mt-10 w-full sm:w-[360px] mx-auto" onSubmit={handleSubmit(forgotPassword)}>
|
<form className="mx-auto mt-10 w-full space-y-4 sm:w-[360px]" onSubmit={handleSubmit(forgotPassword)}>
|
||||||
<div className="space-y-1">
|
<div className="space-y-1">
|
||||||
<Input
|
<Input
|
||||||
id="email"
|
id="email"
|
||||||
@ -73,11 +66,11 @@ export const EmailResetPasswordForm: React.FC<Props> = ({ setIsResettingPassword
|
|||||||
) || "Email address is not valid",
|
) || "Email address is not valid",
|
||||||
})}
|
})}
|
||||||
placeholder="Enter registered email address.."
|
placeholder="Enter registered email address.."
|
||||||
className="border-custom-border-300 h-[46px]"
|
className="h-[46px] border-custom-border-300"
|
||||||
/>
|
/>
|
||||||
{errors.email && <div className="text-sm text-red-500">{errors.email.message}</div>}
|
{errors.email && <div className="text-sm text-red-500">{errors.email.message}</div>}
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-5 flex flex-col-reverse sm:flex-row items-center gap-2">
|
<div className="mt-5 flex flex-col-reverse items-center gap-2 sm:flex-row">
|
||||||
<Button variant="neutral-primary" className="w-full" onClick={() => setIsResettingPassword(false)}>
|
<Button variant="neutral-primary" className="w-full" onClick={() => setIsResettingPassword(false)}>
|
||||||
Go Back
|
Go Back
|
||||||
</Button>
|
</Button>
|
||||||
|
@ -1,19 +1,10 @@
|
|||||||
import { useRouter } from "next/router";
|
|
||||||
// mobx react lite
|
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
// mobx hook
|
|
||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
|
||||||
// interfaces
|
// interfaces
|
||||||
import { IIssueState } from "types/issue";
|
import { IIssueState } from "types/issue";
|
||||||
// constants
|
// constants
|
||||||
import { issueGroupFilter } from "constants/data";
|
import { issueGroupFilter } from "constants/data";
|
||||||
|
|
||||||
export const RenderIssueState = observer(({ state }: { state: IIssueState }) => {
|
export const RenderIssueState = observer(({ state }: { state: IIssueState }) => {
|
||||||
const store = useMobxStore();
|
|
||||||
|
|
||||||
const router = useRouter();
|
|
||||||
const { workspace_slug, project_slug } = router.query as { workspace_slug: string; project_slug: string };
|
|
||||||
|
|
||||||
const stateGroup = issueGroupFilter(state.group);
|
const stateGroup = issueGroupFilter(state.group);
|
||||||
|
|
||||||
const removeStateFromFilter = () => {
|
const removeStateFromFilter = () => {
|
||||||
@ -28,12 +19,12 @@ export const RenderIssueState = observer(({ state }: { state: IIssueState }) =>
|
|||||||
if (stateGroup === null) return <></>;
|
if (stateGroup === null) return <></>;
|
||||||
return (
|
return (
|
||||||
<div className={`inline-flex items-center gap-x-1 rounded-full px-2 py-0.5 ${stateGroup.className || ``}`}>
|
<div className={`inline-flex items-center gap-x-1 rounded-full px-2 py-0.5 ${stateGroup.className || ``}`}>
|
||||||
<div className="flex-shrink-0 w-3 h-3 flex justify-center items-center overflow-hidden rounded-full">
|
<div className="flex h-3 w-3 flex-shrink-0 items-center justify-center overflow-hidden rounded-full">
|
||||||
{/* <stateGroup.icon /> */}
|
{/* <stateGroup.icon /> */}
|
||||||
</div>
|
</div>
|
||||||
<div className="text-xs font-medium whitespace-nowrap">{state?.name}</div>
|
<div className="whitespace-nowrap text-xs font-medium">{state?.name}</div>
|
||||||
<div
|
<div
|
||||||
className="flex-shrink-0 w-3 h-3 cursor-pointer flex justify-center items-center overflow-hidden rounded-full"
|
className="flex h-3 w-3 flex-shrink-0 cursor-pointer items-center justify-center overflow-hidden rounded-full"
|
||||||
onClick={removeStateFromFilter}
|
onClick={removeStateFromFilter}
|
||||||
>
|
>
|
||||||
<span className="material-symbols-rounded text-xs">close</span>
|
<span className="material-symbols-rounded text-xs">close</span>
|
||||||
|
@ -7,7 +7,7 @@ import { useRouter } from "next/router";
|
|||||||
// mobx
|
// mobx
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
// components
|
// components
|
||||||
import { NavbarSearch } from "./search";
|
// import { NavbarSearch } from "./search";
|
||||||
import { NavbarIssueBoardView } from "./issue-board-view";
|
import { NavbarIssueBoardView } from "./issue-board-view";
|
||||||
import { NavbarTheme } from "./theme";
|
import { NavbarTheme } from "./theme";
|
||||||
// ui
|
// ui
|
||||||
@ -83,45 +83,43 @@ const IssueNavbar = observer(() => {
|
|||||||
}, [board, workspace_slug, project_slug, router, projectStore, projectStore?.deploySettings]);
|
}, [board, workspace_slug, project_slug, router, projectStore, projectStore?.deploySettings]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="px-5 relative w-full flex items-center gap-4">
|
<div className="relative flex w-full items-center gap-4 px-5">
|
||||||
{/* project detail */}
|
{/* project detail */}
|
||||||
<div className="flex-shrink-0 flex items-center gap-2">
|
<div className="flex flex-shrink-0 items-center gap-2">
|
||||||
<div className="w-4 h-4 flex justify-center items-center">
|
<div className="flex h-4 w-4 items-center justify-center">
|
||||||
{projectStore?.project && projectStore?.project?.emoji ? (
|
{projectStore?.project && projectStore?.project?.emoji ? (
|
||||||
renderEmoji(projectStore?.project?.emoji)
|
renderEmoji(projectStore?.project?.emoji)
|
||||||
) : (
|
) : (
|
||||||
<Image src="/plane-logo.webp" alt="plane logo" className="w-[24px] h-[24px]" height="24" width="24" />
|
<Image src="/plane-logo.webp" alt="plane logo" className="h-[24px] w-[24px]" height="24" width="24" />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="font-medium text-lg max-w-[300px] line-clamp-1 overflow-hidden">
|
<div className="line-clamp-1 max-w-[300px] overflow-hidden text-lg font-medium">
|
||||||
{projectStore?.project?.name || `...`}
|
{projectStore?.project?.name || `...`}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* issue search bar */}
|
{/* issue search bar */}
|
||||||
<div className="w-full">
|
<div className="w-full">{/* <NavbarSearch /> */}</div>
|
||||||
<NavbarSearch />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* issue views */}
|
{/* issue views */}
|
||||||
<div className="flex-shrink-0 relative flex items-center gap-1 transition-all ease-in-out delay-150">
|
<div className="relative flex flex-shrink-0 items-center gap-1 transition-all delay-150 ease-in-out">
|
||||||
<NavbarIssueBoardView />
|
<NavbarIssueBoardView />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* theming */}
|
{/* theming */}
|
||||||
<div className="flex-shrink-0 relative">
|
<div className="relative flex-shrink-0">
|
||||||
<NavbarTheme />
|
<NavbarTheme />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{user ? (
|
{user ? (
|
||||||
<div className="border border-custom-border-200 rounded flex items-center gap-2 p-2">
|
<div className="flex items-center gap-2 rounded border border-custom-border-200 p-2">
|
||||||
{user.avatar && user.avatar !== "" ? (
|
{user.avatar && user.avatar !== "" ? (
|
||||||
<div className="h-5 w-5 rounded-full">
|
<div className="h-5 w-5 rounded-full">
|
||||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||||
<img src={user.avatar} alt={user.display_name ?? ""} className="rounded-full" />
|
<img src={user.avatar} alt={user.display_name ?? ""} className="rounded-full" />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="bg-custom-background-80 h-5 w-5 rounded-full grid place-items-center text-[10px] capitalize">
|
<div className="grid h-5 w-5 place-items-center rounded-full bg-custom-background-80 text-[10px] capitalize">
|
||||||
{(user.display_name ?? "A")[0]}
|
{(user.display_name ?? "A")[0]}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
@ -7,28 +7,30 @@ import { useMobxStore } from "lib/mobx/store-provider";
|
|||||||
import { RootStore } from "store/root";
|
import { RootStore } from "store/root";
|
||||||
|
|
||||||
export const NavbarIssueBoardView = observer(() => {
|
export const NavbarIssueBoardView = observer(() => {
|
||||||
const { project: projectStore, issue: issueStore }: RootStore = useMobxStore();
|
const {
|
||||||
|
project: { viewOptions, setActiveBoard, activeBoard },
|
||||||
|
}: RootStore = useMobxStore();
|
||||||
|
// router
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { workspace_slug, project_slug } = router.query as { workspace_slug: string; project_slug: string };
|
const { workspace_slug, project_slug } = router.query as { workspace_slug: string; project_slug: string };
|
||||||
|
|
||||||
const handleCurrentBoardView = (boardView: string) => {
|
const handleCurrentBoardView = (boardView: string) => {
|
||||||
projectStore.setActiveBoard(boardView);
|
setActiveBoard(boardView);
|
||||||
router.push(`/${workspace_slug}/${project_slug}?board=${boardView}`);
|
router.push(`/${workspace_slug}/${project_slug}?board=${boardView}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{projectStore?.viewOptions &&
|
{viewOptions &&
|
||||||
Object.keys(projectStore?.viewOptions).map((viewKey: string) => {
|
Object.keys(viewOptions).map((viewKey: string) => {
|
||||||
if (projectStore?.viewOptions[viewKey]) {
|
if (viewOptions[viewKey]) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={viewKey}
|
key={viewKey}
|
||||||
className={`w-[28px] h-[28px] flex justify-center items-center rounded-sm cursor-pointer ${
|
className={`flex h-[28px] w-[28px] cursor-pointer items-center justify-center rounded-sm ${
|
||||||
viewKey === projectStore?.activeBoard
|
viewKey === activeBoard
|
||||||
? `bg-custom-background-80 text-custom-text-200`
|
? `bg-custom-background-80 text-custom-text-200`
|
||||||
: `hover:bg-custom-background-80 text-custom-text-300`
|
: `text-custom-text-300 hover:bg-custom-background-80`
|
||||||
}`}
|
}`}
|
||||||
onClick={() => handleCurrentBoardView(viewKey)}
|
onClick={() => handleCurrentBoardView(viewKey)}
|
||||||
title={viewKey}
|
title={viewKey}
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
// mobx react lite
|
|
||||||
import { observer } from "mobx-react-lite";
|
|
||||||
// mobx
|
|
||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
|
||||||
import { RootStore } from "store/root";
|
|
||||||
|
|
||||||
export const NavbarIssueView = observer(() => {
|
|
||||||
const store: RootStore = useMobxStore();
|
|
||||||
|
|
||||||
return <div>View</div>;
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
// mobx react lite
|
|
||||||
import { observer } from "mobx-react-lite";
|
|
||||||
// mobx
|
|
||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
|
||||||
import { RootStore } from "store/root";
|
|
||||||
|
|
||||||
export const NavbarSearch = observer(() => {
|
|
||||||
const store: RootStore = useMobxStore();
|
|
||||||
|
|
||||||
return <div> </div>;
|
|
||||||
});
|
|
@ -1,7 +1,4 @@
|
|||||||
import { useEffect } from "react";
|
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
// lib
|
|
||||||
import { useMobxStore } from "lib/mobx/store-provider";
|
|
||||||
// components
|
// components
|
||||||
import {
|
import {
|
||||||
PeekOverviewHeader,
|
PeekOverviewHeader,
|
||||||
@ -22,19 +19,19 @@ export const FullScreenPeekView: React.FC<Props> = observer((props) => {
|
|||||||
const { handleClose, issueDetails } = props;
|
const { handleClose, issueDetails } = props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="h-full w-full grid grid-cols-10 divide-x divide-custom-border-200 overflow-hidden">
|
<div className="grid h-full w-full grid-cols-10 divide-x divide-custom-border-200 overflow-hidden">
|
||||||
<div className="h-full w-full flex flex-col col-span-7 overflow-hidden">
|
<div className="col-span-7 flex h-full w-full flex-col overflow-hidden">
|
||||||
<div className="w-full p-5">
|
<div className="w-full p-5">
|
||||||
<PeekOverviewHeader handleClose={handleClose} issueDetails={issueDetails} />
|
<PeekOverviewHeader handleClose={handleClose} issueDetails={issueDetails} />
|
||||||
</div>
|
</div>
|
||||||
{issueDetails ? (
|
{issueDetails ? (
|
||||||
<div className="h-full w-full px-6 overflow-y-auto">
|
<div className="h-full w-full overflow-y-auto px-6">
|
||||||
{/* issue title and description */}
|
{/* issue title and description */}
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<PeekOverviewIssueDetails issueDetails={issueDetails} />
|
<PeekOverviewIssueDetails issueDetails={issueDetails} />
|
||||||
</div>
|
</div>
|
||||||
{/* divider */}
|
{/* divider */}
|
||||||
<div className="h-[1] w-full border-t border-custom-border-200 my-5" />
|
<div className="my-5 h-[1] w-full border-t border-custom-border-200" />
|
||||||
{/* issue activity/comments */}
|
{/* issue activity/comments */}
|
||||||
<div className="w-full pb-5">
|
<div className="w-full pb-5">
|
||||||
<PeekOverviewIssueActivity issueDetails={issueDetails} />
|
<PeekOverviewIssueActivity issueDetails={issueDetails} />
|
||||||
@ -43,7 +40,7 @@ export const FullScreenPeekView: React.FC<Props> = observer((props) => {
|
|||||||
) : (
|
) : (
|
||||||
<Loader className="px-6">
|
<Loader className="px-6">
|
||||||
<Loader.Item height="30px" />
|
<Loader.Item height="30px" />
|
||||||
<div className="space-y-2 mt-3">
|
<div className="mt-3 space-y-2">
|
||||||
<Loader.Item height="20px" width="70%" />
|
<Loader.Item height="20px" width="70%" />
|
||||||
<Loader.Item height="20px" width="60%" />
|
<Loader.Item height="20px" width="60%" />
|
||||||
<Loader.Item height="20px" width="60%" />
|
<Loader.Item height="20px" width="60%" />
|
||||||
|
@ -18,16 +18,18 @@ type Props = {
|
|||||||
issueDetails: IIssue;
|
issueDetails: IIssue;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const PeekOverviewIssueActivity: React.FC<Props> = observer((props) => {
|
export const PeekOverviewIssueActivity: React.FC<Props> = observer(() => {
|
||||||
|
// router
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { workspace_slug } = router.query;
|
const { workspace_slug } = router.query;
|
||||||
|
// store
|
||||||
const { issueDetails: issueDetailStore, project: projectStore, user: userStore } = useMobxStore();
|
const {
|
||||||
|
issueDetails: issueDetailStore,
|
||||||
|
project: projectStore,
|
||||||
|
user: { currentUser },
|
||||||
|
} = useMobxStore();
|
||||||
const comments = issueDetailStore.details[issueDetailStore.peekId || ""]?.comments || [];
|
const comments = issueDetailStore.details[issueDetailStore.peekId || ""]?.comments || [];
|
||||||
|
|
||||||
const user = userStore?.currentUser;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="pb-10">
|
<div className="pb-10">
|
||||||
<h4 className="font-medium">Activity</h4>
|
<h4 className="font-medium">Activity</h4>
|
||||||
@ -38,17 +40,17 @@ export const PeekOverviewIssueActivity: React.FC<Props> = observer((props) => {
|
|||||||
<CommentCard key={comment.id} comment={comment} workspaceSlug={workspace_slug?.toString()} />
|
<CommentCard key={comment.id} comment={comment} workspaceSlug={workspace_slug?.toString()} />
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
{user ? (
|
{currentUser ? (
|
||||||
<>
|
<>
|
||||||
{projectStore.deploySettings?.comments && (
|
{projectStore.deploySettings?.comments && (
|
||||||
<div className="mt-4">
|
<div className="mt-4">
|
||||||
<AddComment disabled={!userStore.currentUser} />
|
<AddComment disabled={!currentUser} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
<div className="bg-custom-background-80 px-2 py-2.5 flex items-center justify-between gap-2 border border-custom-border-300 rounded mt-4">
|
<div className="mt-4 flex items-center justify-between gap-2 rounded border border-custom-border-300 bg-custom-background-80 px-2 py-2.5">
|
||||||
<p className="flex gap-2 text-sm text-custom-text-200 break-words overflow-hidden">
|
<p className="flex gap-2 overflow-hidden break-words text-sm text-custom-text-200">
|
||||||
<Icon iconName="lock" className="!text-sm" />
|
<Icon iconName="lock" className="!text-sm" />
|
||||||
Sign in to add your comment
|
Sign in to add your comment
|
||||||
</p>
|
</p>
|
||||||
|
@ -13,16 +13,15 @@ import { useMobxStore } from "lib/mobx/store-provider";
|
|||||||
|
|
||||||
type Props = {};
|
type Props = {};
|
||||||
|
|
||||||
export const IssuePeekOverview: React.FC<Props> = observer((props) => {
|
export const IssuePeekOverview: React.FC<Props> = observer(() => {
|
||||||
|
// states
|
||||||
const [isSidePeekOpen, setIsSidePeekOpen] = useState(false);
|
const [isSidePeekOpen, setIsSidePeekOpen] = useState(false);
|
||||||
const [isModalPeekOpen, setIsModalPeekOpen] = useState(false);
|
const [isModalPeekOpen, setIsModalPeekOpen] = useState(false);
|
||||||
|
|
||||||
// router
|
// router
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { workspace_slug, project_slug, peekId, board } = router.query;
|
const { workspace_slug, project_slug, peekId, board } = router.query;
|
||||||
// store
|
// store
|
||||||
const { issueDetails: issueDetailStore, issue: issueStore } = useMobxStore();
|
const { issueDetails: issueDetailStore, issue: issueStore } = useMobxStore();
|
||||||
|
|
||||||
const issueDetails = issueDetailStore.peekId && peekId ? issueDetailStore.details[peekId.toString()] : undefined;
|
const issueDetails = issueDetailStore.peekId && peekId ? issueDetailStore.details[peekId.toString()] : undefined;
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -75,7 +74,7 @@ export const IssuePeekOverview: React.FC<Props> = observer((props) => {
|
|||||||
leaveFrom="translate-x-0"
|
leaveFrom="translate-x-0"
|
||||||
leaveTo="translate-x-full"
|
leaveTo="translate-x-full"
|
||||||
>
|
>
|
||||||
<Dialog.Panel className="fixed z-20 bg-custom-background-100 top-0 right-0 h-full w-1/2 shadow-custom-shadow-sm">
|
<Dialog.Panel className="fixed right-0 top-0 z-20 h-full w-1/2 bg-custom-background-100 shadow-custom-shadow-sm">
|
||||||
<SidePeekView handleClose={handleClose} issueDetails={issueDetails} />
|
<SidePeekView handleClose={handleClose} issueDetails={issueDetails} />
|
||||||
</Dialog.Panel>
|
</Dialog.Panel>
|
||||||
</Transition.Child>
|
</Transition.Child>
|
||||||
@ -105,7 +104,7 @@ export const IssuePeekOverview: React.FC<Props> = observer((props) => {
|
|||||||
>
|
>
|
||||||
<Dialog.Panel>
|
<Dialog.Panel>
|
||||||
<div
|
<div
|
||||||
className={`fixed z-20 bg-custom-background-100 top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-lg shadow-custom-shadow-xl transition-all duration-300 ${
|
className={`fixed left-1/2 top-1/2 z-20 -translate-x-1/2 -translate-y-1/2 rounded-lg bg-custom-background-100 shadow-custom-shadow-xl transition-all duration-300 ${
|
||||||
issueDetailStore.peekMode === "modal" ? "h-[70%] w-3/5" : "h-[95%] w-[95%]"
|
issueDetailStore.peekMode === "modal" ? "h-[70%] w-3/5" : "h-[95%] w-[95%]"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
// next-themes
|
// next-themes
|
||||||
import { useTheme } from "next-themes";
|
import { useTheme } from "next-themes";
|
||||||
// tooltip2
|
// tooltip2
|
||||||
@ -50,9 +49,9 @@ export const Tooltip: React.FC<Props> = ({
|
|||||||
hoverCloseDelay={closeDelay}
|
hoverCloseDelay={closeDelay}
|
||||||
content={
|
content={
|
||||||
<div
|
<div
|
||||||
className={`relative z-50 max-w-xs gap-1 rounded-md p-2 text-xs shadow-md border border-custom-border-200 ${
|
className={`relative z-50 max-w-xs gap-1 rounded-md border border-custom-border-200 p-2 text-xs shadow-md ${
|
||||||
theme === "custom" ? "bg-custom-background-100 text-custom-text-200" : "bg-black text-gray-400"
|
theme === "custom" ? "bg-custom-background-100 text-custom-text-200" : "bg-black text-gray-400"
|
||||||
} break-words overflow-hidden ${className}`}
|
} overflow-hidden break-words ${className}`}
|
||||||
>
|
>
|
||||||
{tooltipHeading && (
|
{tooltipHeading && (
|
||||||
<h5 className={`font-medium ${theme === "custom" ? "text-custom-text-100" : "text-white"}`}>
|
<h5 className={`font-medium ${theme === "custom" ? "text-custom-text-100" : "text-white"}`}>
|
||||||
|
@ -10,7 +10,7 @@ export const LoginView = observer(() => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{userStore?.loader ? (
|
{userStore?.loader ? (
|
||||||
<div className="relative w-screen h-screen flex justify-center items-center">Loading</div>
|
<div className="relative flex h-screen w-screen items-center justify-center">Loading</div> // TODO: Add spinner instead
|
||||||
) : (
|
) : (
|
||||||
<>{userStore.currentUser ? <UserLoggedIn /> : <SignInView />}</>
|
<>{userStore.currentUser ? <UserLoggedIn /> : <SignInView />}</>
|
||||||
)}
|
)}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
|
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
|
|
||||||
// mobx
|
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
// components
|
// components
|
||||||
import { IssueListView } from "components/issues/board-views/list";
|
import { IssueListView } from "components/issues/board-views/list";
|
||||||
@ -20,7 +17,7 @@ import SomethingWentWrongImage from "public/something-went-wrong.svg";
|
|||||||
|
|
||||||
export const ProjectDetailsView = observer(() => {
|
export const ProjectDetailsView = observer(() => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { workspace_slug, project_slug, states, labels, priorities, board, peekId } = router.query;
|
const { workspace_slug, project_slug, states, labels, priorities, peekId } = router.query;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
issue: issueStore,
|
issue: issueStore,
|
||||||
@ -53,22 +50,22 @@ export const ProjectDetailsView = observer(() => {
|
|||||||
}, [peekId, issueDetailStore, project_slug, workspace_slug]);
|
}, [peekId, issueDetailStore, project_slug, workspace_slug]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="relative w-full h-full overflow-hidden">
|
<div className="relative h-full w-full overflow-hidden">
|
||||||
{workspace_slug && <IssuePeekOverview />}
|
{workspace_slug && <IssuePeekOverview />}
|
||||||
|
|
||||||
{issueStore?.loader && !issueStore.issues ? (
|
{issueStore?.loader && !issueStore.issues ? (
|
||||||
<div className="text-sm text-center py-10 text-custom-text-100">Loading...</div>
|
<div className="py-10 text-center text-sm text-custom-text-100">Loading...</div>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
{issueStore?.error ? (
|
{issueStore?.error ? (
|
||||||
<div className="h-full w-full grid place-items-center p-6">
|
<div className="grid h-full w-full place-items-center p-6">
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
<div className="h-52 w-52 bg-custom-background-80 rounded-full grid place-items-center mx-auto">
|
<div className="mx-auto grid h-52 w-52 place-items-center rounded-full bg-custom-background-80">
|
||||||
<div className="h-32 w-32 grid place-items-center">
|
<div className="grid h-32 w-32 place-items-center">
|
||||||
<Image src={SomethingWentWrongImage} alt="Oops! Something went wrong" />
|
<Image src={SomethingWentWrongImage} alt="Oops! Something went wrong" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h1 className="text-3xl font-semibold mt-12">Oops! Something went wrong.</h1>
|
<h1 className="mt-12 text-3xl font-semibold">Oops! Something went wrong.</h1>
|
||||||
<p className="mt-4 text-custom-text-300">The public board does not exist. Please check the URL.</p>
|
<p className="mt-4 text-custom-text-300">The public board does not exist. Please check the URL.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -76,12 +73,12 @@ export const ProjectDetailsView = observer(() => {
|
|||||||
projectStore?.activeBoard && (
|
projectStore?.activeBoard && (
|
||||||
<>
|
<>
|
||||||
{projectStore?.activeBoard === "list" && (
|
{projectStore?.activeBoard === "list" && (
|
||||||
<div className="relative w-full h-full overflow-y-auto">
|
<div className="relative h-full w-full overflow-y-auto">
|
||||||
<IssueListView />
|
<IssueListView />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{projectStore?.activeBoard === "kanban" && (
|
{projectStore?.activeBoard === "kanban" && (
|
||||||
<div className="relative w-full h-full mx-auto p-5">
|
<div className="relative mx-auto h-full w-full p-5">
|
||||||
<IssueKanbanView />
|
<IssueKanbanView />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
import { useEffect } from "react";
|
import { useEffect } from "react";
|
||||||
// next imports
|
// next imports
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
@ -15,12 +13,6 @@ const MobxStoreInit = () => {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { states, labels, priorities } = router.query as { states: string[]; labels: string[]; priorities: string[] };
|
const { states, labels, priorities } = router.query as { states: string[]; labels: string[]; priorities: string[] };
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// store.issue.userSelectedLabels = labels || [];
|
|
||||||
// store.issue.userSelectedPriorities = priorities || [];
|
|
||||||
// store.issue.userSelectedStates = states || [];
|
|
||||||
// }, [store.issue]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const authToken = Cookie.get("accessToken") || null;
|
const authToken = Cookie.get("accessToken") || null;
|
||||||
if (authToken) userStore.fetchCurrentUser();
|
if (authToken) userStore.fetchCurrentUser();
|
||||||
|
@ -17,10 +17,10 @@
|
|||||||
"@emotion/styled": "^11.11.0",
|
"@emotion/styled": "^11.11.0",
|
||||||
"@headlessui/react": "^1.7.13",
|
"@headlessui/react": "^1.7.13",
|
||||||
"@mui/material": "^5.14.1",
|
"@mui/material": "^5.14.1",
|
||||||
|
"@plane/document-editor": "*",
|
||||||
"@plane/lite-text-editor": "*",
|
"@plane/lite-text-editor": "*",
|
||||||
"@plane/rich-text-editor": "*",
|
"@plane/rich-text-editor": "*",
|
||||||
"@plane/ui": "*",
|
"@plane/ui": "*",
|
||||||
"@plane/document-editor": "*",
|
|
||||||
"axios": "^1.3.4",
|
"axios": "^1.3.4",
|
||||||
"clsx": "^2.0.0",
|
"clsx": "^2.0.0",
|
||||||
"js-cookie": "^3.0.1",
|
"js-cookie": "^3.0.1",
|
||||||
@ -28,7 +28,7 @@
|
|||||||
"lucide-react": "^0.293.0",
|
"lucide-react": "^0.293.0",
|
||||||
"mobx": "^6.10.0",
|
"mobx": "^6.10.0",
|
||||||
"mobx-react-lite": "^4.0.3",
|
"mobx-react-lite": "^4.0.3",
|
||||||
"next": "12.3.2",
|
"next": "^14.0.3",
|
||||||
"next-images": "^1.8.5",
|
"next-images": "^1.8.5",
|
||||||
"next-themes": "^0.2.1",
|
"next-themes": "^0.2.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
|
@ -5,7 +5,6 @@ import { ThemeProvider } from "next-themes";
|
|||||||
import "styles/globals.css";
|
import "styles/globals.css";
|
||||||
import "styles/editor.css";
|
import "styles/editor.css";
|
||||||
import "styles/table.css";
|
import "styles/table.css";
|
||||||
|
|
||||||
// contexts
|
// contexts
|
||||||
import { ToastContextProvider } from "contexts/toast.context";
|
import { ToastContextProvider } from "contexts/toast.context";
|
||||||
// mobx store provider
|
// mobx store provider
|
||||||
|
@ -5,7 +5,7 @@ class MyDocument extends Document {
|
|||||||
return (
|
return (
|
||||||
<Html>
|
<Html>
|
||||||
<Head />
|
<Head />
|
||||||
<body className="antialiased bg-custom-background-100 w-100">
|
<body className="w-100 bg-custom-background-100 antialiased">
|
||||||
<Main />
|
<Main />
|
||||||
<NextScript />
|
<NextScript />
|
||||||
</body>
|
</body>
|
||||||
|
121
yarn.lock
121
yarn.lock
@ -1558,11 +1558,6 @@
|
|||||||
prop-types "^15.8.1"
|
prop-types "^15.8.1"
|
||||||
react-is "^18.2.0"
|
react-is "^18.2.0"
|
||||||
|
|
||||||
"@next/env@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-12.3.2.tgz#fb819366771f5721e9438ca3a42ad18684f0949b"
|
|
||||||
integrity sha512-upwtMaHxlv/udAWGq0kE+rg8huwmcxQPsKZFhS1R5iVO323mvxEBe1YrSXe1awLbg9sTIuEHbgxjLLt7JbeuAQ==
|
|
||||||
|
|
||||||
"@next/env@14.0.3":
|
"@next/env@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.3.tgz#9a58b296e7ae04ffebce8a4e5bd0f87f71de86bd"
|
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.3.tgz#9a58b296e7ae04ffebce8a4e5bd0f87f71de86bd"
|
||||||
@ -1596,111 +1591,46 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
glob "7.1.7"
|
glob "7.1.7"
|
||||||
|
|
||||||
"@next/swc-android-arm-eabi@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.2.tgz#806e3be9741bc14aafdfad0f0c4c6a8de5b77ee1"
|
|
||||||
integrity sha512-r2rrz+DZ8YYGqzVrbRrpP6GKzwozpOrnFbErc4k36vUTSFMag9yQahZfaBe06JYdqu/e5yhm/saIDEaSVPRP4g==
|
|
||||||
|
|
||||||
"@next/swc-android-arm64@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.3.2.tgz#f9ec6b7fc746832a217ad6bb5478624d1a9a9822"
|
|
||||||
integrity sha512-B+TINJhCf+CrY1+b3/JWQlkecv53rAGa/gA7gi5B1cnBa/2Uvoe+Ue0JeCefTjfiyl1ScsyNx+NcESY8Ye2Ngg==
|
|
||||||
|
|
||||||
"@next/swc-darwin-arm64@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.2.tgz#97c532d35c66ce6b6941ae24b5b8b267b9b0d0d8"
|
|
||||||
integrity sha512-PTUfe1ZrwjsiuTmr3bOM9lsoy5DCmfYsLOUF9ZVhtbi5MNJVmUTy4VZ06GfrvnCO5hGCr48z3vpFE9QZ0qLcPw==
|
|
||||||
|
|
||||||
"@next/swc-darwin-arm64@14.0.3":
|
"@next/swc-darwin-arm64@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.3.tgz#b1a0440ffbf69056451947c4aea5b6d887e9fbbc"
|
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.3.tgz#b1a0440ffbf69056451947c4aea5b6d887e9fbbc"
|
||||||
integrity sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==
|
integrity sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==
|
||||||
|
|
||||||
"@next/swc-darwin-x64@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.2.tgz#e0cb4ff4b11faaff3a891bd1d18ed72f71e30ebe"
|
|
||||||
integrity sha512-1HkjmS9awwlaeEY8Y01nRSNkSv3y+qnC/mjMPe/W66hEh3QKa/LQHqHeS7NOdEs19B2mhZ7w+EgMRXdLQ0Su8w==
|
|
||||||
|
|
||||||
"@next/swc-darwin-x64@14.0.3":
|
"@next/swc-darwin-x64@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.3.tgz#48b527ef7eb5dbdcaf62fd107bc3a78371f36f09"
|
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.3.tgz#48b527ef7eb5dbdcaf62fd107bc3a78371f36f09"
|
||||||
integrity sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==
|
integrity sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==
|
||||||
|
|
||||||
"@next/swc-freebsd-x64@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.2.tgz#d7b93dd344cb67d1969565d0796c7b7d0217fccf"
|
|
||||||
integrity sha512-h5Mx0BKDCJ5Vu/U8e07esF6PjPv1EJgmRbYWTUZMAflu13MQpCJkKEJir7+BeRfTXRfgFf+llc7uocrpd7mcrg==
|
|
||||||
|
|
||||||
"@next/swc-linux-arm-gnueabihf@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.2.tgz#c2170a89effe00fdd65798c99684fd93a02b197c"
|
|
||||||
integrity sha512-EuRZAamoxfe/WoWRaC0zsCAoE4gs/mEhilcloNM4J5Mnb3PLY8PZV394W7t5tjBjItMCF7l2Ebwjwtm46tq2RA==
|
|
||||||
|
|
||||||
"@next/swc-linux-arm64-gnu@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.2.tgz#26df7d7cdc18cf413f12a408179ee4ac315f383a"
|
|
||||||
integrity sha512-T9GCFyOIb4S3acA9LqflUYD+QZ94iZketHCqKdoO0Nx0OCHIgGJV5rotDe8TDXwh/goYpIfyHU4j1qqw4w4VnA==
|
|
||||||
|
|
||||||
"@next/swc-linux-arm64-gnu@14.0.3":
|
"@next/swc-linux-arm64-gnu@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.3.tgz#0a36475a38b2855ab8ea0fe8b56899bc90184c0f"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.3.tgz#0a36475a38b2855ab8ea0fe8b56899bc90184c0f"
|
||||||
integrity sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==
|
integrity sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==
|
||||||
|
|
||||||
"@next/swc-linux-arm64-musl@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.2.tgz#fd42232a6b10d9f9a4f71433d59c280a4532d06f"
|
|
||||||
integrity sha512-hxNVZS6L3c2z3l9EH2GP0MGQ9exu6O8cohYNZyqC9WUl6C03sEn8xzDH1y+NgD3fVurvYkGU5F0PDddJJLfDIw==
|
|
||||||
|
|
||||||
"@next/swc-linux-arm64-musl@14.0.3":
|
"@next/swc-linux-arm64-musl@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.3.tgz#25328a9f55baa09fde6364e7e47ade65c655034f"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.3.tgz#25328a9f55baa09fde6364e7e47ade65c655034f"
|
||||||
integrity sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==
|
integrity sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==
|
||||||
|
|
||||||
"@next/swc-linux-x64-gnu@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.2.tgz#5307579e3d8fbdb03adbe6cfc915b51548e0a103"
|
|
||||||
integrity sha512-fCPkLuwDwY8/QeXxciJJjDHG09liZym/Bhb4A+RLFQ877wUkwFsNWDUTSdUx0YXlYK/1gf67BKauqKkOKp6CYw==
|
|
||||||
|
|
||||||
"@next/swc-linux-x64-gnu@14.0.3":
|
"@next/swc-linux-x64-gnu@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.3.tgz#594b747e3c8896b2da67bba54fcf8a6b5a410e5e"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.3.tgz#594b747e3c8896b2da67bba54fcf8a6b5a410e5e"
|
||||||
integrity sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==
|
integrity sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==
|
||||||
|
|
||||||
"@next/swc-linux-x64-musl@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.2.tgz#d5cb920a825a8dc80ffba8a6b797fb845af0b84c"
|
|
||||||
integrity sha512-o+GifBIQ2K+/MEFxHsxUZoU3bsuVFLXZYWd3idimFHiVdDCVYiKsY6mYMmKDlucX+9xRyOCkKL9Tjf+3tuXJpw==
|
|
||||||
|
|
||||||
"@next/swc-linux-x64-musl@14.0.3":
|
"@next/swc-linux-x64-musl@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.3.tgz#a02da58fc6ecad8cf5c5a2a96a7f6030ec7f6215"
|
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.3.tgz#a02da58fc6ecad8cf5c5a2a96a7f6030ec7f6215"
|
||||||
integrity sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==
|
integrity sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==
|
||||||
|
|
||||||
"@next/swc-win32-arm64-msvc@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.2.tgz#2a0d619e5bc0cec17ed093afd1ca6b1c37c2690c"
|
|
||||||
integrity sha512-crii66irzGGMSUR0L8r9+A06eTv7FTXqw4rgzJ33M79EwQJOdpY7RVKXLQMurUhniEeQEEOfamiEdPIi/qxisw==
|
|
||||||
|
|
||||||
"@next/swc-win32-arm64-msvc@14.0.3":
|
"@next/swc-win32-arm64-msvc@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.3.tgz#bf2be23d3ba2ebd0d4a9376a31f783efdb677b48"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.3.tgz#bf2be23d3ba2ebd0d4a9376a31f783efdb677b48"
|
||||||
integrity sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==
|
integrity sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==
|
||||||
|
|
||||||
"@next/swc-win32-ia32-msvc@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.2.tgz#769bef60d0d678c3d7606a4dc7fee018d6199227"
|
|
||||||
integrity sha512-5hRUSvn3MdQ4nVRu1rmKxq5YJzpTtZfaC/NyGw6wa4NSF1noUn/pdQGUr+I5Qz3CZkd1gZzzC0eaXQHlrk0E2g==
|
|
||||||
|
|
||||||
"@next/swc-win32-ia32-msvc@14.0.3":
|
"@next/swc-win32-ia32-msvc@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.3.tgz#839f8de85a4bf2c3c69242483ab87cb916427551"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.3.tgz#839f8de85a4bf2c3c69242483ab87cb916427551"
|
||||||
integrity sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==
|
integrity sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==
|
||||||
|
|
||||||
"@next/swc-win32-x64-msvc@12.3.2":
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.2.tgz#45beb4b9d28e6dd6abf63cab1c5b92dc84323a6b"
|
|
||||||
integrity sha512-tpQJYUH+TzPMIsdVl9fH8uDg47iwiNjKY+8e9da3dXqlkztKzjSw0OwSADoqh3KrifplXeKSta+BBGLdBqg3sg==
|
|
||||||
|
|
||||||
"@next/swc-win32-x64-msvc@14.0.3":
|
"@next/swc-win32-x64-msvc@14.0.3":
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.3.tgz#27b623612b1d0cea6efe0a0d31aa1a335fc99647"
|
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.3.tgz#27b623612b1d0cea6efe0a0d31aa1a335fc99647"
|
||||||
@ -2337,13 +2267,6 @@
|
|||||||
magic-string "^0.25.0"
|
magic-string "^0.25.0"
|
||||||
string.prototype.matchall "^4.0.6"
|
string.prototype.matchall "^4.0.6"
|
||||||
|
|
||||||
"@swc/helpers@0.4.11":
|
|
||||||
version "0.4.11"
|
|
||||||
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.11.tgz#db23a376761b3d31c26502122f349a21b592c8de"
|
|
||||||
integrity sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==
|
|
||||||
dependencies:
|
|
||||||
tslib "^2.4.0"
|
|
||||||
|
|
||||||
"@swc/helpers@0.5.2":
|
"@swc/helpers@0.5.2":
|
||||||
version "0.5.2"
|
version "0.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d"
|
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d"
|
||||||
@ -6504,7 +6427,7 @@ mz@^2.7.0:
|
|||||||
object-assign "^4.0.1"
|
object-assign "^4.0.1"
|
||||||
thenify-all "^1.0.0"
|
thenify-all "^1.0.0"
|
||||||
|
|
||||||
nanoid@^3.3.4, nanoid@^3.3.6:
|
nanoid@^3.3.6:
|
||||||
version "3.3.7"
|
version "3.3.7"
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
||||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||||
@ -6549,32 +6472,6 @@ next-themes@^0.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45"
|
resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45"
|
||||||
integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==
|
integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==
|
||||||
|
|
||||||
next@12.3.2:
|
|
||||||
version "12.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/next/-/next-12.3.2.tgz#3a3356a8d752726128825a8bdf17f2a3b3f861cf"
|
|
||||||
integrity sha512-orzvvebCwOqaz1eA5ZA0R5dbKxqtJyw7yeig7kDspu6p8OrplfyelzpvMHcDTKscv/l0nn/0l0v3mSsE8w4k7A==
|
|
||||||
dependencies:
|
|
||||||
"@next/env" "12.3.2"
|
|
||||||
"@swc/helpers" "0.4.11"
|
|
||||||
caniuse-lite "^1.0.30001406"
|
|
||||||
postcss "8.4.14"
|
|
||||||
styled-jsx "5.0.7"
|
|
||||||
use-sync-external-store "1.2.0"
|
|
||||||
optionalDependencies:
|
|
||||||
"@next/swc-android-arm-eabi" "12.3.2"
|
|
||||||
"@next/swc-android-arm64" "12.3.2"
|
|
||||||
"@next/swc-darwin-arm64" "12.3.2"
|
|
||||||
"@next/swc-darwin-x64" "12.3.2"
|
|
||||||
"@next/swc-freebsd-x64" "12.3.2"
|
|
||||||
"@next/swc-linux-arm-gnueabihf" "12.3.2"
|
|
||||||
"@next/swc-linux-arm64-gnu" "12.3.2"
|
|
||||||
"@next/swc-linux-arm64-musl" "12.3.2"
|
|
||||||
"@next/swc-linux-x64-gnu" "12.3.2"
|
|
||||||
"@next/swc-linux-x64-musl" "12.3.2"
|
|
||||||
"@next/swc-win32-arm64-msvc" "12.3.2"
|
|
||||||
"@next/swc-win32-ia32-msvc" "12.3.2"
|
|
||||||
"@next/swc-win32-x64-msvc" "12.3.2"
|
|
||||||
|
|
||||||
next@^14.0.3:
|
next@^14.0.3:
|
||||||
version "14.0.3"
|
version "14.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/next/-/next-14.0.3.tgz#8d801a08eaefe5974203d71092fccc463103a03f"
|
resolved "https://registry.yarnpkg.com/next/-/next-14.0.3.tgz#8d801a08eaefe5974203d71092fccc463103a03f"
|
||||||
@ -7010,15 +6907,6 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
||||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||||
|
|
||||||
postcss@8.4.14:
|
|
||||||
version "8.4.14"
|
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
|
|
||||||
integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
|
|
||||||
dependencies:
|
|
||||||
nanoid "^3.3.4"
|
|
||||||
picocolors "^1.0.0"
|
|
||||||
source-map-js "^1.0.2"
|
|
||||||
|
|
||||||
postcss@8.4.31, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.29:
|
postcss@8.4.31, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.29:
|
||||||
version "8.4.31"
|
version "8.4.31"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
|
||||||
@ -8121,11 +8009,6 @@ style-to-object@^0.4.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
inline-style-parser "0.1.1"
|
inline-style-parser "0.1.1"
|
||||||
|
|
||||||
styled-jsx@5.0.7:
|
|
||||||
version "5.0.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.7.tgz#be44afc53771b983769ac654d355ca8d019dff48"
|
|
||||||
integrity sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==
|
|
||||||
|
|
||||||
styled-jsx@5.1.1:
|
styled-jsx@5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
|
resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
|
||||||
@ -8797,7 +8680,7 @@ use-sidecar@^1.1.2:
|
|||||||
detect-node-es "^1.1.0"
|
detect-node-es "^1.1.0"
|
||||||
tslib "^2.0.0"
|
tslib "^2.0.0"
|
||||||
|
|
||||||
use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0:
|
use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
|
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
|
||||||
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
|
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
|
||||||
|
Loading…
Reference in New Issue
Block a user