diff --git a/site/assets/home.js b/site/assets/home.js
index 29a26786..bc605f62 100644
--- a/site/assets/home.js
+++ b/site/assets/home.js
@@ -26,6 +26,23 @@ function setupTabs(tabAttr, panelAttr) {
// Pause the wall when it can't be seen (scrolled away) or shouldn't move
// (prefers-reduced-motion — the CSS also hides it there).
+function setupCodeCardName() {
+ const nameEl = document.getElementById("lp-codecard-name");
+ if (!nameEl) return;
+ const names = {
+ solid: "Counter.tsx",
+ vue: "Counter.vue",
+ octane: "Counter.tsrx",
+ };
+ const tabs = [...document.querySelectorAll("[data-code-tab]")];
+ for (const tab of tabs) {
+ tab.addEventListener("click", () => {
+ const key = tab.dataset.codeTab;
+ if (key && names[key]) nameEl.textContent = names[key];
+ });
+ }
+}
+
function setupDemoWall() {
const video = document.querySelector(".lp-hero__wall-video");
if (!video) return;
@@ -75,6 +92,7 @@ function setupPocketStage() {
}
setupTabs("code-tab", "code-panel");
+setupCodeCardName();
setupTabs("tgt-tab", "tgt-panel");
setupDemoWall();
setupPocketStage();
diff --git a/site/home.html b/site/home.html
index 2a339f25..2dda8b30 100644
--- a/site/home.html
+++ b/site/home.html
@@ -176,7 +176,7 @@
Write the app you already know how to write.
-
Counter.tsx
+
Counter.tsx
@@ -197,34 +197,42 @@
Write the app you already know how to write.
</View>
);
}
-
import { Text, View } from "@pocketjs/framework/vue-vapor/components";
+ <script setup lang="ts">
import { ref } from "vue";
+import { Text, View } from "@pocketjs/framework/vue-vapor/components";
-export default function Counter() {
- const n = ref(0);
- return (
- <View class="flex-col items-center gap-4 p-6 bg-slate-950">
- <Text class="text-2xl text-slate-50 font-bold">Count: {n.value}</Text>
- <View class="px-4 py-2 rounded-xl bg-slate-700 focus:bg-slate-500" focusable onPress={() => n.value++}>
- <Text class="text-base text-slate-50 font-bold">Press Circle</Text>
- </View>
+const n = ref(0);
+</script>
+
+<template>
+ <View class="flex-col items-center gap-4 p-6 bg-slate-950">
+ <Text class="text-2xl text-slate-50 font-bold">Count: {{ n }}</Text>
+ <View
+ class="px-4 py-2 rounded-xl bg-slate-700 focus:bg-slate-500"
+ focusable
+ @press="n++"
+ >
+ <Text class="text-base text-slate-50 font-bold">Press Circle</Text>
</View>
- );
-}
+ </View>
+</template>
import { Text, View } from "@pocketjs/framework/octane/components";
import { useState } from "octane";
-export default function Counter() {
+export function Counter() @{
const [n, setN] = useState(0);
- return (
- <View class="flex-col items-center gap-4 p-6 bg-slate-950">
- <Text class="text-2xl text-slate-50 font-bold">{`Count: ${n}`}</Text>
- <View class="px-4 py-2 rounded-xl bg-slate-700 focus:bg-slate-500" focusable onPress={() => setN(n + 1)}>
- <Text class="text-base text-slate-50 font-bold">Press Circle</Text>
- </View>
+
+ <View class="flex-col items-center gap-4 p-6 bg-slate-950">
+ <Text class="text-2xl text-slate-50 font-bold">{`Count: ${n}`}</Text>
+ <View
+ class="px-4 py-2 rounded-xl bg-slate-700 focus:bg-slate-500"
+ focusable
+ onPress={() => setN(n + 1)}
+ >
+ <Text class="text-base text-slate-50 font-bold">Press Circle</Text>
</View>
- );
-}
+
</View>
+
}