1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-20 13:59:40 +02:00
portainer/app/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection.tsx
Ali abf517de28
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux]) (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:arm64 platform:linux]) (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-client (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
refactor(app): migrate app summary section [EE-6239] (#10910)
2024-01-05 15:42:36 +13:00

67 lines
1.7 KiB
TypeScript

import { Box, Boxes } from 'lucide-react';
import { BoxSelector, BoxSelectorOption } from '@@/BoxSelector';
import { AppDataAccessPolicy } from '../types';
interface Props {
isEdit: boolean;
persistedFoldersUseExistingVolumes: boolean;
value: AppDataAccessPolicy;
onChange(value: AppDataAccessPolicy): void;
}
export function DataAccessPolicyFormSection({
isEdit,
persistedFoldersUseExistingVolumes,
value,
onChange,
}: Props) {
const options = getOptions(value, isEdit, persistedFoldersUseExistingVolumes);
return (
<BoxSelector
slim
options={options}
value={value}
onChange={onChange}
radioName="data_access_policy"
/>
);
}
function getOptions(
value: AppDataAccessPolicy,
isEdit: boolean,
persistedFoldersUseExistingVolumes: boolean
): ReadonlyArray<BoxSelectorOption<AppDataAccessPolicy>> {
return [
{
value: 'Isolated',
id: 'data_access_isolated',
icon: Boxes,
iconType: 'badge',
label: 'Isolated',
description:
'Application will be deployed as a StatefulSet with each instantiating their own data',
tooltip: () =>
isEdit || persistedFoldersUseExistingVolumes
? 'Changing the data access policy is not allowed'
: '',
disabled: () =>
(isEdit && value !== 'Isolated') || persistedFoldersUseExistingVolumes,
},
{
value: 'Shared',
id: 'data_access_shared',
icon: Box,
iconType: 'badge',
label: 'Shared',
description:
'Application will be deployed as a Deployment with a shared storage access',
tooltip: () =>
isEdit ? 'Changing the data access policy is not allowed' : '',
disabled: () => isEdit && value !== 'Shared',
},
] as const;
}