|
@@ -4,19 +4,27 @@ import ClickMarkerMap from './ClickMarkerMap';
|
|
|
import styles from './GuessPane.module.css';
|
|
|
import RoundTimer from './RoundTimer';
|
|
|
|
|
|
+const mapSizeOpts = {
|
|
|
+ small: styles['pane--small'],
|
|
|
+ medium: styles['pane--medium'],
|
|
|
+ big: styles['pane--big'],
|
|
|
+}
|
|
|
+
|
|
|
+const toggleMapSize = larger => b => b === 'big' || b === 'medium' ? 'small' : larger;
|
|
|
+
|
|
|
export default () => {
|
|
|
const [ selectedPoint, setSelectedPoint ] = useState(null);
|
|
|
const [ submitted, setSubmitted ] = useState(false);
|
|
|
- const [ bigMap, setBigMap ] = useState(false);
|
|
|
+ const [ mapSize, setMapSize ] = useState('small');
|
|
|
|
|
|
useEffect(() => {
|
|
|
const listener = event => {
|
|
|
if (event.code === 'Escape') {
|
|
|
- setBigMap(b => !b);
|
|
|
+ setMapSize(toggleMapSize('big'));
|
|
|
}
|
|
|
}
|
|
|
- document.addEventListener("keydown", listener, false);
|
|
|
- return () => document.removeEventListener("keydown", listener, false);
|
|
|
+ document.addEventListener('keydown', listener, false);
|
|
|
+ return () => document.removeEventListener('keydown', listener, false);
|
|
|
|
|
|
}, [])
|
|
|
|
|
@@ -28,7 +36,7 @@ export default () => {
|
|
|
};
|
|
|
|
|
|
return (
|
|
|
- <div className={`${styles.pane} ${bigMap ? styles['pane--big'] : styles['pane--small']}`}>
|
|
|
+ <div className={`${styles.pane} ${mapSizeOpts[mapSize]}`}>
|
|
|
<button
|
|
|
className={styles.submit}
|
|
|
onClick={handleSubmitGuess}
|
|
@@ -38,8 +46,11 @@ export default () => {
|
|
|
</button>
|
|
|
<ClickMarkerMap onMarkerMoved={setSelectedPoint} />
|
|
|
<RoundTimer onTimeout={handleSubmitGuess} />
|
|
|
- <div className={styles.resize} onClick={() => setBigMap(b => !b)}>
|
|
|
- {bigMap ? '↙️' : '↗️'}
|
|
|
+ <div className={styles.resize} onClick={() => setMapSize(toggleMapSize('big'))}>
|
|
|
+ { mapSize === 'big' ? '↙️' : '↗️' }
|
|
|
+ </div>
|
|
|
+ <div className={`${styles.resize} ${styles['resize--medium']}`} onClick={() => setMapSize(toggleMapSize('medium'))}>
|
|
|
+ { mapSize === 'medium' ? '⬅️' : '➡️' }
|
|
|
</div>
|
|
|
</div>
|
|
|
);
|