+ {status === 'unauthenticated' && (
+
+ Sign up now to create your own
+ newsletters
+
+ )}
+
{children}
+
+ );
+}
diff --git a/nextjs-13/src/middleware.ts b/nextjs-13/src/middleware.ts
index 82079c08..62d2aa7c 100644
--- a/nextjs-13/src/middleware.ts
+++ b/nextjs-13/src/middleware.ts
@@ -5,6 +5,10 @@ export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
};
+const isPublicPath = (url: string) => {
+ return url.startsWith('/newsletter') || url.startsWith('/auth');
+};
+
const middleware = async (req) => {
const user = await getToken({ req });
const url = req.nextUrl.pathname;
@@ -13,7 +17,7 @@ const middleware = async (req) => {
return NextResponse.redirect(new URL('/', req.url));
}
- if (user === null && !url.startsWith('/auth')) {
+ if (!user && !isPublicPath(url)) {
return NextResponse.redirect(new URL('/auth/sign-in', req.url));
}
};
diff --git a/nextjs-13/src/stylesheets/layouts/_app.scss b/nextjs-13/src/stylesheets/layouts/_app.scss
deleted file mode 100644
index ae44851a..00000000
--- a/nextjs-13/src/stylesheets/layouts/_app.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-.layout-auth {
- display: grid;
- place-content: center;
- height: 100vh;
- background: var(--gradient-9);
-}
diff --git a/nextjs-13/src/stylesheets/layouts/_index.scss b/nextjs-13/src/stylesheets/layouts/_index.scss
index 9d3195f6..db8fc23a 100644
--- a/nextjs-13/src/stylesheets/layouts/_index.scss
+++ b/nextjs-13/src/stylesheets/layouts/_index.scss
@@ -1,2 +1,3 @@
-@import '_auth';
-@import '_default';
+@import 'auth';
+@import 'default';
+@import 'public';
diff --git a/nextjs-13/src/stylesheets/layouts/_public.scss b/nextjs-13/src/stylesheets/layouts/_public.scss
new file mode 100644
index 00000000..a88090e9
--- /dev/null
+++ b/nextjs-13/src/stylesheets/layouts/_public.scss
@@ -0,0 +1,63 @@
+.layout-public {
+ .app-header,
+ .app-content {
+ padding: 0 var(--size-5);
+ }
+
+ .app-content {
+ padding-top: var(--size-5);
+ padding-bottom: var(--size-5);
+ width: 100%;
+ display: flex;
+ justify-content: center;
+ }
+
+ .dashboard {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ height: 100vh;
+
+ &__nav {
+ width: 300px;
+ background: #001529;
+ padding: var(--size-3);
+
+ }
+
+ &__tab {
+ display: flex;
+ background: #ADD8E6;
+ border-radius: var(--radius-conditional-2);
+ padding: var(--size-2);
+ color: black;
+ cursor: pointer;
+ --_size: var(--font-size-1);
+ margin-bottom: var(--size-3);
+ // align-items: flex-end;
+ text-align: end;
+ text-decoration:none;
+
+ &--selected {
+ background: #1E90FF;
+ }
+ }
+ }
+
+ .app-header {
+ display: flex;
+ align-items: center;
+ height: var(--size-0);
+ }
+
+ .banner {
+ position: absolute;
+ width: 100%;
+ height: 30px;
+ background: rgb(38,194,160);
+ text-align: center;
+ color: var(--ifm-color-black);
+ line-height: 30px;
+ cursor: pointer;
+ }
+}
diff --git a/nextjs-13/src/stylesheets/screens/_index.scss b/nextjs-13/src/stylesheets/screens/_index.scss
index 5dca8e92..3920b8e2 100644
--- a/nextjs-13/src/stylesheets/screens/_index.scss
+++ b/nextjs-13/src/stylesheets/screens/_index.scss
@@ -1,2 +1,3 @@
@import 'home';
@import 'send-newsletter';
+@import 'view-newsletter';
diff --git a/nextjs-13/src/stylesheets/screens/_view-newsletter.scss b/nextjs-13/src/stylesheets/screens/_view-newsletter.scss
new file mode 100644
index 00000000..41cd9ddb
--- /dev/null
+++ b/nextjs-13/src/stylesheets/screens/_view-newsletter.scss
@@ -0,0 +1,11 @@
+.view-newsletter {
+ .newsletter {
+ margin-top: var(--size-8);
+ }
+
+ .content {
+ margin-top: var(--size-5);
+ white-space: pre-wrap;
+ word-break: keep-all;
+ }
+}