use crate::logic::aur_pkgnames_also_in_official_catalog;
use crate::state::modal::PreflightHeaderChips;
use crate::state::{AppState, PackageItem};
#[must_use]
pub fn catalog_for_install_dup_check(app: &AppState) -> Vec<PackageItem> {
app.all_results
.iter()
.chain(app.results.iter())
.cloned()
.collect()
}
#[must_use]
pub fn try_open_warn_aur_repo_duplicate_modal(
app: &mut AppState,
packages: &[PackageItem],
header_chips: PreflightHeaderChips,
) -> bool {
if app.skip_aur_repo_dup_warning_once {
app.skip_aur_repo_dup_warning_once = false;
return false;
}
let catalog = catalog_for_install_dup_check(app);
let dups = aur_pkgnames_also_in_official_catalog(packages, &catalog);
if dups.is_empty() {
return false;
}
app.modal = crate::state::Modal::WarnAurRepoDuplicate {
dup_names: dups,
packages: packages.to_vec(),
header_chips,
};
true
}