diff options
-rw-r--r-- | components/dialogBox.tsx | 19 | ||||
-rw-r--r-- | components/gameSettings.tsx | 85 | ||||
-rw-r--r-- | pages/_app.tsx | 1 | ||||
-rw-r--r-- | styles/gameSettings.css | 59 | ||||
-rw-r--r-- | styles/ui.css | 10 |
5 files changed, 92 insertions, 82 deletions
diff --git a/components/dialogBox.tsx b/components/dialogBox.tsx index 0a61762..4ead7c5 100644 --- a/components/dialogBox.tsx +++ b/components/dialogBox.tsx @@ -9,20 +9,15 @@ export function DialogBox(props: { title: string; onclick?: () => void; hidden?: boolean; + className?: string; }) { - return <Vierkant className={'dialogbox drop-2 pad-l posfix abscenter ' + (props.hidden ? 'dispnone' : '')}> - <h2 style={{ marginBottom: 24 }}>{props.title}</h2> + return <Vierkant + className={'dialogbox drop-2 pad-l posfix abscenter ' + (props.hidden ? 'dispnone' : '') + ' ' + + props.className} + > + <h2 className='title'>{props.title}</h2> <span onClick={props.onclick}> - <CancelIcon - style={{ - position: 'absolute', - top: 25, - right: 25, - color: 'var(--text)', - opacity: .85, - cursor: 'pointer', - }} - /> + <CancelIcon className='posabs close icon subtile' /> </span> {props.children} </Vierkant>; diff --git a/components/gameSettings.tsx b/components/gameSettings.tsx index 3c3a699..bb01284 100644 --- a/components/gameSettings.tsx +++ b/components/gameSettings.tsx @@ -30,60 +30,24 @@ export function CurrentGameSettings() { .catch(() => {}); }, []); - /* showEditGameRules = () => this.setState({ editGameRulesDialogVisible: true }); */ - /* hideEditGameRules = () => this.setState({ editGameRulesDialogVisible: false }); */ - /* setGameRules = (newRules: ruleset) => this.setState({ ruleset: newRules }); */ - var timelimit_str = ruleset.timelimit.enabled ? `${ruleset.timelimit.minutes}m${ruleset.timelimit.seconds}s plus ${ruleset.timelimit.addmove}` : 'Geen tijdslimiet'; var ranked_str = ruleset.ranked ? 'Gerangschikt' : 'Niet gerangschikt'; - return <div - style={{ - position: 'relative', - height: 80, - overflow: 'visible', - zIndex: 1, - }} - > - <p - className='subtile nosel posabs' - style={{ - top: '50%', - left: 0, - transform: 'translateY(-50%)', - }} - > + return <div className='editGameSettings posrel'> + <p className='currentRules subtile nosel posabs l0'> {timelimit_str} <br /> {ranked_str} </p> <Button - style={{ - width: 150, - position: 'absolute', - top: '50%', - right: 0, - transform: 'translateY(-50%)', - }} + className='posabs r0 pad-m' onclick={() => setEditGameRulesDialogVisible(true)} > - <BuildOutlinedIcon style={{ fontSize: 48 }} /> - <span - style={{ - fontWeight: 600, - position: 'absolute', - right: 24, - top: '50%', - width: 85, - verticalAlign: 'middle', - textAlign: 'center', - transform: 'translateY(-50%)', - userSelect: 'none', - }} - > + <BuildOutlinedIcon className='icon' /> + <span className='posabs center nosel text'> Spelregels aanpassen </span> </Button> @@ -105,13 +69,7 @@ function GameSettingsSection(props: { }) { return <Vierkant id={props.id} - style={{ - backgroundColor: 'var(--background-alt)', - width: '100%', - padding: 16, - margin: 0, - marginBottom: props.noMarginBottom ? 0 : 24, - }} + className='pad-m editableRulesSection' > <span style={{ @@ -166,28 +124,15 @@ export function EditGameSettings(props: editGameSettingsProps) { title='Spelregels aanpassen' hidden={!props.visible} onclick={props.hideEditGameRules} + className='gameRuleEdit' > - <div - style={{ - marginTop: 24, - maxHeight: 500, - overflowY: 'scroll', - borderRadius: 8, - }} - > + <div className='editableRules round-t'> <GameSettingsSection title='Tijdslimiet' state={props.ruleset.timelimit.enabled} id='timelimit' > - <div - style={{ - display: 'grid', - gridTemplateColumns: '1fr 1fr 1fr', - gridGap: 16, - margin: '16px 0', - }} - > + <div className='sidebyside timeControls'> <Input id='timelimit_minutes' type='number' @@ -195,6 +140,7 @@ export function EditGameSettings(props: editGameSettingsProps) { min={0} max={60} value={props.ruleset.timelimit.minutes} + className='pad-m round-t' /> <Input id='timelimit_seconds' @@ -203,6 +149,7 @@ export function EditGameSettings(props: editGameSettingsProps) { min={0} max={60} value={props.ruleset.timelimit.seconds} + className='pad-m round-t' /> <Input id='timelimit_addmove' @@ -210,19 +157,20 @@ export function EditGameSettings(props: editGameSettingsProps) { label='plus' min={0} value={props.ruleset.timelimit.addmove} + className='pad-m round-t' /> </div> <CheckBox id='timelimit_shared' state={props.ruleset.timelimit.shared} /> <span + className='valignsup' style={{ - verticalAlign: 'super', marginLeft: 4, }} > Timer gebruiken voor bijde spelers </span> </GameSettingsSection> - {false && <GameSettingsSection title='Regelset' state={false}> + {false && <GameSettingsSection id='gamemodes' title='Regelset' state={false}> <div style={{ display: 'grid', @@ -245,10 +193,7 @@ export function EditGameSettings(props: editGameSettingsProps) { /> </div> <Button - style={{ - textAlign: 'center', - marginTop: 24, - }} + className='save' onclick={() => { var rules: ruleset = { timelimit: { diff --git a/pages/_app.tsx b/pages/_app.tsx index bbdbae8..9521d58 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -11,6 +11,7 @@ import '../styles/navbar.css'; import '../styles/ui.css'; import '../styles/utility.css'; +import '../styles/gameSettings.css'; import '../styles/index.css'; import '../styles/search.css'; import '../styles/settings.css'; diff --git a/styles/gameSettings.css b/styles/gameSettings.css new file mode 100644 index 0000000..533cea0 --- /dev/null +++ b/styles/gameSettings.css @@ -0,0 +1,59 @@ +.editGameSettings { + height: 80px; + overflow: visible; + z-index: 1; +} + +.editGameSettings .currentRules { + top: 50%; + transform: translateY(-50%); +} + +.editGameSettings > .button { + width: 150px; + top: 50%; + transform: translateY(-50%); + text-align: left; +} + +.editGameSettings > .button .icon { + font-size: 48px; +} + +.editGameSettings > .button .text { + right: var(--spacing-medium); + width: 85px; + top: 50%; + vertical-align: middle; + transform: translateY(-50%); +} + +.editGameSettings .editableRules { + margin-top: var(--spacing-large); + max-height: 500px; + overflow-y: scroll; +} + +.editGameSettings .editableRules .editableRulesSection { + width: 100%; + background-color: var(--gray-700); + margin: 0; + margin-bottom: var(--spacing-medium); +} + +.editGameSettings .button { + line-height: normal; +} + +.editGameSettings .editableRules .editableRulesSection .timeControls { + margin: var(--spacing-medium); + margin-left: 0; + margin-right: 0; +} + +.editGameSettings .editableRules .editableRulesSection .timeControls input { + background-color: var(--background); + + width: calc(100% - 2 * var(--spacing-medium)); +} + diff --git a/styles/ui.css b/styles/ui.css index efc96b7..55b24e2 100644 --- a/styles/ui.css +++ b/styles/ui.css @@ -70,3 +70,13 @@ width: 392px; } +.dialogbox > .title { + margin-bottom: var(--spacing-large); +} + +.dialogbox .icon.close { + top: 25px; + right: 25px; + cursor: pointer; +} + |