From 89b411863b452fdab9d2b4a0cfd0e9d79d991f72 Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Mon, 10 Feb 2025 16:50:19 -0500 Subject: Reading messages from DB + clicking to place new messages --- src/App.jsx | 72 ++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 32 deletions(-) (limited to 'src/App.jsx') diff --git a/src/App.jsx b/src/App.jsx index 25fe834..81436a8 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -3,30 +3,32 @@ import { Canvas, useFrame } from '@react-three/fiber'; import Notes from './components/notes'; import Player from './components/player'; import Ground from './components/ground'; -import React, { Suspense, useContext, useEffect, useState } from 'react'; +import React, { Suspense, useContext, useEffect, useRef, useState } from 'react'; import { Physics } from '@react-three/rapier'; +import Sun from './components/sun'; +import { Fog } from 'three'; +import * as everforest from './_everforest.module.scss' export const AppContext = React.createContext(null); function KeyPressedClearer() { - const { setKeysPressed } = useContext(AppContext); - useFrame((_s, _d) => setKeysPressed([])); + const { keysPressed } = useContext(AppContext); + useFrame((_s, _d) => keysPressed.current = [], -1); return <> } function App() { - const [keys, setKeys] = useState([]); - const [keysPressed, setKeysPressed] = useState([]); + const keys = useRef([]); + const keysPressed = useRef([]); + const [messages, setMessages] = useState(); const playerKeyDown = (event) => { - setKeys(keys => { - if(!keys.includes(event.code)) { - setKeysPressed(keysPressed => [...keysPressed, event.code]); - } - return [...keys, event.code] - }); + if (!keys.current.includes(event.code)) { + keysPressed.current.push(event.code); + } + keys.current.push(event.code); } const playerKeyUp = (event) => { - setKeys(keys => keys.filter(k => k != event.code)); + keys.current = keys.current.filter(k => k != event.code); } useEffect(() => { window.addEventListener('keydown', playerKeyDown); @@ -36,28 +38,34 @@ function App() { window.removeEventListener('keyup', playerKeyUp); }; }, []); + useEffect(() => { + fetch('/api/message').then((res) => res.json()).then((data) => { + console.log(data); + setMessages(data); + }); + }, []); return ( - - - - - - - + <> +
+

+ E - read
+ LMB - write +

+ + + + + + - - - - - - + + + + + + + + ) } -- cgit v1.2.3