1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { FilmClub } from "../../shared/types.ts";
4
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3
4export default function About() {
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState } from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { Event, FilmClub, Video, VideoCategory } from "../../shared/types.ts";
4import Hero from "./Hero.tsx";
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import { createRoot } from "https://esm.sh/react-dom@18.2.0/client?deps=react@18.2.0,react-dom@18.2.0";
4import App from "./components/App.tsx";
5
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState } from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { Video, VideoCategory } from "../../shared/types.ts";
4import VideoGallery from "./VideoGallery.tsx";
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState, useRef, useEffect } from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { Video, VideoPlayerState } from "../../shared/types.ts";
4
79 };
80
81 const handleSeek = (e: React.MouseEvent<HTMLDivElement>) => {
82 const video = videoRef.current;
83 if (!video) return;
91 };
92
93 const handleVolumeChange = (e: React.ChangeEvent<HTMLInputElement>) => {
94 const video = videoRef.current;
95 if (!video) return;
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { Video } from "../../shared/types.ts";
4
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState } from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { ContactForm } from "../../shared/types.ts";
4
14 const [submitMessage, setSubmitMessage] = useState('');
15
16 const handleSubmit = async (e: React.FormEvent) => {
17 e.preventDefault();
18 setIsSubmitting(true);
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState } from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3import type { ClubInterestForm } from "../../shared/types.ts";
4
16 const [submitMessage, setSubmitMessage] = useState('');
17
18 const handleClubFormSubmit = async (e: React.FormEvent) => {
19 e.preventDefault();
20 setIsSubmitting(true);
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0?deps=react@18.2.0";
3
4export default function Hero() {