mirror of https://github.com/portainer/portainer
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
![]() |
import { IngressControllerClassMap } from '../types';
|
||
|
|
||
|
export function getIngressClassesFormValues(
|
||
|
allowNoneIngressClass: boolean,
|
||
|
ingressClasses?: IngressControllerClassMap[]
|
||
|
) {
|
||
|
const ingressClassesFormValues = ingressClasses ? [...ingressClasses] : [];
|
||
|
const noneIngressClassIndex = ingressClassesFormValues.findIndex(
|
||
|
(ingressClass) =>
|
||
|
ingressClass.Name === 'none' &&
|
||
|
ingressClass.ClassName === 'none' &&
|
||
|
ingressClass.Type === 'custom'
|
||
|
);
|
||
|
// add the none ingress class if it doesn't exist
|
||
|
if (allowNoneIngressClass && noneIngressClassIndex === -1) {
|
||
|
return [
|
||
|
...ingressClassesFormValues,
|
||
|
{
|
||
|
Name: 'none',
|
||
|
ClassName: 'none',
|
||
|
Type: 'custom',
|
||
|
Availability: true,
|
||
|
New: false,
|
||
|
Used: false,
|
||
|
},
|
||
|
];
|
||
|
}
|
||
|
// remove the none ingress class if it exists
|
||
|
if (!allowNoneIngressClass && noneIngressClassIndex > -1) {
|
||
|
return [
|
||
|
...ingressClassesFormValues.slice(0, noneIngressClassIndex),
|
||
|
...ingressClassesFormValues.slice(noneIngressClassIndex + 1),
|
||
|
];
|
||
|
}
|
||
|
// otherwise return the ingress classes as is
|
||
|
return ingressClassesFormValues;
|
||
|
}
|