From 849885b5b361880f25d877b148b8ac640c45779e Mon Sep 17 00:00:00 2001 From: zahid Date: Wed, 19 Apr 2023 13:11:02 +0600 Subject: [PATCH 1/7] fix: redirect to /dashboard if auth user tries to access /login or /signup --- apps/web/pages/login.tsx | 11 +++++++++++ apps/web/pages/signup.tsx | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/apps/web/pages/login.tsx b/apps/web/pages/login.tsx index ca384369a..6abdd6aaf 100644 --- a/apps/web/pages/login.tsx +++ b/apps/web/pages/login.tsx @@ -1,4 +1,5 @@ import Head from "next/head"; +import { getUserFromToken } from "@documenso/lib/server"; import Login from "../components/login"; export default function LoginPage(props: any) { @@ -13,6 +14,16 @@ export default function LoginPage(props: any) { } export async function getServerSideProps(context: any) { + const user = await getUserFromToken(context.req, context.res); + if (user) + return { + redirect: { + source: "/login", + destination: "/dashboard", + permanent: false, + }, + }; + const ALLOW_SIGNUP = process.env.ALLOW_SIGNUP === "true"; return { diff --git a/apps/web/pages/signup.tsx b/apps/web/pages/signup.tsx index b59fd6e79..689444de9 100644 --- a/apps/web/pages/signup.tsx +++ b/apps/web/pages/signup.tsx @@ -1,5 +1,6 @@ import { NextPageContext } from "next"; import Head from "next/head"; +import { getUserFromToken } from "@documenso/lib/server"; import Signup from "../components/signup"; export default function SignupPage(props: { source: string }) { @@ -22,6 +23,16 @@ export async function getServerSideProps(context: any) { }, }; + const user = await getUserFromToken(context.req, context.res); + if (user) + return { + redirect: { + source: "/signup", + destination: "/dashboard", + permanent: false, + }, + }; + const signupSource: string = context.query["source"]; return { props: { From dc6217b14eabe74c073175a622ecb9b23a5b809d Mon Sep 17 00:00:00 2001 From: Subham Ray Date: Mon, 24 Apr 2023 19:16:56 +0530 Subject: [PATCH 2/7] feat(Documents Filter): Keep the URL and UI state in sync when status filter changes --- apps/web/pages/documents.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/web/pages/documents.tsx b/apps/web/pages/documents.tsx index eaad896a5..eea36a846 100644 --- a/apps/web/pages/documents.tsx +++ b/apps/web/pages/documents.tsx @@ -83,6 +83,20 @@ const DocumentsPage: NextPageWithLayout = (props: any) => { return filteredDocuments; } + function handleSetSelectedStatusFilter(status: any) { + router.replace( + { + pathname: router.pathname, + query: { filter: status.value }, + }, + undefined, + { + shallow: true, // Perform a shallow update, without reloading the page + } + ); + setSelectedStatusFilter(status); + } + function wasXDaysAgoOrLess(documentDate: Date, lastXDays: number): boolean { if (lastXDays < 0) return true; @@ -138,7 +152,7 @@ const DocumentsPage: NextPageWithLayout = (props: any) => { label="Status" options={statusFilters} value={selectedStatusFilter} - onChange={setSelectedStatusFilter} + onChange={handleSetSelectedStatusFilter} />