Pin event log across all phases

This commit is contained in:
2026-07-10 19:24:04 -07:00
parent b9cbbda1a2
commit d8d68a80a3
3 changed files with 31 additions and 5 deletions

View File

@@ -72,7 +72,7 @@ input[type="checkbox"] {
.phase-view-layout {
display: grid;
grid-template-columns: 180px minmax(0, 1fr);
grid-template-columns: 180px minmax(0, 1fr) minmax(300px, 0.8fr);
gap: 1.5rem;
align-items: start;
}
@@ -81,6 +81,12 @@ input[type="checkbox"] {
min-width: 0;
}
@media (min-width: 1101px) {
.phase-view-layout.log-collapsed {
grid-template-columns: 180px minmax(0, 1fr);
}
}
@media (max-width: 1100px) {
.phase-view-layout {
grid-template-columns: 1fr;

View File

@@ -6,10 +6,17 @@
// - Add a CHANGELOG entry only when a commit changes something players can
// see. Skip refactors, tests, and tooling. Keep wording player-facing.
export const VERSION = 24;
export const VERSION = 25;
// Newest first. Each entry: { version, date: 'YYYY-MM-DD', changes: [string, ...] }.
export const CHANGELOG = [
{
version: 25,
date: '2026-07-10',
changes: [
'The Event Log now uses the same pinned column and fixed close/reopen control in every game phase.',
],
},
{
version: 24,
date: '2026-07-10',

View File

@@ -33,6 +33,9 @@
let reconnectDelay = 1000;
let destroyed = false;
let staleSession = false;
// Non-scene phases use the same pinned Event Log column and fixed corner
// toggle that ScenePhase owns for the main play screen.
let phaseLogOpen = true;
function discardStaleSession(message) {
staleSession = true;
@@ -223,7 +226,7 @@
{#if state.game.phase === 'scene'}
<ScenePhase {state} />
{:else}
<div class="phase-view-layout">
<div class="phase-view-layout" class:log-collapsed={!phaseLogOpen}>
<CrewSidebar {state} />
<main class="phase-main-column">
{#if state.game.phase === 'lobby'}
@@ -242,13 +245,23 @@
<div class="card p-4">Unknown phase: {state.game.phase}</div>
{/if}
</main>
{#if phaseLogOpen}
<div class="log-column">
<EventLog {state} inline on:collapse={() => (phaseLogOpen = false)} />
</div>
{/if}
</div>
{/if}
</div>
<!-- The scene phase renders its own inline Event Log as the third column. -->
{#if state.game.phase !== 'scene'}
<EventLog {state} />
<button
class="log-reopen-btn"
title={phaseLogOpen ? 'Hide the event log' : 'Show the event log'}
on:click={() => (phaseLogOpen = !phaseLogOpen)}
>
{phaseLogOpen ? '✕ Close Log' : '📜 Event Log'}
</button>
{/if}
<NameModal {state} />
<GatModal {state} />