From 5aa3e5c7f89778983dda198bd16873d4b8c7fb8f Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Wed, 21 Jun 2023 02:17:28 -0700 Subject: [PATCH] Use snapshots to make tokens reactive This fixes #319 --- components/common/Token/index.scss | 3 +- components/party/PartyHeader/index.tsx | 73 +++++++++++++++++--------- 2 files changed, 51 insertions(+), 25 deletions(-) diff --git a/components/common/Token/index.scss b/components/common/Token/index.scss index 8b7eb097..3d3020bf 100644 --- a/components/common/Token/index.scss +++ b/components/common/Token/index.scss @@ -19,7 +19,8 @@ color: var(--full-auto-text); } - &.AutoGuard.On { + &.AutoGuard.On, + &.AutoSummon.On { background: var(--auto-guard-bg); color: var(--auto-guard-text); } diff --git a/components/party/PartyHeader/index.tsx b/components/party/PartyHeader/index.tsx index 2e192d51..b3912330 100644 --- a/components/party/PartyHeader/index.tsx +++ b/components/party/PartyHeader/index.tsx @@ -49,6 +49,7 @@ const PartyHeader = (props: Props) => { const [chargeAttack, setChargeAttack] = useState(true) const [fullAuto, setFullAuto] = useState(false) const [autoGuard, setAutoGuard] = useState(false) + const [autoSummon, setAutoSummon] = useState(false) const [buttonCount, setButtonCount] = useState(undefined) const [chainCount, setChainCount] = useState(undefined) @@ -78,6 +79,7 @@ const PartyHeader = (props: Props) => { setName(props.party.name) setAutoGuard(props.party.auto_guard) setFullAuto(props.party.full_auto) + setAutoSummon(props.party.auto_summon) setChargeAttack(props.party.charge_attack) setClearTime(props.party.clear_time) if (props.party.turn_count) setTurnCount(props.party.turn_count) @@ -212,12 +214,12 @@ const PartyHeader = (props: Props) => { {`${t('party.details.labels.charge_attack')} ${ - chargeAttack ? 'On' : 'Off' + party.chargeAttack ? 'On' : 'Off' }`} ) @@ -226,11 +228,13 @@ const PartyHeader = (props: Props) => { - {`${t('party.details.labels.full_auto')} ${fullAuto ? 'On' : 'Off'}`} + {`${t('party.details.labels.full_auto')} ${ + party.fullAuto ? 'On' : 'Off' + }`} ) @@ -238,37 +242,57 @@ const PartyHeader = (props: Props) => { - {`${t('party.details.labels.auto_guard')} ${autoGuard ? 'On' : 'Off'}`} + {`${t('party.details.labels.auto_guard')} ${ + party.autoGuard ? 'On' : 'Off' + }`} + + ) + + const autoSummonToken = ( + + {`${t('party.details.labels.auto_summon')} ${ + party.autoSummon ? 'On' : 'Off' + }`} ) const turnCountToken = ( {t('party.details.turns.with_count', { - count: turnCount, + count: party.turnCount, })} ) const buttonChainToken = () => { - if (buttonCount || chainCount) { + if (party.buttonCount || party.chainCount) { let string = '' - if (buttonCount && buttonCount > 0) { - string += `${buttonCount}b` + if (party.buttonCount && party.buttonCount > 0) { + string += `${party.buttonCount}b` } - if (!buttonCount && chainCount && chainCount > 0) { - string += `0${t('party.details.suffix.buttons')}${chainCount}${t( + if (!party.buttonCount && party.chainCount && party.chainCount > 0) { + string += `0${t('party.details.suffix.buttons')}${party.chainCount}${t( 'party.details.suffix.chains' )}` - } else if (buttonCount && chainCount && chainCount > 0) { - string += `${chainCount}${t('party.details.suffix.chains')}` - } else if (buttonCount && !chainCount) { + } else if ( + party.buttonCount && + party.chainCount && + party.chainCount > 0 + ) { + string += `${party.chainCount}${t('party.details.suffix.chains')}` + } else if (party.buttonCount && !party.chainCount) { string += `0${t('party.details.suffix.chains')}` } @@ -277,8 +301,8 @@ const PartyHeader = (props: Props) => { } const clearTimeToken = () => { - const minutes = Math.floor(clearTime / 60) - const seconds = clearTime - minutes * 60 + const minutes = Math.floor(party.clearTime / 60) + const seconds = party.clearTime - minutes * 60 let string = '' if (minutes > 0) @@ -296,8 +320,9 @@ const PartyHeader = (props: Props) => { {chargeAttackToken} {fullAutoToken} {autoGuardToken} - {turnCount ? turnCountToken : ''} - {clearTime > 0 ? clearTimeToken() : ''} + {autoSummonToken} + {party.turnCount ? turnCountToken : ''} + {party.clearTime > 0 ? clearTimeToken() : ''} {buttonChainToken()} ) @@ -341,8 +366,8 @@ const PartyHeader = (props: Props) => {
-

- {name ? name : t('no_title')} +

+ {party.name ? party.name : t('no_title')}

{party.remix && party.sourceParty ? (