use crate::api::codeowners::Codeowners;
use crate::data::DataKey;
use crate::state::{Cmds, State};
pub const FEATURE: crate::features::Feature = crate::features::Feature {
follow,
..crate::features::Feature::NONE
};
fn of_diff(state: &State) -> Option<DataKey> {
let pr = state.screen().diff()?.of.pr()?;
let base = &state.pr(pr)?.base_ref;
Some(DataKey::Codeowners(pr.repo.clone(), base.clone()))
}
pub fn on_screen(state: &State) -> Option<&Codeowners> {
state.picked::<Codeowners>(&of_diff(state)?)
}
fn follow(state: &mut State) -> Cmds {
match of_diff(state) {
Some(key) if state.remote(&key).is_none() => state.ensure(key, false),
_ => Cmds::new(),
}
}