diff --git a/apps/page/README.md b/apps/page/README.md index 8fa6d66..bdfa8c6 100644 --- a/apps/page/README.md +++ b/apps/page/README.md @@ -5,9 +5,6 @@ This folder contains the pages app which renders user changelog pages. ### Environment Variables ``` -# Revalidation -REVALIDATE_TOKEN= - # Supabase details from https://app.supabase.io NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= diff --git a/apps/page/components/reactions.tsx b/apps/page/components/reactions.tsx index dd2502d..40c1bf9 100644 --- a/apps/page/components/reactions.tsx +++ b/apps/page/components/reactions.tsx @@ -1,16 +1,9 @@ +import { IReactions } from "@changes-page/supabase/types/page"; import { Transition } from "@headlessui/react"; import classNames from "classnames"; import { useCallback, useEffect, useState } from "react"; import { httpGet, httpPost } from "../utils/http"; -export type IReactions = { - thumbs_up?: number; - thumbs_down?: number; - rocket?: number; - sad?: number; - heart?: number; -}; - const ReactionsCounter = ({ postId, aggregate, diff --git a/apps/page/pages/_sites/[site]/index.tsx b/apps/page/pages/_sites/[site]/index.tsx index 7f2a83e..fa8f1a8 100644 --- a/apps/page/pages/_sites/[site]/index.tsx +++ b/apps/page/pages/_sites/[site]/index.tsx @@ -149,13 +149,6 @@ export default function Index({ ); } -// export async function getStaticPaths() { -// return { -// paths: [], -// fallback: "blocking", -// }; -// } - export async function getServerSideProps({ params: { site }, }: { diff --git a/apps/page/pages/api/revalidate.ts b/apps/page/pages/api/revalidate.ts deleted file mode 100644 index c6c0e7e..0000000 --- a/apps/page/pages/api/revalidate.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { NextApiRequest, NextApiResponse } from "next"; - -/** - * @param req - * @param res - * @returns - */ -export default async function handler( - req: NextApiRequest, - res: NextApiResponse<{ revalidated: boolean } | { message: string } | string> -) { - return res.json({ revalidated: true }); - const { secret } = req.query; - const { path } = req.body; - - // Check for secret to confirm this is a valid request - if (secret !== process.env.REVALIDATE_TOKEN) { - return res.status(401).json({ message: "Invalid token" }); - } - - if (!path) { - return res.status(401).json({ message: "Invalid path" }); - } - - console.log("got revalidate request for", path); - - try { - await res.revalidate(`/_sites/${path}/`); - - return res.json({ revalidated: true }); - } catch (err) { - // If there was an error, Next.js will continue - // to show the last successfully generated page - console.log("[page] Error revalidating", err); - return res.status(500).send("Error revalidating"); - } -} diff --git a/apps/web/README.md b/apps/web/README.md index 22d5005..6a9b0d3 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -7,10 +7,6 @@ This folder contains the dashboard app for the project and all marketing pages. ``` NEXT_PUBLIC_PAGES_DOMAIN=http://localhost:3000 -# Revalidation -REVALIDATE_ENDPOINT= -REVALIDATE_TOKEN= - # Supabase details from https://app.supabase.io NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= diff --git a/apps/web/components/core/buttons.component.tsx b/apps/web/components/core/buttons.component.tsx index 7573542..9b00840 100644 --- a/apps/web/components/core/buttons.component.tsx +++ b/apps/web/components/core/buttons.component.tsx @@ -100,6 +100,7 @@ export function PrimaryButton({ className, disabled, keyboardShortcut, + upgradeRequired, }: { label: string | JSX.Element; type?: "button" | "submit" | "reset"; @@ -108,7 +109,24 @@ export function PrimaryButton({ disabled?: boolean; className?: string; keyboardShortcut?: string; + upgradeRequired?: boolean; }) { + if (upgradeRequired) { + return ( + + ); + } + return ( + + + + + + + + ); +} diff --git a/apps/web/components/entity/empty-state.tsx b/apps/web/components/entity/empty-state.tsx index aec78af..74ca515 100644 --- a/apps/web/components/entity/empty-state.tsx +++ b/apps/web/components/entity/empty-state.tsx @@ -16,6 +16,15 @@ export function EntityEmptyState({ buttonLabel, disabled = false, footer = null, + onButtonClick, +}: { + title: string; + message: string; + buttonLink?: string; + buttonLabel?: string; + disabled?: boolean; + footer?: React.ReactNode; + onButtonClick?: () => void; }) { return (
@@ -38,7 +47,7 @@ export function EntityEmptyState({ {title}

{message}

- {!disabled && ( + {!disabled && buttonLabel && buttonLink ? (
- )} + ) : null} + {onButtonClick && buttonLabel ? ( +
+ +
+ ) : null} {footer}
); diff --git a/apps/web/components/layout/auth-layout.component.tsx b/apps/web/components/layout/auth-layout.component.tsx index 5a527fc..5b19e2a 100644 --- a/apps/web/components/layout/auth-layout.component.tsx +++ b/apps/web/components/layout/auth-layout.component.tsx @@ -5,6 +5,12 @@ export default function AuthLayout({ children }) {
{children} +