aboutsummaryrefslogtreecommitdiff
path: root/src/app/state.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-01 02:26:03 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-01 02:26:03 +0300
commit063ffc2b7057b66b03b2d2d60232b235b123f3e4 (patch)
tree2acba8850acbb58461964dfa4efac7021d9f6851 /src/app/state.rs
parentda99c089181b8a4dd276b4dfdb8dd2492adba0f2 (diff)
feat: show release notes after updates
Diffstat (limited to 'src/app/state.rs')
-rw-r--r--src/app/state.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/app/state.rs b/src/app/state.rs
index cd45bbb6..49c740ae 100644
--- a/src/app/state.rs
+++ b/src/app/state.rs
@@ -332,6 +332,7 @@ pub struct ViewState {
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Mode {
Onboarding,
+ ReleaseNotes,
Navigate,
Terminal,
RenameSession,
@@ -399,6 +400,9 @@ pub(crate) enum DragTarget {
pane_id: crate::layout::PaneId,
grab_row_offset: u16,
},
+ ReleaseNotesScrollbar {
+ grab_row_offset: u16,
+ },
SidebarDivider,
}
@@ -449,6 +453,13 @@ pub struct ToastNotification {
pub context: String,
}
+pub struct ReleaseNotesState {
+ pub version: String,
+ pub body: String,
+ pub scroll: u16,
+ pub preview: bool,
+}
+
/// All application state — pure data, no channels or async runtime.
/// Testable without PTYs or a tokio runtime.
pub struct AppState {
@@ -462,6 +473,7 @@ pub struct AppState {
pub name_input: String,
pub onboarding_step: usize,
pub onboarding_selected: usize,
+ pub release_notes: Option<ReleaseNotesState>,
// View geometry (computed before render, consumed by render + mouse)
pub view: ViewState,
pub(crate) drag: Option<DragState>,
@@ -551,6 +563,7 @@ impl AppState {
name_input: String::new(),
onboarding_step: 0,
onboarding_selected: 1,
+ release_notes: None,
view: ViewState {
sidebar_rect: Rect::default(),
terminal_area: Rect::default(),