fission_command_ui/
app.rs1use super::components::{AppShell, ConfirmationDialog};
2use super::screens::ActiveScreen;
3use super::state::UiState;
4use fission::prelude::*;
5
6#[derive(Clone)]
7pub struct CliUiApp;
8
9impl From<CliUiApp> for Widget {
10 fn from(_component: CliUiApp) -> Self {
11 let (_ctx, view) = fission::build::current::<UiState>();
12 let content = ActiveScreen.into();
13 let shell = AppShell { content }.into();
14 if view.state().pending_dialog.is_none() {
15 return shell;
16 }
17 Overlay {
18 content: shell,
19 overlay: ConfirmationDialog.into(),
20 ..Default::default()
21 }
22 .into()
23 }
24}