diff --git a/packages/apps/algo-app/src/components/balloon/decided-answer-balloon.tsx b/packages/apps/algo-app/src/components/balloon/decided-answer-balloon.tsx index 02a3c13b00..ea1041d53c 100644 --- a/packages/apps/algo-app/src/components/balloon/decided-answer-balloon.tsx +++ b/packages/apps/algo-app/src/components/balloon/decided-answer-balloon.tsx @@ -77,38 +77,38 @@ export const DecidedAnswerBalloon = memoNamed( - + diff --git a/packages/apps/algo-app/src/components/bp/spinner.tsx b/packages/apps/algo-app/src/components/bp/spinner.tsx index 7ea2acf034..d04e7a3bf2 100644 --- a/packages/apps/algo-app/src/components/bp/spinner.tsx +++ b/packages/apps/algo-app/src/components/bp/spinner.tsx @@ -59,7 +59,7 @@ export const Spinner = memoNamed('Spinner', ({ size: _size, value }) => { // - SPINNER_ANIMATION isolates svg from parent display and is always centered inside root element. return ( // eslint-disable-next-line jsx-a11y/prefer-tag-over-role - + ( onMouseLeave={onMouseLeave} > ( visibilityFromMe === 'faceDownButVisibleToMe' ? ( <> @@ -155,10 +155,10 @@ export const CardComponent = memoNamed( ( <> - + - + )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-1.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-1.tsx index e63da61d3b..618663e606 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-1.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-1.tsx @@ -2,7 +2,7 @@ import { type CardProps } from './card-props'; export const Card1 = memoNamed('Card1', ({ textColor }: CardProps) => ( )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-10.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-10.tsx index ac275cf222..97ed52ca12 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-10.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-10.tsx @@ -3,25 +3,25 @@ import { type CardProps } from './card-props'; export const Card10 = memoNamed('Card10', ({ color, textColor }: CardProps) => ( <> - + - + diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-11.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-11.tsx index d8c9bc9bb6..419bdcc17c 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-11.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-11.tsx @@ -3,11 +3,11 @@ import { type CardProps } from './card-props'; export const Card11 = memoNamed('Card11', ({ textColor }: CardProps) => ( <> diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-2.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-2.tsx index e0be54c9ad..744ffbd430 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-2.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-2.tsx @@ -3,23 +3,23 @@ import { type CardProps } from './card-props'; export const Card2 = memoNamed('Card2', ({ textColor }: CardProps) => ( <> diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-3.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-3.tsx index c2a2170f4a..af93c0e48a 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-3.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-3.tsx @@ -3,20 +3,20 @@ import { type CardProps } from './card-props'; export const Card3 = memoNamed('Card3', ({ color, textColor }: CardProps) => ( <> - + diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-4.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-4.tsx index 856d9c3f12..b5c6cd8716 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-4.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-4.tsx @@ -2,7 +2,7 @@ import { type CardProps } from './card-props'; export const Card4 = memoNamed('Card4', ({ textColor }: CardProps) => ( )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-5.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-5.tsx index c5a462e44a..0955447f45 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-5.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-5.tsx @@ -2,15 +2,15 @@ import { type CardProps } from './card-props'; export const Card5 = memoNamed('Card5', ({ color, textColor }: CardProps) => ( <> - + - - + + diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-6.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-6.tsx index 0bef612fe1..28a8779550 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-6.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-6.tsx @@ -3,10 +3,10 @@ import { type CardProps } from './card-props'; export const Card6 = memoNamed('Card6', ({ color, textColor }: CardProps) => ( <> - - + + )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-7.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-7.tsx index db9e511447..26bb0d19b2 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-7.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-7.tsx @@ -2,7 +2,7 @@ import { type CardProps } from './card-props'; export const Card7 = memoNamed('Card7', ({ textColor }: CardProps) => ( )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-8.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-8.tsx index 4b609f245b..9b046d4da2 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-8.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-8.tsx @@ -2,12 +2,12 @@ import { type CardProps } from './card-props'; export const Card8 = memoNamed('Card8', ({ color, textColor }: CardProps) => ( <> - + - - + + )); diff --git a/packages/apps/algo-app/src/components/card/cards-sub/card-9.tsx b/packages/apps/algo-app/src/components/card/cards-sub/card-9.tsx index 96413c1dc6..5c81e4bd5d 100644 --- a/packages/apps/algo-app/src/components/card/cards-sub/card-9.tsx +++ b/packages/apps/algo-app/src/components/card/cards-sub/card-9.tsx @@ -2,10 +2,10 @@ import { type CardProps } from './card-props'; export const Card9 = memoNamed('Card9', ({ color, textColor }: CardProps) => ( <> - - + + diff --git a/packages/apps/algo-app/src/components/create-room-page.tsx b/packages/apps/algo-app/src/components/create-room-page.tsx index 5d94f42a26..26b6704315 100644 --- a/packages/apps/algo-app/src/components/create-room-page.tsx +++ b/packages/apps/algo-app/src/components/create-room-page.tsx @@ -40,7 +40,7 @@ export const CreateRoomPage = memoNamed('CreateRoomPage', () => { @@ -50,7 +50,7 @@ export const CreateRoomPage = memoNamed('CreateRoomPage', () => { @@ -58,7 +58,7 @@ export const CreateRoomPage = memoNamed('CreateRoomPage', () => { diff --git a/packages/apps/algo-app/src/components/game-main.tsx b/packages/apps/algo-app/src/components/game-main.tsx index b9f9087647..dd8c8fb0b2 100644 --- a/packages/apps/algo-app/src/components/game-main.tsx +++ b/packages/apps/algo-app/src/components/game-main.tsx @@ -68,7 +68,7 @@ export const GameMain = memoNamed('GameMain', ({ windowSize }) => { {dictionary.gameMain.endTurnButton} diff --git a/packages/apps/algo-app/src/components/join-room-page.tsx b/packages/apps/algo-app/src/components/join-room-page.tsx index 90d4951bf7..4b25855881 100644 --- a/packages/apps/algo-app/src/components/join-room-page.tsx +++ b/packages/apps/algo-app/src/components/join-room-page.tsx @@ -56,7 +56,7 @@ export const JoinRoomPage = memoNamed('JoinRoomPage', ({ roomId }) => { @@ -70,7 +70,7 @@ export const JoinRoomPage = memoNamed('JoinRoomPage', ({ roomId }) => { @@ -78,7 +78,7 @@ export const JoinRoomPage = memoNamed('JoinRoomPage', ({ roomId }) => { {loading ? : {dc.button}} diff --git a/packages/apps/algo-app/src/components/organisms/turn-player-highlighter.tsx b/packages/apps/algo-app/src/components/organisms/turn-player-highlighter.tsx index fee821c701..4cbe761dc2 100644 --- a/packages/apps/algo-app/src/components/organisms/turn-player-highlighter.tsx +++ b/packages/apps/algo-app/src/components/organisms/turn-player-highlighter.tsx @@ -7,16 +7,19 @@ type Props = Readonly<{ export const TurnPlayerHighlighter = memoNamed( 'TurnPlayerHighlighter', - ({ position }) => ( - { + const style = useMemo( + () => ({ top: `${position.top - playerNameRectPadding}px`, left: `${position.left - playerNameRectPadding}px`, width: `${position.width + 2 * playerNameRectPadding}px`, height: `${position.height + 2 * playerNameRectPadding}px`, - }} - /> - ), + }), + [position.height, position.left, position.top, position.width], + ); + + return ; + }, ); const Rectangle = styled('div')` diff --git a/packages/apps/blueprintjs-playground-styled/src/components/input-group-view.tsx b/packages/apps/blueprintjs-playground-styled/src/components/input-group-view.tsx index d0808ea4b3..3c261b243a 100644 --- a/packages/apps/blueprintjs-playground-styled/src/components/input-group-view.tsx +++ b/packages/apps/blueprintjs-playground-styled/src/components/input-group-view.tsx @@ -29,7 +29,7 @@ export const InputGroupView = memoNamed( `} disabled={disabled} placeholder={placeholder} - type='text' + type={"text"} value={value} onChange={onChange} /> diff --git a/packages/apps/blueprintjs-playground-styled/src/components/numeric-input-view.tsx b/packages/apps/blueprintjs-playground-styled/src/components/numeric-input-view.tsx index e91ddae614..5486a80f20 100644 --- a/packages/apps/blueprintjs-playground-styled/src/components/numeric-input-view.tsx +++ b/packages/apps/blueprintjs-playground-styled/src/components/numeric-input-view.tsx @@ -61,40 +61,40 @@ export const NumericInputView = memoNamed( `} >
- -
- } + + + + + ), + [onSortAscClick, onSortDescClick], + ); + return ( - - - - } + content={popoverContent} isOpen={isOpen} placement={'bottom'} onClose={handleClose} diff --git a/packages/apps/event-schedule-app/src/components/organisms/confirm-email-dialog.tsx b/packages/apps/event-schedule-app/src/components/organisms/confirm-email-dialog.tsx index 18314382ca..65cc5c9830 100644 --- a/packages/apps/event-schedule-app/src/components/organisms/confirm-email-dialog.tsx +++ b/packages/apps/event-schedule-app/src/components/organisms/confirm-email-dialog.tsx @@ -45,7 +45,7 @@ export const ConfirmEmailDialog = memoNamed( ( // eslint-disable-next-line jsx-a11y/no-autofocus autoFocus={true} intent={state.emailFormIntent} - rightElement={ - + ), + [enterButtonDisabled, isWaitingResponse], + ); + + return ( + - {dc.button.deleteAccount} - - } + submitButton={submitButton} title={dc.deleteAccount.title} /> ); }, ); + +const verifyEmailInputLabel = ; diff --git a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/delete-account-dialog.tsx b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/delete-account-dialog.tsx index ef62484f68..fc348270d7 100644 --- a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/delete-account-dialog.tsx +++ b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/delete-account-dialog.tsx @@ -25,71 +25,99 @@ export const DeleteAccountDialog = memoNamed( passwordIsOpen, } = useObservableValue(DeleteAccountPageStore.state); - return ( - ( + + ), + [formState.isWaitingResponse, passwordIsOpen], + ); + + const body = useMemo( + () => ( +
+ - {dc.deleteAccount.verifyEmail}} - > - - - + + + {dc.reauthenticate.password}} - > - - } - type={passwordIsOpen ? 'text' : 'password'} - value={formState.password.inputValue} - onValueChange={DeleteAccountPageStore.inputPasswordHandler} - /> - -
- } + rightElement={passwordLockButton} + type={passwordIsOpen ? 'text' : 'password'} + value={formState.password.inputValue} + onValueChange={DeleteAccountPageStore.inputPasswordHandler} + /> + + + ), + [ + emailFormIntent, + formState.email.error, + formState.email.inputValue, + formState.isWaitingResponse, + formState.password.error, + formState.password.inputValue, + passwordFormIntent, + passwordIsOpen, + passwordLockButton, + ], + ); + + const submitButton = useMemo( + () => ( + + ), + [enterButtonDisabled, formState.isWaitingResponse], + ); + + return ( + - {dc.button.deleteAccount} - - } + submitButton={submitButton} title={dc.deleteAccount.title} /> ); }, ); + +const passwordInputLabel = ; +const verifyEmailInputLabel = ; diff --git a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-display-name-dialog.tsx b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-display-name-dialog.tsx index 7553178f1a..3864df0740 100644 --- a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-display-name-dialog.tsx +++ b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-display-name-dialog.tsx @@ -19,49 +19,66 @@ export const UpdateDisplayNameDialog = memoNamed( const { formState, displayNameFormIntent, enterButtonDisabled } = useObservableValue(UpdateDisplayNamePageStore.state); - return ( - ( +
+ - {dc.updateDisplayName.newDisplayName}} - > - - -
- } + type={'text'} + value={formState.displayName.inputValue} + onValueChange={UpdateDisplayNamePageStore.inputDisplayNameHandler} + /> + + + ), + [ + displayNameFormIntent, + formState.displayName.error, + formState.displayName.inputValue, + formState.isWaitingResponse, + ], + ); + + const submitButton = useMemo( + () => ( + + ), + [enterButtonDisabled, formState.isWaitingResponse], + ); + + return ( + - {dc.button.update} - - } + submitButton={submitButton} title={dc.updateDisplayName.title} /> ); }, ); + +const newDisplayNameInputLabel = ( + +); diff --git a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-email-dialog.tsx b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-email-dialog.tsx index acf7034744..263ca4e044 100644 --- a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-email-dialog.tsx +++ b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-email-dialog.tsx @@ -26,75 +26,102 @@ export const UpdateEmailDialog = memoNamed( passwordIsOpen, } = useObservableValue(UpdateEmailPageStore.state); - return ( - ( + + ), + [formState.isWaitingResponse, passwordIsOpen], + ); + + const body = useMemo( + () => ( +
+ +
{currentEmail ?? ''}
+
+ - {dc.updateEmail.currentEmail}} - > -
{currentEmail ?? ''}
-
- {dc.updateEmail.newEmail}} - > - - - + + + {dc.reauthenticate.password}} - > - - } - type={passwordIsOpen ? 'text' : 'password'} - value={formState.password.inputValue} - onValueChange={UpdateEmailPageStore.inputPasswordHandler} - /> - -
- } + rightElement={passwordLockButton} + type={passwordIsOpen ? 'text' : 'password'} + value={formState.password.inputValue} + onValueChange={UpdateEmailPageStore.inputPasswordHandler} + /> + + + ), + [ + currentEmail, + emailFormIntent, + formState.email.error, + formState.email.inputValue, + formState.isWaitingResponse, + formState.password.error, + formState.password.inputValue, + passwordFormIntent, + passwordIsOpen, + passwordLockButton, + ], + ); + + const submitButton = useMemo( + () => ( + + ), + [enterButtonDisabled, formState.isWaitingResponse], + ); + + return ( + - {dc.button.update} - - } + submitButton={submitButton} title={dc.updateEmail.title} /> ); }, ); + +const passwordInputLabel = ; +const currentEmailInputLabel = ; +const newEmailInputLabel = ; diff --git a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-password-dialog.tsx b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-password-dialog.tsx index 5a1cca9b02..149f1d7447 100644 --- a/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-password-dialog.tsx +++ b/packages/apps/event-schedule-app/src/components/organisms/update-user-info-dialog/update-password-dialog.tsx @@ -30,109 +30,151 @@ export const UpdatePasswordDialog = memoNamed( newPasswordIsOpen, } = useObservableValue(UpdatePasswordPageStore.state); - return ( - ( + + ), + [formState.isWaitingResponse, newPasswordIsOpen], + ); + + const oldPasswordInputButton = useMemo( + () => ( + + ), + [formState.isWaitingResponse, oldPasswordIsOpen], + ); + + const body = useMemo( + () => ( +
+ - {dc.updatePassword.currentEmail}} - style={hideStyle} - > - - + type={'email'} + value={currentEmail ?? ''} + onValueChange={noop} + /> + - + {dc.updatePassword.oldPassword}} - > - - } - type={oldPasswordIsOpen ? 'text' : 'password'} - value={formState.oldPassword.inputValue} - onValueChange={UpdatePasswordPageStore.inputOldPasswordHandler} - /> - + rightElement={oldPasswordInputButton} + type={oldPasswordIsOpen ? 'text' : 'password'} + value={formState.oldPassword.inputValue} + onValueChange={UpdatePasswordPageStore.inputOldPasswordHandler} + /> + - + {dc.updatePassword.newPassword}} - > - - + type={'password'} + value={formState.newPassword.password.inputValue} + onValueChange={UpdatePasswordPageStore.inputNewPasswordHandler} + /> + - + {dc.updatePassword.verifyNewPassword}} - > - - } - type={newPasswordIsOpen ? 'text' : 'password'} - value={formState.newPassword.passwordConfirmation.inputValue} - onValueChange={ - UpdatePasswordPageStore.inputNewPasswordConfirmationHandler - } - /> - -
- } + rightElement={newPasswordLockButton} + type={newPasswordIsOpen ? 'text' : 'password'} + value={formState.newPassword.passwordConfirmation.inputValue} + onValueChange={ + UpdatePasswordPageStore.inputNewPasswordConfirmationHandler + } + /> + + + ), + [ + currentEmail, + formState.isWaitingResponse, + formState.newPassword.password.error, + formState.newPassword.password.inputValue, + formState.newPassword.passwordConfirmation.error, + formState.newPassword.passwordConfirmation.inputValue, + formState.oldPassword.error, + formState.oldPassword.inputValue, + newPasswordFormIntent, + newPasswordIsOpen, + newPasswordLockButton, + oldPasswordFormIntent, + oldPasswordInputButton, + oldPasswordIsOpen, + ], + ); + + const submitButton = useMemo( + () => ( + + ), + [enterButtonDisabled, formState.isWaitingResponse], + ); + + return ( + - {dc.button.update} - - } + submitButton={submitButton} title={dc.updatePassword.title} /> ); }, ); + +const oldPasswordInputLabel = ; +const currentEmailInputLabel = ; +const newPasswordInputLabel = ; +const verifyNewPasswordInputLabel = ( + +); diff --git a/packages/apps/event-schedule-app/src/components/pages/answer-page/answer-page.tsx b/packages/apps/event-schedule-app/src/components/pages/answer-page/answer-page.tsx index a1d58efeae..d2426ce5bd 100644 --- a/packages/apps/event-schedule-app/src/components/pages/answer-page/answer-page.tsx +++ b/packages/apps/event-schedule-app/src/components/pages/answer-page/answer-page.tsx @@ -240,13 +240,7 @@ export const AnswerPage = memoNamed('AnswerPage', () => { addOnBlur={false} addOnPaste={false} leftIcon={'filter-list'} - rightElement={ -