crossmate

A collaborative crossword app for iOS
Log | Files | Refs | LICENSE

commit c7e50b39faa287bd3ac144d5da5fa187fe9e6f5d
parent b37b245a5f23ff75a392129bfa6247b0316c39c6
Author: Michael Camilleri <[email protected]>
Date:   Thu,  7 May 2026 02:34:50 +0900

Improve final scoreboard display on iPadOS

Diffstat:
MCrossmate/Views/PuzzleView.swift | 26++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/Crossmate/Views/PuzzleView.swift b/Crossmate/Views/PuzzleView.swift @@ -131,9 +131,11 @@ struct PuzzleView: View { VStack(spacing: 0) { HStack(spacing: 0) { VStack(spacing: 0) { - PuzzleScoreboard(session: session, roster: roster) + if !isSolved { + PuzzleScoreboard(session: session, roster: roster) - Divider() + Divider() + } ClueList(session: session, presentation: .sidebar) } @@ -163,10 +165,12 @@ struct PuzzleView: View { Divider() HStack(alignment: .top, spacing: 0) { - PuzzleScoreboard(session: session, roster: roster) - .frame(minWidth: 240, idealWidth: 280, maxWidth: 320) + if !isSolved { + PuzzleScoreboard(session: session, roster: roster) + .frame(minWidth: 240, idealWidth: 280, maxWidth: 320) - Divider() + Divider() + } ClueList(session: session, presentation: .sidebar) .frame(maxWidth: .infinity, maxHeight: .infinity) @@ -268,6 +272,16 @@ struct PuzzleView: View { Color(.systemGroupedBackground) .ignoresSafeArea(edges: .bottom) } + .overlay { + if controlsPanelHeight > 0 { + VStack(spacing: 0) { + Rectangle() + .fill(Color(.opaqueSeparator)) + .frame(height: 0.5) + Spacer(minLength: 0) + } + } + } .animation(.easeOut(duration: 0.25), value: isSolved) } } @@ -761,7 +775,7 @@ private struct PuzzleLifecycleModifier: ViewModifier { } .onAppear { if session.game.completionState == .solved { - hasSolved = true + onCompletionStateChanged(.solved) } } .onAppear {