FR: Hide Already Installed Plugins or Scrapers (#6443)

This commit is contained in:
Gykes 2026-01-04 22:04:28 -08:00 committed by GitHub
parent dc7ebadb16
commit 45dc892a54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 2 deletions

View file

@ -100,6 +100,12 @@ export const AvailablePluginPackages: React.FC = () => {
const [jobID, setJobID] = useState<string>();
const { job } = useMonitorJob(jobID, () => onPackageChanges());
// Get installed packages to filter them out from available list
const { data: installedData } = useInstalledPluginPackages(false);
const installedPackageIds = new Set(
installedData?.installedPackages?.map((p) => p.package_id) ?? []
);
async function onInstallPackages(packages: GQL.PackageSpecInput[]) {
const r = await mutateInstallPluginPackages(packages);
@ -114,7 +120,10 @@ export const AvailablePluginPackages: React.FC = () => {
async function loadSource(source: string): Promise<RemotePackage[]> {
const { data } = await queryAvailablePluginPackages(source);
return data.availablePackages;
// Filter out already installed packages
return data.availablePackages.filter(
(pkg) => !installedPackageIds.has(pkg.package_id)
);
}
function addSource(source: GQL.PackageSource) {

View file

@ -100,6 +100,12 @@ export const AvailableScraperPackages: React.FC = () => {
const [jobID, setJobID] = useState<string>();
const { job } = useMonitorJob(jobID, () => onPackageChanges());
// Get installed packages to filter them out from available list
const { data: installedData } = useInstalledScraperPackages(false);
const installedPackageIds = new Set(
installedData?.installedPackages?.map((p) => p.package_id) ?? []
);
async function onInstallPackages(packages: GQL.PackageSpecInput[]) {
const r = await mutateInstallScraperPackages(packages);
@ -114,7 +120,10 @@ export const AvailableScraperPackages: React.FC = () => {
async function loadSource(source: string): Promise<RemotePackage[]> {
const { data } = await queryAvailableScraperPackages(source);
return data.availablePackages;
// Filter out already installed packages
return data.availablePackages.filter(
(pkg) => !installedPackageIds.has(pkg.package_id)
);
}
function addSource(source: GQL.PackageSource) {