aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/settings.rs125
1 files changed, 1 insertions, 124 deletions
diff --git a/src/ui/settings.rs b/src/ui/settings.rs
index 8177d874..5052c91c 100644
--- a/src/ui/settings.rs
+++ b/src/ui/settings.rs
@@ -11,10 +11,7 @@ use super::widgets::{
render_action_button, render_modal_choice_list, render_panel_shell, ActionButtonSpec,
};
use crate::{
- app::{
- state::{ExperimentSetting, Palette},
- AppState,
- },
+ app::{state::Palette, AppState},
config::ToastDelivery,
};
@@ -149,9 +146,6 @@ pub(super) fn render_settings_overlay(app: &AppState, frame: &mut Frame, area: R
app.settings.list.selected,
);
}
- SettingsSection::Experiments => {
- render_settings_experiments(app, frame, content_area);
- }
SettingsSection::Integrations => {
render_settings_integrations(app, frame, content_area);
}
@@ -412,120 +406,3 @@ fn render_settings_toggle(
1,
);
}
-
-fn render_settings_experiments(app: &AppState, frame: &mut Frame, area: Rect) {
- let p = &app.palette;
- let [desc_area, _, list_area] = Layout::vertical([
- Constraint::Length(2),
- Constraint::Length(1),
- Constraint::Min(1),
- ])
- .areas::<3>(area);
-
- super::widgets::render_modal_description(
- frame,
- desc_area,
- "optional features that are off by default",
- Style::default().fg(p.overlay1),
- );
-
- for (idx, setting) in ExperimentSetting::ALL.iter().copied().enumerate() {
- let marker = if setting.enabled(app) { "[✓]" } else { "[ ]" };
- let style = if app.settings.list.selected == idx {
- Style::default()
- .bg(p.surface0)
- .fg(p.text)
- .add_modifier(Modifier::BOLD)
- } else {
- Style::default().fg(p.subtext0)
- };
- let row = Rect::new(list_area.x, list_area.y + idx as u16, list_area.width, 1);
- frame.render_widget(
- Paragraph::new(format!(" {} {marker}", setting.label())).style(style),
- row,
- );
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use crate::app::{state::SettingsSection, Mode};
- use ratatui::{backend::TestBackend, Terminal};
-
- #[test]
- fn experiments_pane_history_uses_settings_checkmark_marker() {
- let mut app = AppState::test_new();
- app.pane_history_persistence = true;
- app.settings.section = SettingsSection::Experiments;
- app.settings.list.selected = 0;
- app.mode = Mode::Settings;
-
- let mut terminal =
- Terminal::new(TestBackend::new(80, 24)).expect("test terminal should initialize");
- terminal
- .draw(|frame| render_settings_overlay(&app, frame, Rect::new(0, 0, 80, 24)))
- .expect("settings overlay should render");
-
- let rendered = terminal
- .backend()
- .buffer()
- .content()
- .iter()
- .map(|cell| cell.symbol())
- .collect::<String>();
-
- assert!(rendered.contains("pane screen history [✓]"));
- assert!(!rendered.contains("[x]"));
- }
-
- #[test]
- fn experiments_pane_history_keeps_empty_checkbox_marker_when_disabled() {
- let mut app = AppState::test_new();
- app.pane_history_persistence = false;
- app.settings.section = SettingsSection::Experiments;
- app.settings.list.selected = 0;
- app.mode = Mode::Settings;
-
- let mut terminal =
- Terminal::new(TestBackend::new(80, 24)).expect("test terminal should initialize");
- terminal
- .draw(|frame| render_settings_overlay(&app, frame, Rect::new(0, 0, 80, 24)))
- .expect("settings overlay should render");
-
- let rendered = terminal
- .backend()
- .buffer()
- .content()
- .iter()
- .map(|cell| cell.symbol())
- .collect::<String>();
-
- assert!(rendered.contains("pane screen history [ ]"));
- }
-
- #[test]
- fn experiments_renders_switch_ascii_input_source_row() {
- let mut app = AppState::test_new();
- app.switch_ascii_input_source_in_prefix = true;
- app.settings.section = SettingsSection::Experiments;
- app.settings.list.selected = 1;
- app.mode = Mode::Settings;
-
- let mut terminal =
- Terminal::new(TestBackend::new(80, 24)).expect("test terminal should initialize");
- terminal
- .draw(|frame| render_settings_overlay(&app, frame, Rect::new(0, 0, 80, 24)))
- .expect("settings overlay should render");
-
- let rendered = terminal
- .backend()
- .buffer()
- .content()
- .iter()
- .map(|cell| cell.symbol())
- .collect::<String>();
-
- assert!(rendered.contains("switch to ascii input source in prefix (macOS/Windows) [✓]"));
- }
-}