use ratatui::buffer::Buffer; use ratatui::layout::Rect; use ratatui::prelude::Widget; use ratatui::style::Stylize; use ratatui::text::Line; use ratatui::widgets::WidgetRef; use crate::onboarding::onboarding_screen::StepStateProvider; use super::onboarding_screen::StepState; pub(crate) struct WelcomeWidget { pub is_logged_in: bool, } impl WidgetRef for &WelcomeWidget { fn render_ref(&self, area: Rect, buf: &mut Buffer) { let line = Line::from(vec![ ">_ ".into(), "Welcome to Codex, OpenAI's command-line coding agent".bold(), ]); line.render(area, buf); } } impl StepStateProvider for WelcomeWidget { fn get_step_state(&self) -> StepState { match self.is_logged_in { true => StepState::Hidden, false => StepState::Complete, } } }