Skip to content

Commit 0c52f6e

Browse files
committed
ui(whats-new): refresh release copy and add preview images
1 parent be6e74e commit 0c52f6e

1 file changed

Lines changed: 43 additions & 16 deletions

File tree

Dayflow/Dayflow/Views/UI/WhatsNewView.swift

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ struct ReleaseNote: Identifiable {
2121
let version: String // e.g. "2.0.1"
2222
let title: String // e.g. "Timeline Improvements"
2323
let highlights: [String] // Array of bullet points
24+
let previewIntro: String?
25+
let previewImageNames: [String]
2426
let cta: ReleaseNoteCTA?
25-
let imageName: String? // Optional asset name for preview
2627

2728
// Helper to compare semantic versions
2829
var semanticVersion: [Int] {
@@ -36,26 +37,21 @@ enum WhatsNewConfiguration {
3637
private static let seenKey = "lastSeenWhatsNewVersion"
3738

3839
/// Override with the specific release number you want to show.
39-
private static let versionOverride: String? = "1.8.0"
40+
private static let versionOverride: String? = "1.8.4"
4041

4142
/// Update this content before shipping each release. Return nil to disable the modal entirely.
4243
static var configuredRelease: ReleaseNote? {
4344
ReleaseNote(
4445
version: targetVersion,
45-
title: "Just-in-time timelapses · Gemini back to 15-minute windows · UI polish",
46+
title: "Gemini 3.1 Flash-Lite · Timeline card deletion · Energy use improvements",
4647
highlights: [
47-
"Instead of generating timelapse videos continuously, Dayflow now generates them in a just-in-time fashion for better energy efficiency.",
48-
"Gemini is back to 15-minute processing windows now that new mitigations are in place.",
49-
"A lot of small-but-helpful UI enhancements landed across timeline, chat, settings, and navigation.",
50-
"Fixed a bug where Dock icon preferences could reset after restart."
48+
"Google just released Gemini 3.1 Flash-Lite, and it's now the default model for Gemini users. It's fast, reliable, and comes with generous rate limits.",
49+
"Highly requested feature: you can now delete timeline cards directly from the timeline card footer.",
50+
"We've spent a lot of time investigating reports of higher energy usage since 1.8.0, and we've shipped fixes that should address most cases. If you're still seeing unusually high energy use, please reach out."
5151
],
52-
cta: ReleaseNoteCTA(
53-
title: "Standup Pilot",
54-
description: "I'm piloting a workflow to make standups and weekly 1:1 prep less painful. I'm personally onboarding the first 10 users to work out the kinks, so please book a time if you're interested!",
55-
buttonTitle: "Book a Time",
56-
url: "https://cal.com/jerry-liu/15min"
57-
),
58-
imageName: nil
52+
previewIntro: "A sneak peek at some of the visualizations that we've been playing around with, likely coming to a new weekly view tab. Let me know if you have any cool ideas!",
53+
previewImageNames: ["SankeyPreview", "TreemapPreview"],
54+
cta: nil
5955
)
6056
}
6157

@@ -167,12 +163,43 @@ struct WhatsNewView: View {
167163
}
168164
}
169165

166+
if let previewIntro = releaseNote.previewIntro,
167+
previewIntro.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty == false {
168+
Text(previewIntro)
169+
.font(.custom("Nunito", size: 14))
170+
.foregroundColor(.black.opacity(0.72))
171+
.fixedSize(horizontal: false, vertical: true)
172+
.padding(.top, 6)
173+
}
174+
175+
if !releaseNote.previewImageNames.isEmpty {
176+
VStack(spacing: 16) {
177+
ForEach(releaseNote.previewImageNames, id: \.self) { imageName in
178+
Image(imageName)
179+
.resizable()
180+
.interpolation(.high)
181+
.scaledToFit()
182+
.frame(maxWidth: .infinity)
183+
.background(
184+
RoundedRectangle(cornerRadius: 12, style: .continuous)
185+
.fill(Color(red: 0.985, green: 0.985, blue: 0.985))
186+
)
187+
.clipShape(RoundedRectangle(cornerRadius: 12, style: .continuous))
188+
.overlay(
189+
RoundedRectangle(cornerRadius: 12, style: .continuous)
190+
.stroke(Color.black.opacity(0.06), lineWidth: 1)
191+
)
192+
}
193+
}
194+
// Let previews use more horizontal space than text for better readability.
195+
.padding(.top, 6)
196+
.padding(.horizontal, -20)
197+
}
198+
170199
if let cta = releaseNote.cta {
171200
ctaSection(cta)
172201
}
173202

174-
surveySection
175-
176203
Color.clear
177204
.frame(height: 1)
178205
.id(bottomAnchorID)

0 commit comments

Comments
 (0)