1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 05:19:39 +02:00

Revert "feat(helm): filter on chart versions at API level [R8S-324]" (#753)

This commit is contained in:
Cara Ryan 2025-05-26 16:58:53 +12:00 committed by GitHub
parent a80b185e10
commit 32ef208278
6 changed files with 51 additions and 153 deletions

View file

@ -1,6 +1,5 @@
import { ArrowUp } from 'lucide-react';
import { useRouter } from '@uirouter/react';
import { useState } from 'react';
import { EnvironmentId } from '@/react/portainer/environments/types';
import { notifySuccess } from '@/portainer/services/notifications';
@ -42,19 +41,16 @@ export function UpgradeButton({
const updateHelmReleaseMutation = useUpdateHelmReleaseMutation(environmentId);
const repositoriesQuery = useHelmRepositories();
const [useCache, setUseCache] = useState(true);
const helmRepoVersionsQuery = useHelmRepoVersions(
release?.chart.metadata?.name || '',
60 * 60 * 1000, // 1 hour
repositoriesQuery.data,
useCache
repositoriesQuery.data
);
const versions = helmRepoVersionsQuery.data;
// Combined loading state
const isInitialLoading =
repositoriesQuery.isInitialLoading ||
helmRepoVersionsQuery.isFetching ||
helmRepoVersionsQuery.isInitialLoading;
const isError = repositoriesQuery.isError || helmRepoVersionsQuery.isError;
@ -62,10 +58,9 @@ export function UpgradeButton({
select: (data) => data.chart.metadata?.version,
});
const latestVersionAvailable = versions[0]?.Version ?? '';
const isNewVersionAvailable = Boolean(
const isNewVersionAvailable =
latestVersion?.data &&
semverCompare(latestVersionAvailable, latestVersion?.data) === 1
);
semverCompare(latestVersionAvailable, latestVersion?.data) === 1;
const editableHelmRelease: UpdateHelmReleasePayload = {
name: releaseName,
@ -75,14 +70,6 @@ export function UpgradeButton({
version: release?.chart.metadata?.version,
};
function handleRefreshVersions() {
if (useCache === false) {
helmRepoVersionsQuery.refetch();
} else {
setUseCache(false);
}
}
return (
<div className="relative">
<LoadingButton
@ -110,38 +97,30 @@ export function UpgradeButton({
Checking for new versions...
</InlineLoader>
)}
{!isInitialLoading && !isError && (
{versions.length === 0 && !isInitialLoading && !isError && (
<span className="absolute flex items-center -bottom-5 left-0 right-0 text-xs text-muted text-center whitespace-nowrap">
{getStatusMessage(
versions.length === 0,
latestVersionAvailable,
isNewVersionAvailable
)}
{versions.length === 0 && (
<Tooltip
message={
<div>
Portainer is unable to find any versions for this chart in the
repositories saved. Try adding a new repository which contains
the chart in the{' '}
<Link
to="portainer.account"
params={{ '#': 'helm-repositories' }}
data-cy="user-settings-link"
>
Helm repositories settings
</Link>
</div>
}
/>
)}
<button
onClick={handleRefreshVersions}
className="text-primary hover:text-primary-light cursor-pointer bg-transparent border-0 pl-1 p-0"
type="button"
>
Refresh versions
</button>
No versions available
<Tooltip
message={
<div>
Portainer is unable to find any versions for this chart in the
repositories saved. Try adding a new repository which contains
the chart in the{' '}
<Link
to="portainer.account"
params={{ '#': 'helm-repositories' }}
data-cy="user-settings-link"
>
Helm repositories settings
</Link>
</div>
}
/>
</span>
)}
{isNewVersionAvailable && (
<span className="absolute -bottom-5 left-0 right-0 text-xs text-muted text-center whitespace-nowrap">
New version available ({latestVersionAvailable})
</span>
)}
</div>
@ -185,18 +164,4 @@ export function UpgradeButton({
},
});
}
function getStatusMessage(
hasNoAvailableVersions: boolean,
latestVersionAvailable: string,
isNewVersionAvailable: boolean
): string {
if (hasNoAvailableVersions) {
return 'No versions available ';
}
if (isNewVersionAvailable) {
return `New version available (${latestVersionAvailable}) `;
}
return '';
}
}