mirror of
https://github.com/stashapp/stash.git
synced 2026-02-04 01:52:43 -06:00
FR: Hide Already Installed Plugins or Scrapers (#6443)
This commit is contained in:
parent
dc7ebadb16
commit
45dc892a54
@ -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) {
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user