mirror of
https://github.com/portainer/portainer.git
synced 2025-07-20 22:09:41 +02:00
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
Test / test-client (push) Waiting to run
48 lines
1 KiB
TypeScript
48 lines
1 KiB
TypeScript
import { ExternalLink } from 'lucide-react';
|
|
|
|
import { Icon } from '@@/Icon';
|
|
|
|
type Props = {
|
|
hostURL?: string;
|
|
hostPort?: string | number;
|
|
containerPort?: string | number;
|
|
};
|
|
|
|
export function PublishedPortLink({ hostURL, hostPort, containerPort }: Props) {
|
|
return (
|
|
<a
|
|
className="image-tag"
|
|
href={generateContainerURL(hostURL, hostPort, containerPort)}
|
|
target="_blank"
|
|
rel="noreferrer"
|
|
>
|
|
<Icon icon={ExternalLink} />
|
|
{hostPort}:{containerPort}
|
|
</a>
|
|
);
|
|
}
|
|
|
|
function generateContainerURL(
|
|
hostURL?: string,
|
|
hostPort?: string | number,
|
|
containerPort?: string | number
|
|
) {
|
|
const url = stripTrailingSlash(hostURL?.toLowerCase());
|
|
|
|
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
if (String(containerPort).endsWith('443')) {
|
|
return `https://${url}:${hostPort}`;
|
|
}
|
|
|
|
return `http://${url}:${hostPort}`;
|
|
}
|
|
|
|
return `${url}:${hostPort}`;
|
|
}
|
|
|
|
function stripTrailingSlash(url?: string) {
|
|
if (!url) {
|
|
return '';
|
|
}
|
|
return url.endsWith('/') ? url.slice(0, -1) : url;
|
|
}
|