mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-08-05 15:34:30 +00:00
Update game timer UI (#2577)
## Description: - use hh:mm:ss for timer format or mm:ss if no hours are present - refactor classes and code to be simpler - move timer inline with the buttons so the whole ui is smaller for more game space - update fast forward icon to better represent what it does - move replay controls below game time ui ### Before: <img width="218" height="155" alt="image" src="https://github.com/user-attachments/assets/bfdbe571-3ec5-4c02-840b-112e8e3caab1" /> <img width="360" height="171" alt="image" src="https://github.com/user-attachments/assets/ceee2923-fec8-4ebc-b9de-4b30a47b38a8" /> <img width="192" height="136" alt="image" src="https://github.com/user-attachments/assets/8f8f464c-48e4-42c1-b378-51be2b1fc405" /> ### After: <img width="287" height="106" alt="image" src="https://github.com/user-attachments/assets/30246189-9795-4822-b857-0af524cacb92" /> <img width="294" height="180" alt="image" src="https://github.com/user-attachments/assets/065285ca-ae46-4481-9dd5-00d3bb4fcfb3" /> <img width="290" height="182" alt="image" src="https://github.com/user-attachments/assets/c1b3da39-0785-4d50-8105-c028fa496963" /> <img width="213" height="88" alt="image" src="https://github.com/user-attachments/assets/41e0a84c-2f68-4d24-9923-dd92bb70d161" /> ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: `rovi.`
This commit is contained in:
@@ -66,15 +66,15 @@ export class ReplayPanel extends LitElement implements Layer {
|
||||
|
||||
return html`
|
||||
<div
|
||||
class="flex-shrink-0 bg-opacity-60 bg-gray-900 p-1 lg:p-2 rounded-es-sm lg:rounded-lg backdrop-blur-md"
|
||||
class="p-2 bg-gray-800/70 backdrop-blur-sm shadow-xs rounded-lg"
|
||||
@contextmenu=${(e: Event) => e.preventDefault()}
|
||||
>
|
||||
<label class="block mb-1 text-white" translate="no">
|
||||
<label class="block mb-2 text-white" translate="no">
|
||||
${this.game?.config()?.isReplay()
|
||||
? translateText("replay_panel.replay_speed")
|
||||
: translateText("replay_panel.game_speed")}
|
||||
</label>
|
||||
<div class="grid grid-cols-2 gap-1">
|
||||
<div class="grid grid-cols-4 gap-2">
|
||||
${this.renderSpeedButton(ReplaySpeedMultiplier.slow, "×0.5")}
|
||||
${this.renderSpeedButton(ReplaySpeedMultiplier.normal, "×1")}
|
||||
${this.renderSpeedButton(ReplaySpeedMultiplier.fast, "×2")}
|
||||
@@ -88,12 +88,12 @@ export class ReplayPanel extends LitElement implements Layer {
|
||||
}
|
||||
|
||||
private renderSpeedButton(value: ReplaySpeedMultiplier, label: string) {
|
||||
const isActive = this._replaySpeedMultiplier === value;
|
||||
const backgroundColor =
|
||||
this._replaySpeedMultiplier === value ? "bg-blue-400" : "";
|
||||
|
||||
return html`
|
||||
<button
|
||||
class="text-white font-bold py-0 rounded border transition ${isActive
|
||||
? "bg-blue-500 border-gray-400"
|
||||
: "border-gray-500"}"
|
||||
class="py-0.5 px-1 text-sm text-white rounded border transition border-gray-500 ${backgroundColor} hover:border-gray-200"
|
||||
@click=${() => this.onReplaySpeedChange(value)}
|
||||
>
|
||||
${label}
|
||||
|
||||
Reference in New Issue
Block a user