1/** @jsxImportSource https://esm.sh/react@19 */
2import fcsdk from 'https://esm.sh/@farcaster/frame-sdk'
3import { NavLink, Route, Routes } from 'https://esm.sh/react-router@7'
4import { useEffect, useState } from 'https://esm.sh/react@19'
5
6import { Analytics } from "./components/Analytics.tsx"
1/** @jsxImportSource https://esm.sh/react@19 */
2import fcsdk from 'https://esm.sh/@farcaster/frame-sdk'
3import { useLocation } from 'https://esm.sh/react-router@7'
4import { useEffect, useState } from 'https://esm.sh/react@19'
5
6import { sendAnalyticsEvent } from '../util/supabase.ts'
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useCallback, useEffect, useRef, useState } from "https://esm.sh/react@18.2.0";
3import { MCPClient } from "../utils/MCPClient.ts";
4
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import { renderToString } from "npm:react-dom@18.2.0/server";
3
4/*
5📁 main.tsx
6*/
7import React from "npm:react";
8import TodoApp from "./TodoApp.tsx";
9
24 dangerouslySetInnerHTML={{
25 __html: `
26 import React from "npm:react";
27 // Use esm.sh client build for hydrateRoot
28 import { hydrateRoot } from "https://esm.sh/react-dom@18.2.0/client";
29 import TodoApp from "./TodoApp.tsx";
30 hydrateRoot(document.getElementById("root"), React.createElement(TodoApp));
31 `,
32 }}
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import { renderToString } from "npm:react-dom@18.2.0/server";
3
4// TodoApp.tsx
5"use client"; // opt into client‑side interactivity
6import { useEffect, useState } from "npm:react";
7
8interface Todo {
25 }, []);
26
27 const add = async (e: React.FormEvent) => {
28 e.preventDefault();
29 await fetch("/api/todos", {
24
25 <script type="module">
26 import React, { useState, useEffect } from 'https://esm.sh/react@18.2.0?deps=react@18.2.0';
27 import ReactDOM from 'https://esm.sh/react-dom@18.2.0/client?deps=react@18.2.0,react-dom@18.2.0';
28
29 function App() {
212 }
213
214 const root = ReactDOM.createRoot(document.getElementById('root'));
215 root.render(React.createElement(App));
216 </script>
217</body>
13- `backend/index.ts` - Main Hono server with API endpoints
14- `frontend/index.html` - Main HTML template
15- `frontend/index.tsx` - React frontend application
16- `shared/types.ts` - Shared TypeScript types
17
1/** @jsxImportSource https://esm.sh/react@18.2.0?dev */
2
3export function ValTownLogo () {
1import { useState, useEffect } from "react";
2
3const USER_ENDPOINT = "/api/user";
1import { useEffect } from "react";
2
3export function useUsageStats(messages: any[], usages: any[]) {