mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-21 12:16:54 +00:00
Improve moble UI again ✨ (#3226)
## Description: - Fix HeadsUpMessage appearing above Settings modal - Fix HeadsUpMessage appearing above Leaderboard - Remove PlayerInfoOverlay show/hide animation (we need quick access to the data!) - Close PlayerInfoOverlay on tap outside the map (gray area) - Fix error when tapping gray area outside the map - Close PlayerInfoOverlay on click/tap on itself ## 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: FloPinguin
This commit is contained in:
@@ -108,7 +108,7 @@ export class GameLeftSidebar extends LitElement implements Layer {
|
|||||||
render() {
|
render() {
|
||||||
return html`
|
return html`
|
||||||
<aside
|
<aside
|
||||||
class=${`fixed top-0 min-[1200px]:top-4 left-0 min-[1200px]:left-4 z-1000 flex flex-col max-h-[calc(100vh-80px)] overflow-y-auto p-2 bg-gray-800/70 backdrop-blur-xs shadow-xs min-[1200px]:rounded-lg rounded-br-lg ${this.isLeaderboardShow || this.isTeamLeaderboardShow ? "max-[400px]:w-full max-[400px]:rounded-none" : ""} transition-all duration-300 ease-out transform ${
|
class=${`fixed top-0 min-[1200px]:top-4 left-0 min-[1200px]:left-4 z-900 flex flex-col max-h-[calc(100vh-80px)] overflow-y-auto p-2 bg-gray-800/70 backdrop-blur-xs shadow-xs min-[1200px]:rounded-lg rounded-br-lg ${this.isLeaderboardShow || this.isTeamLeaderboardShow ? "max-[400px]:w-full max-[400px]:rounded-none" : ""} transition-all duration-300 ease-out transform ${
|
||||||
this.isVisible ? "translate-x-0" : "hidden"
|
this.isVisible ? "translate-x-0" : "hidden"
|
||||||
}`}
|
}`}
|
||||||
style="margin-top: ${this.barOffset}px;"
|
style="margin-top: ${this.barOffset}px;"
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ export class HeadsUpMessage extends LitElement implements Layer {
|
|||||||
${this.toastMessage
|
${this.toastMessage
|
||||||
? html`
|
? html`
|
||||||
<div
|
<div
|
||||||
class="fixed top-6 left-1/2 -translate-x-1/2 z-[11001] px-6 py-4 rounded-xl transition-all duration-300 animate-fade-in-out"
|
class="fixed top-6 left-1/2 -translate-x-1/2 z-[800] px-6 py-4 rounded-xl transition-all duration-300 animate-fade-in-out"
|
||||||
style="max-width: 90vw; min-width: 200px; text-align: center;
|
style="max-width: 90vw; min-width: 200px; text-align: center;
|
||||||
background: ${this.toastColor === "red"
|
background: ${this.toastColor === "red"
|
||||||
? "rgba(239,68,68,0.1)"
|
? "rgba(239,68,68,0.1)"
|
||||||
@@ -169,7 +169,7 @@ export class HeadsUpMessage extends LitElement implements Layer {
|
|||||||
${this.isVisible
|
${this.isVisible
|
||||||
? html`
|
? html`
|
||||||
<div
|
<div
|
||||||
class="fixed top-[15%] left-1/2 -translate-x-1/2 z-[11000]
|
class="fixed top-[15%] left-1/2 -translate-x-1/2 z-[799]
|
||||||
inline-flex items-center justify-center min-h-8 lg:min-h-10
|
inline-flex items-center justify-center min-h-8 lg:min-h-10
|
||||||
w-fit max-w-[90vw]
|
w-fit max-w-[90vw]
|
||||||
bg-gray-800/70 rounded-md lg:rounded-lg
|
bg-gray-800/70 rounded-md lg:rounded-lg
|
||||||
|
|||||||
@@ -13,7 +13,11 @@ import {
|
|||||||
import { TileRef } from "../../../core/game/GameMap";
|
import { TileRef } from "../../../core/game/GameMap";
|
||||||
import { AllianceView } from "../../../core/game/GameUpdates";
|
import { AllianceView } from "../../../core/game/GameUpdates";
|
||||||
import { GameView, PlayerView, UnitView } from "../../../core/game/GameView";
|
import { GameView, PlayerView, UnitView } from "../../../core/game/GameView";
|
||||||
import { ContextMenuEvent, MouseMoveEvent } from "../../InputHandler";
|
import {
|
||||||
|
ContextMenuEvent,
|
||||||
|
MouseMoveEvent,
|
||||||
|
TouchEvent,
|
||||||
|
} from "../../InputHandler";
|
||||||
import {
|
import {
|
||||||
renderDuration,
|
renderDuration,
|
||||||
renderNumber,
|
renderNumber,
|
||||||
@@ -99,6 +103,7 @@ export class PlayerInfoOverlay extends LitElement implements Layer {
|
|||||||
this.eventBus.on(ContextMenuEvent, (e: ContextMenuEvent) =>
|
this.eventBus.on(ContextMenuEvent, (e: ContextMenuEvent) =>
|
||||||
this.maybeShow(e.x, e.y),
|
this.maybeShow(e.x, e.y),
|
||||||
);
|
);
|
||||||
|
this.eventBus.on(TouchEvent, (e: TouchEvent) => this.maybeShow(e.x, e.y));
|
||||||
this.eventBus.on(CloseRadialMenuEvent, () => this.hide());
|
this.eventBus.on(CloseRadialMenuEvent, () => this.hide());
|
||||||
this.eventBus.on(SpawnBarVisibleEvent, (e) => {
|
this.eventBus.on(SpawnBarVisibleEvent, (e) => {
|
||||||
this.spawnBarVisible = e.visible;
|
this.spawnBarVisible = e.visible;
|
||||||
@@ -491,10 +496,11 @@ export class PlayerInfoOverlay extends LitElement implements Layer {
|
|||||||
<div
|
<div
|
||||||
class="fixed top-0 min-[1200px]:top-4 left-0 right-0 sm:left-1/2 sm:right-auto sm:-translate-x-1/2 z-[1001]"
|
class="fixed top-0 min-[1200px]:top-4 left-0 right-0 sm:left-1/2 sm:right-auto sm:-translate-x-1/2 z-[1001]"
|
||||||
style="margin-top: ${this.barOffset}px;"
|
style="margin-top: ${this.barOffset}px;"
|
||||||
|
@click=${() => this.hide()}
|
||||||
@contextmenu=${(e: MouseEvent) => e.preventDefault()}
|
@contextmenu=${(e: MouseEvent) => e.preventDefault()}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="bg-gray-800/70 backdrop-blur-xs shadow-xs min-[1200px]:rounded-lg sm:rounded-b-lg shadow-lg transition-all duration-300 text-white text-lg lg:text-base w-full sm:w-auto sm:min-w-[400px] overflow-hidden ${containerClasses}"
|
class="bg-gray-800/70 backdrop-blur-xs shadow-xs min-[1200px]:rounded-lg sm:rounded-b-lg shadow-lg text-white text-lg lg:text-base w-full sm:w-auto sm:min-w-[400px] overflow-hidden ${containerClasses}"
|
||||||
>
|
>
|
||||||
${this.player !== null ? this.renderPlayerInfo(this.player) : ""}
|
${this.player !== null ? this.renderPlayerInfo(this.player) : ""}
|
||||||
${this.unit !== null ? this.renderUnitInfo(this.unit) : ""}
|
${this.unit !== null ? this.renderUnitInfo(this.unit) : ""}
|
||||||
|
|||||||
@@ -146,6 +146,10 @@ export class UnitLayer implements Layer {
|
|||||||
event.y,
|
event.y,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!this.game.isValidCoord(cell.x, cell.y)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const clickRef = this.game.ref(cell.x, cell.y);
|
const clickRef = this.game.ref(cell.x, cell.y);
|
||||||
if (!this.game.isOcean(clickRef)) {
|
if (!this.game.isOcean(clickRef)) {
|
||||||
// No isValidCoord/Ref check yet, that is done for ContextMenuEvent later
|
// No isValidCoord/Ref check yet, that is done for ContextMenuEvent later
|
||||||
|
|||||||
Reference in New Issue
Block a user