use ratatui::buffer::Buffer; use ratatui::layout::Rect; use ratatui::prelude::Widget; use ratatui::style::Modifier; use ratatui::style::Style; use ratatui::text::Line; use ratatui::text::Span; 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![ Span::raw(">_ "), Span::styled( "Welcome to Codex, OpenAI's command-line coding agent", Style::default().add_modifier(Modifier::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, } } }