import { EdgeTypes, EnvironmentId } from '@/react/portainer/environments/types'; import { EdgeEnvironmentsAssociationTable } from '@/react/edge/components/EdgeEnvironmentsAssociationTable'; import { FormError } from '@@/form-components/FormError'; import { ArrayError } from '@@/form-components/InputList/InputList'; export function AssociatedEdgeEnvironmentsSelector({ onChange, value, error, }: { onChange: ( value: EnvironmentId[], meta: { type: 'add' | 'remove'; value: EnvironmentId } ) => void; value: EnvironmentId[]; error?: ArrayError>; }) { return ( <>
You can also select environments individually by moving them to the associated environments table. Simply click on any environment entry to move it from one table to the other.
{error && (
{typeof error === 'string' ? error : error.join(', ')}
)}
{ if (!value.includes(env.Id)) { onChange([...value, env.Id], { type: 'add', value: env.Id }); } }} data-cy="edgeGroupCreate-availableEndpoints" />
{ if (value.includes(env.Id)) { onChange( value.filter((id) => id !== env.Id), { type: 'remove', value: env.Id } ); } }} data-cy="edgeGroupCreate-associatedEndpointsTable" />
); }