front: GameAction and GameBoard
This commit is contained in:
		
							parent
							
								
									a2de2331cf
								
							
						
					
					
						commit
						7c2a3329a7
					
				
							
								
								
									
										73
									
								
								webapp/src/components/Game/GameAction.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								webapp/src/components/Game/GameAction.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,73 @@
 | 
				
			|||||||
 | 
					.action-panel {
 | 
				
			||||||
 | 
					    margin-bottom: 10px;
 | 
				
			||||||
 | 
					    /* background-color: lightgrey; */
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    /* padding-top: 8px;
 | 
				
			||||||
 | 
					    padding-bottom: 8px; */
 | 
				
			||||||
 | 
					    color: black;
 | 
				
			||||||
 | 
					    padding-left: -10px;
 | 
				
			||||||
 | 
					    /* */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    margin-left: 10px;
 | 
				
			||||||
 | 
					    border: 0.5px dotted lightslategray; 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action {
 | 
				
			||||||
 | 
					    width:fit-content;
 | 
				
			||||||
 | 
					    padding: 8px;
 | 
				
			||||||
 | 
					    padding-left: 15px;
 | 
				
			||||||
 | 
					    padding-right: 15px;
 | 
				
			||||||
 | 
					    border-radius: 10px;
 | 
				
			||||||
 | 
					    border: 0.5px solid darkgrey; 
 | 
				
			||||||
 | 
					    margin: 2px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.create:hover {
 | 
				
			||||||
 | 
					    background-color:#00b0ff60;  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.create:active {
 | 
				
			||||||
 | 
					    background-color:#00b0ffa0;  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.cancel:hover,
 | 
				
			||||||
 | 
					.game-action.reject:hover {
 | 
				
			||||||
 | 
					    background-color:#ff000030
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.cancel:active,
 | 
				
			||||||
 | 
					.game-action.reject:active {
 | 
				
			||||||
 | 
					    background-color:#ff000080
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.accept:hover {
 | 
				
			||||||
 | 
					    background-color: #00af0030;  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action.accept:active {
 | 
				
			||||||
 | 
					    background-color:#00af0080;  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* .game-header a {
 | 
				
			||||||
 | 
					    color:darkgrey;
 | 
				
			||||||
 | 
					    text-decoration: none;
 | 
				
			||||||
 | 
					    transition: .25s ease;
 | 
				
			||||||
 | 
					    margin-left: 5px;
 | 
				
			||||||
 | 
					    margin-right: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-action .active {
 | 
				
			||||||
 | 
					    color: white;
 | 
				
			||||||
 | 
					    border-radius: 2px;
 | 
				
			||||||
 | 
					    background-color: cadetblue;
 | 
				
			||||||
 | 
					    opacity: 80%;
 | 
				
			||||||
 | 
					    padding-top: 8px;
 | 
				
			||||||
 | 
					    padding-bottom: 8px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.game-header a:hover:not(.active) {
 | 
				
			||||||
 | 
					    color: cadetblue; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    box-shadow: 0 1.5px 0 0 currentColor;
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
							
								
								
									
										24
									
								
								webapp/src/components/Game/GameAction.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								webapp/src/components/Game/GameAction.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					import './GameAction.css';
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Create from './GameAction/Create'
 | 
				
			||||||
 | 
					import Reject from './GameAction/Reject'
 | 
				
			||||||
 | 
					import Cancel from './GameAction/Cancel'
 | 
				
			||||||
 | 
					import Accept from './GameAction/Accept'
 | 
				
			||||||
 | 
					import { AppContext } from '../../context/app'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function GameAction() {
 | 
				
			||||||
 | 
					  const [ctx, dispatchCtx] = React.useContext(AppContext)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <div>
 | 
				
			||||||
 | 
					      <div className='action-panel'>
 | 
				
			||||||
 | 
					        <Create />
 | 
				
			||||||
 | 
					        <Reject />
 | 
				
			||||||
 | 
					        <Cancel />
 | 
				
			||||||
 | 
					        <Accept />
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      {/* {isProposalPath && <Proposal games={data.games} />} */}
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								webapp/src/components/Game/GameAction/Accept.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								webapp/src/components/Game/GameAction/Accept.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Accept() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return <button className='game-action accept'>Accept</button>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								webapp/src/components/Game/GameAction/Cancel.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								webapp/src/components/Game/GameAction/Cancel.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Cancel() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return <button className='game-action cancel'>Cancel</button>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								webapp/src/components/Game/GameAction/Create.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								webapp/src/components/Game/GameAction/Create.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					import React/*, {useState}*/ from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Create() {
 | 
				
			||||||
 | 
					    // const [pending, setPending] = useState([])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // for (const [key, value] of Object.entries(pending))
 | 
				
			||||||
 | 
					    //     console.log("pending ", key, value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // function sendRequest(reject_uuid) {
 | 
				
			||||||
 | 
					    //     setPending(             // Replace the old array
 | 
				
			||||||
 | 
					    //         [                   // with a new array consisting of:
 | 
				
			||||||
 | 
					    //             ...pending,     // - all the old items
 | 
				
			||||||
 | 
					    //             { uuid: reject_uuid }  // - and a new item at the end
 | 
				
			||||||
 | 
					    //         ]
 | 
				
			||||||
 | 
					    //     )
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // return <button className="action" onClick={() => sendRequest(uuid) }>
 | 
				
			||||||
 | 
					    //     Reject
 | 
				
			||||||
 | 
					    //     </button>
 | 
				
			||||||
 | 
					    return <button className='game-action create'>Create</button>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								webapp/src/components/Game/GameAction/Reject.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								webapp/src/components/Game/GameAction/Reject.jsx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default function Reject() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return <button className='game-action reject'>Reject</button>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import './index.css';
 | 
					import './GameBoard.css';
 | 
				
			||||||
import React from 'react';
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { WhiteStone, BlackStone } from '../Game/Stone' 
 | 
					import { WhiteStone, BlackStone } from './Stone' 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default function Board() {
 | 
					export default function Board() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,21 +0,0 @@
 | 
				
			|||||||
import React, {useState} from 'react';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default function Reject({uuid}) {
 | 
					 | 
				
			||||||
    const [pending, setPending] = useState([])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (const [key, value] of Object.entries(pending))
 | 
					 | 
				
			||||||
        console.log("pending ", key, value);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    function sendRequest(reject_uuid) {
 | 
					 | 
				
			||||||
        setPending(             // Replace the old array
 | 
					 | 
				
			||||||
            [                   // with a new array consisting of:
 | 
					 | 
				
			||||||
                ...pending,     // - all the old items
 | 
					 | 
				
			||||||
                { uuid: reject_uuid }  // - and a new item at the end
 | 
					 | 
				
			||||||
            ]
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return <button className="action" onClick={() => sendRequest(uuid) }>
 | 
					 | 
				
			||||||
        Reject
 | 
					 | 
				
			||||||
        </button>
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -2,7 +2,8 @@ import './index.css';
 | 
				
			|||||||
import React from 'react';
 | 
					import React from 'react';
 | 
				
			||||||
import GameHeader from './GameHeader'
 | 
					import GameHeader from './GameHeader'
 | 
				
			||||||
import GameSelector from './GameSelector'
 | 
					import GameSelector from './GameSelector'
 | 
				
			||||||
import Board from '../Board'
 | 
					import GameAction from './GameAction'
 | 
				
			||||||
 | 
					import GameBoard from './GameBoard'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// import { AppData } from "../../context/data"
 | 
					// import { AppData } from "../../context/data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -16,7 +17,8 @@ export default function Game() {
 | 
				
			|||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div className='split right'>
 | 
					    <div className='split right'>
 | 
				
			||||||
      <Board />
 | 
					      <GameAction />
 | 
				
			||||||
 | 
					      <GameBoard />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user