From 94d37e9d33cd4baeed9232a1dde1c886a342b3d0 Mon Sep 17 00:00:00 2001 From: Jonathan Gamble Date: Wed, 15 Jan 2025 08:42:32 -0600 Subject: [PATCH] troubleshoot iOS < 10 oauth button --- modules/oauth/src/main/ui/AuthorizeUi.scala | 2 +- ui/bits/src/bits.oauth.ts | 6 ++---- ui/local/src/gameCtrl.ts | 4 ++-- ui/local/src/localGame.ts | 20 ++++++++++---------- ui/local/src/types.ts | 2 +- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/modules/oauth/src/main/ui/AuthorizeUi.scala b/modules/oauth/src/main/ui/AuthorizeUi.scala index ecb7b2b876e0a..33267504ff99c 100644 --- a/modules/oauth/src/main/ui/AuthorizeUi.scala +++ b/modules/oauth/src/main/ui/AuthorizeUi.scala @@ -58,7 +58,7 @@ final class AuthorizeUi(helpers: Helpers)(lightUserFallback: UserId => LightUser ) case None => submitButton( - cls := List(s"${buttonClass(prompt)} disabled" -> true, "danger" -> isDanger), + cls := List(s"${buttonClass(prompt)} disabled" -> true), dataIcon := isDanger.option(Icon.CautionTriangle), disabled := true, id := "oauth-authorize", diff --git a/ui/bits/src/bits.oauth.ts b/ui/bits/src/bits.oauth.ts index 84567a2439fef..cc001553c726d 100644 --- a/ui/bits/src/bits.oauth.ts +++ b/ui/bits/src/bits.oauth.ts @@ -2,13 +2,11 @@ // as the oauth page can be embedded in very dubious webviews const el: HTMLElement = document.getElementById('oauth-authorize')!; -const danger: boolean = el.classList.contains('danger'); setTimeout( () => { el.removeAttribute('disabled'); - el.className = 'button'; - if (danger) el.classList.add('button-red', 'ok-cancel-confirm', 'text'); + el.classList.remove('disabled'); }, - danger ? 5000 : 2000, + el.classList.contains('button-red') ? 5000 : 2000, ); diff --git a/ui/local/src/gameCtrl.ts b/ui/local/src/gameCtrl.ts index bbdbc0617c470..d1ad93eeef70f 100644 --- a/ui/local/src/gameCtrl.ts +++ b/ui/local/src/gameCtrl.ts @@ -46,10 +46,10 @@ export class GameCtrl { this.triggerStart(); } - reset(params: LocalSetup): void { + reset(params?: LocalSetup): void { this.stop(); this.history = undefined; - this.live = new LocalGame({ setup: { ...params } }); + this.live = new LocalGame({ setup: { ...this.live.setup, ...params } }); env.bot.reset(); env.bot.setUids(this.live); env.assets.preload(); diff --git a/ui/local/src/localGame.ts b/ui/local/src/localGame.ts index b325a0c4893f7..08d0596e0363f 100644 --- a/ui/local/src/localGame.ts +++ b/ui/local/src/localGame.ts @@ -180,16 +180,6 @@ export class LocalGame implements LocalSetup { return co.fen.makeFen(this.chess.toSetup()); } - get setup(): LocalSetup { - return { - initialFen: this.initialFen, - initial: this.initial, - increment: this.increment, - white: this.white, - black: this.black, - }; - } - get dests(): { [from: string]: string } { return Object.fromEntries([...this.cgDests].map(([src, dests]) => [src, dests.join('')])); } @@ -226,6 +216,16 @@ export class LocalGame implements LocalSetup { } return draws; } + + get setup(): LocalSetup { + return { + initialFen: this.initialFen, + initial: this.initial, + increment: this.increment, + white: this.white, + black: this.black, + }; + } } export function normalMove(chess: co.Chess, uci: Uci): { uci: Uci; move: co.NormalMove } | undefined { diff --git a/ui/local/src/types.ts b/ui/local/src/types.ts index 4b001cd282d1d..057ee8ec3a5cd 100644 --- a/ui/local/src/types.ts +++ b/ui/local/src/types.ts @@ -70,7 +70,7 @@ export type MoveResult = { uci: string; thinkTime: Seconds }; export interface LocalSetup { white?: string; black?: string; - initialFen?: string; + initialFen?: FEN; initial?: Seconds; increment?: Seconds; go?: boolean;