Compare commits

...

2 Commits

Author SHA1 Message Date
c007aec06e if fetching ? classname + woble 2023-10-31 18:45:09 +01:00
3eafcf302f minor cleanup 2023-10-31 17:29:01 +01:00
7 changed files with 27 additions and 21 deletions

View File

@ -15,19 +15,31 @@ export default function Create() {
const request = ctx.get_GameProposalRequest() const request = ctx.get_GameProposalRequest()
ctx.setFetching(true)
postData("/api/gameproposal", request) postData("/api/gameproposal", request)
.then((responce) => { .then((responce) => {
console.log("responce", responce) // JSON data parsed by `data.json()` call console.log("responce", responce) // JSON data parsed by `data.json()` call
ctx.clear_Message2Opponent() ctx.clear_Message2Opponent()
ctx.setFetching(false)
}); });
} }
console.log("ctx", ctx)
return ( return (
<button <button
className={'game-action create' + (ctx.isEnabled ? ' enabled' : ' disabled')} className={'game-action create'
+ (ctx.isEnabled ? ' enabled' : ' disabled')
+ (ctx.isFetching === true ? ' woble' : '')
}
onClick={onClick} onClick={onClick}
> >
Create <span>C</span>
<span>r</span>
<span>e</span>
<span>a</span>
<span>t</span>
<span>e</span>
</button> </button>
) )
} }
@ -64,8 +76,11 @@ function Definitions() {
hasCurrentUser, hasCurrentUser,
isEnabled, isEnabled,
isFetching: ctx.newGame.isFetching,
setFetching: (status) => { console.log("setFetching: ", status); dispatchCtx({ update: "newGame", isFetching: status }) },
get_GameProposalRequest, get_GameProposalRequest,
clear_Message2Opponent: () => { dispatchCtx({ update: "newGame", message: '' }) } clear_Message2Opponent: () => { dispatchCtx({ update: "newGame", message: '' }) },
} }
} }

View File

@ -1,11 +1,11 @@
import './GameMessage.css' import './GameMessage.css'
import React from 'react' import React from 'react'
import { AppContext } from '../../context/app' // import { AppContext } from '../../context/app'
export default function GameMessage() { export default function GameMessage() {
const [ctx] = React.useContext(AppContext) // const [ctx] = React.useContext(AppContext)
return ( return (
<div className='game-message'> <div className='game-message'>

View File

@ -8,14 +8,14 @@ import Proposal from './GameSelector/GameProposal';
export default function GameSelector() { export default function GameSelector() {
const [data] = React.useContext(AppData) const [data] = React.useContext(AppData)
const [ctx, dispatchCtx] = React.useContext(AppContext) const [/*ctx*/, dispatchCtx] = React.useContext(AppContext)
const { pathname } = useLocation(); const { pathname } = useLocation();
const isProposalPath = matchPath("/game/proposal/*", pathname); const isProposalPath = matchPath("/game/proposal/*", pathname);
const isActivelPath = matchPath("/game/active/*", pathname); const isActivelPath = matchPath("/game/active/*", pathname);
const isArchivePath = matchPath("/game/archive/*", pathname); const isArchivePath = matchPath("/game/archive/*", pathname);
console.log("GameSelector appCtx", ctx) // console.log("GameSelector appCtx", ctx)
const onClick_proposal = (selectedGame) => { const onClick_proposal = (selectedGame) => {
dispatchCtx({ component: "game-selector", selectedGameProposal: selectedGame }) dispatchCtx({ component: "game-selector", selectedGameProposal: selectedGame })

View File

@ -1,9 +1,9 @@
import './index.css'; import './Header.css';
import './wave.css' import './woble.css'
import React from "react" import React from "react"
import { NavLink } from "react-router-dom"; import { NavLink } from "react-router-dom";
import OnlineToggle from '../OnlineTgl'; import OnlineToggle from './OnlineTgl';
import { AppData } from "../../context/data" import { AppData } from "../context/data"
export default function Header() { export default function Header() {
const [data] = React.useContext(AppData) const [data] = React.useContext(AppData)

View File

@ -2,16 +2,6 @@
.woble { .woble {
display: flex; display: flex;
cursor: pointer;
justify-content: center;
align-items: center;
/* text-transform: uppercase; */
/* font-size: 1.5rem; */
/* padding: 1rem 2rem; */
/* background-color: black; */
/* color: white; */
/* border-radius: 100px; */
/* gap: 1rem; */
} }
/* .wave > span { /* .wave > span {

View File

@ -25,6 +25,7 @@ export const initialState = {
whitePlayer: '', whitePlayer: '',
blackPlayer: '', blackPlayer: '',
message: '', message: '',
isFetching: false,
}, },
} }