Make the inline Event Log collapsible and viewport-bounded (v7)
Two scene-layout tweaks to the inline (third-column) Event Log: - It can now be collapsed to a fixed corner button (✕ in its header) to declutter, and reopened from that button. ScenePhase owns `logOpen` and reflows the grid to two columns while collapsed; EventLog dispatches `collapse`. - The panel now pins at top:3.5rem (matching .dashboard-container's top padding) with max-height calc(100vh - 4.5rem), so its bottom stays on-screen at any scroll position and .log-content scrolls internally — previously the bottom sat ~24px below the fold at the top of the page. Verified across Pi-Rat and Deep views, scroll extremes, and 3-col / 1-col widths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,9 @@
|
||||
|
||||
export let state;
|
||||
|
||||
// The inline Event Log can be collapsed to a corner button to declutter.
|
||||
let logOpen = true;
|
||||
|
||||
$: hand = state.player.hand_cards ? JSON.parse(state.player.hand_cards) : [];
|
||||
$: playerTechs = { J: state.player.tech_jack, Q: state.player.tech_queen, K: state.player.tech_king };
|
||||
$: isDeep = state.player.role === 'deep';
|
||||
@@ -16,7 +19,7 @@
|
||||
$: showChallengeArea = isDeep || openChallenges.length > 0;
|
||||
</script>
|
||||
|
||||
<div class="scene-view-layout" id="scene-layout-container" data-game-id={state.game.id} data-player-id={state.player.id}>
|
||||
<div class="scene-view-layout" class:log-collapsed={!logOpen} id="scene-layout-container" data-game-id={state.game.id} data-player-id={state.player.id}>
|
||||
<!-- LEFT COLUMN: The Crew -->
|
||||
<CrewColumn {state} />
|
||||
|
||||
@@ -60,8 +63,16 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- RIGHT COLUMN: The Event Log -->
|
||||
<div class="log-column">
|
||||
<EventLog {state} inline />
|
||||
</div>
|
||||
<!-- RIGHT COLUMN: The Event Log (collapsible to a corner button) -->
|
||||
{#if logOpen}
|
||||
<div class="log-column">
|
||||
<EventLog {state} inline on:collapse={() => (logOpen = false)} />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
{#if !logOpen}
|
||||
<button class="log-reopen-btn" title="Show the event log" on:click={() => (logOpen = true)}>
|
||||
📜 Event Log
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user