feat(game): update websocket URL configuration and improve game room logic

- Change VITE_GAME_WS_URL from /api/v1/ws to /ws in .env.development
- Update proxy configuration in vite.config.ts to match new websocket path
- Refactor leave room functionality to properly disconnect websocket
and destroy room state
- Add e2e testing script to package.json
```
This commit is contained in:
2026-03-24 14:38:47 +08:00
parent 1b15748d0d
commit 84ce67b9be
7 changed files with 157 additions and 70 deletions

View File

@@ -1,3 +1,10 @@
html,
body,
#app {
height: 100%;
overflow: hidden;
}
:root {
font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
line-height: 1.5;
@@ -21,6 +28,7 @@ body {
#app {
min-height: 100vh;
min-height: 100dvh;
}
h1,
@@ -31,6 +39,8 @@ p {
.app-shell {
min-height: 100vh;
min-height: 100dvh;
overflow: hidden;
}
.auth-page {
@@ -429,7 +439,9 @@ button:disabled {
width: 100%;
max-width: none;
height: 100vh;
height: 100dvh;
min-height: 100vh;
min-height: 100dvh;
margin: 0;
padding-top: max(12px, env(safe-area-inset-top));
padding-right: max(12px, env(safe-area-inset-right));
@@ -647,18 +659,23 @@ button:disabled {
grid-template-columns: minmax(0, 1fr) 320px;
gap: 12px;
min-height: 0;
height: 100%;
overflow: hidden;
align-items: stretch;
align-items: center;
}
.table-desk {
display: block;
grid-column: 1;
grid-row: 1;
width: 100%;
height: 100%;
width: min(100%, calc((100dvh - 220px) * 16 / 9));
max-width: 100%;
height: auto;
aspect-ratio: 16 / 9;
justify-self: center;
align-self: center;
border-radius: 28px;
object-fit: cover;
object-fit: contain;
object-position: center;
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
@@ -670,7 +687,13 @@ button:disabled {
grid-row: 1;
position: relative;
min-height: 0;
height: 100%;
width: min(100%, calc((100dvh - 220px) * 16 / 9));
height: auto;
aspect-ratio: 16 / 9;
max-width: 100%;
max-height: 100%;
justify-self: center;
align-self: center;
border-radius: 28px;
border: 1px solid rgba(255, 255, 255, 0.06);
background:
@@ -1033,6 +1056,7 @@ button:disabled {
display: flex;
flex-direction: column;
min-height: 0;
height: 100%;
margin-top: 0;
padding: 10px;
border-radius: 8px;
@@ -1041,6 +1065,10 @@ button:disabled {
overflow: hidden;
}
.ws-log {
min-height: 0;
}
.ws-panel-head {
display: flex;
align-items: center;