1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, {
3 useState,
4 useEffect,
5 useCallback,
6 useMemo,
7} from "https://esm.sh/react@18.2.0";
8import { type Memory } from "../../shared/types.ts";
9import { ASSETS, SCENE_POSITIONS, SOURCE_TYPES } from "./assets.ts";
165 }, [fetchMemories]);
166
167 const handleAddMemory = async (e: React.FormEvent) => {
168 e.preventDefault();
169 if (!newMemoryText.trim()) return;
220 };
221
222 const handleUpdateMemory = async (e: React.FormEvent) => {
223 e.preventDefault();
224 if (!editingMemory || !editingMemory.text.trim()) return;
1/// <reference types="react" />
2
3interface JSX {
14
15interface Window {
16 React: typeof import('react');
17 ReactDOM: typeof import('react-dom');
18}
19
1declare module 'react-dom' {
2 export interface Root {
3 render(element: ReactElement): void;
4 unmount(): void;
5 }
15}
16
17declare module 'react-dom/client' {
18 export const createRoot: typeof createRoot;
19 export const hydrateRoot: typeof createRoot;
7 "types": [
8 "https://www.val.town/types/valtown.d.ts",
9 "https://www.val.town/v/willscriv/WS-Chess/src/types/react.d.ts",
10 "https://www.val.town/v/willscriv/WS-Chess/src/types/global.d.ts",
11 "https://www.val.town/v/willscriv/WS-Chess/src/types/types.d.ts",
12 "https://www.val.town/v/willscriv/WS-Chess/src/types/jsx-runtime.d.ts",
13 "https://www.val.town/v/willscriv/WS-Chess/src/types/react-dom.d.ts"
14 ],
15 "lib": [
20 "deno.unstable"
21 ],
22 "jsx": "react-jsx",
23 "jsxImportSource": "react"
24 },
25 "importMap": {
26 "imports": {
27 "react": "https://esm.sh/react@18.2.0",
28 "react-dom": "https://esm.sh/react-dom@18.2.0",
29 "react-dom/client": "https://esm.sh/react-dom@18.2.0/client"
30 }
31 },
1declare module 'react/jsx-runtime' {
2 export function jsx(
3 type: string | ComponentClass<any>,
4 props: any,
5 key?: string
6 ): ReactElement;
7
8 export function jsxs(
10 props: any,
11 key?: string
12 ): ReactElement;
13
14 export const Fragment: ComponentClass<{ children?: ReactNode }>;
15}
16
1import React, { useState } from 'react';
2import { Piece, Square } from '../types/chess';
3import '../components/ChessBoard.css';
1import React from 'react';
2import { ChessBoard } from './components/ChessBoard';
3import './App.css';
1/// <reference types="react" />
2/// <reference types="react-dom" />
3
1/**
2 * @jsxImportSource https://esm.sh/react@18.2.0
3 */
4
1# React Hono Val Town Project Starter Template
2
3This is a starter template for a full-stack app in a Val Town Project. The app itself is a simple persistent message board.