diff --git a/README.md b/README.md
index 9982136d..4339ef11 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ $ npm ci
# dev
```sh
-$ npm run -w demos/cards-with-border-radius dev
+$ npm run dev
```
# build
diff --git a/apps/website/app/demos/[demoname]/Dev.tsx b/apps/website/app/demos/[demoname]/Dev.tsx
new file mode 100644
index 00000000..c13b104b
--- /dev/null
+++ b/apps/website/app/demos/[demoname]/Dev.tsx
@@ -0,0 +1,44 @@
+"use client";
+
+import { useRouter } from "next/navigation";
+
+export function Dev({ demoname }: { demoname: string }) {
+ const { refresh } = useRouter();
+
+ const cmd = `npm run -w demos/${demoname} dev3`;
+
+ return (
+
+
+
+
Start this demo with :
+
{
+ navigator.clipboard.writeText(cmd);
+ }}
+ >
+ {cmd}
+ copy
+
+
+ Then refresh()}>refresh
+
+
+ );
+}
diff --git a/apps/website/app/demos/[demoname]/page.tsx b/apps/website/app/demos/[demoname]/page.tsx
index 108c9a61..2acd82e2 100644
--- a/apps/website/app/demos/[demoname]/page.tsx
+++ b/apps/website/app/demos/[demoname]/page.tsx
@@ -1,6 +1,7 @@
import { notFound } from "next/navigation";
import { getDemos } from "@/lib/helper";
+import { Dev } from "./Dev";
const demos = getDemos();
@@ -41,7 +42,18 @@ export async function generateStaticParams() {
}));
}
-export default function Page(props: Props) {
+async function checkUrlIsUp(url: string) {
+ const response = await fetch(url, {
+ method: "GET",
+ next: { revalidate: 0 },
+ }).catch(() => {});
+
+ return response?.ok || false;
+}
+
+const isDev = process.env.NODE_ENV === "development";
+
+export default async function Page(props: Props) {
const { params } = props;
const { demoname } = params;
@@ -50,16 +62,32 @@ export default function Page(props: Props) {
const { embed_url } = demo;
+ let isUp;
+ if (isDev) {
+ isUp = await checkUrlIsUp(embed_url);
+ }
+ // console.log("isUp=", isUp);
+
return (
- <>
+
- ;
- >
+ {isDev && !isUp ? (
+
+ ) : (
+
+ )}
+
);
}
diff --git a/apps/website/app/globals.css b/apps/website/app/globals.css
index b09f9e87..39ea5b4d 100644
--- a/apps/website/app/globals.css
+++ b/apps/website/app/globals.css
@@ -6,3 +6,9 @@
@import "open-props/normalize/dark";
@import "open-props/normalize/light";
+
+a {
+ color: inherit;
+ text-decoration: underline;
+ cursor: pointer;
+}
diff --git a/apps/website/app/layout.tsx b/apps/website/app/layout.tsx
index aad1a3d2..ca740a5a 100644
--- a/apps/website/app/layout.tsx
+++ b/apps/website/app/layout.tsx
@@ -25,7 +25,10 @@ export default function RootLayout({
__html: `
@scope {
:scope {background:#eee;}
- main {position:fixed; width:100%; height:100dvh;}
+
+ main {
+ position:fixed; width:100%; height:100dvh;
+ }
}
`,
}}
diff --git a/apps/website/components/Nav.tsx b/apps/website/components/Nav.tsx
index 038a1feb..8c4bc582 100644
--- a/apps/website/components/Nav.tsx
+++ b/apps/website/components/Nav.tsx
@@ -39,7 +39,7 @@ export default function Nav({
}, [demoname, demos]);
return (
- <>
+