use {
    super::*,
    crate::{
        conf::Conf,
    },
    rustc_hash::FxHashMap,
};


/// all the skin things used by the broot application
/// during running
pub struct AppSkin {

    /// the skin used in the focused panel
    pub focused: PanelSkin,

    /// the skin used in unfocused panels
    pub unfocused: PanelSkin,
}

impl AppSkin {
    pub fn new(conf: &Conf, no_style: bool) -> Self {
        if no_style {
            Self {
                focused: PanelSkin::new(StyleMap::no_term()),
                unfocused: PanelSkin::new(StyleMap::no_term()),
            }
        } else {
            let def_skin;
            let skin = if let Some(skin) = &conf.skin {
                skin
            } else {
                def_skin = FxHashMap::default();
                &def_skin
            };
            let StyleMaps { focused, unfocused } = StyleMaps::create(skin);
            Self {
                focused: PanelSkin::new(focused),
                unfocused: PanelSkin::new(unfocused),
            }
        }
    }

}
