Files
backroad/app/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector.tsx
2024-02-14 19:50:26 -03:00

59 lines
1.5 KiB
TypeScript

import { MultiValue } from 'react-select';
import { Registry } from '@/react/portainer/registries/types';
import { useCurrentUser } from '@/react/hooks/useUser';
import { Select } from '@@/form-components/ReactSelect';
import { Link } from '@@/Link';
interface Props {
value: MultiValue<Registry>;
onChange(value: MultiValue<Registry>): void;
options?: Registry[];
inputId?: string;
}
export function RegistriesSelector({
value,
onChange,
options = [],
inputId,
}: Props) {
const { isPureAdmin } = useCurrentUser();
return (
<>
{options.length === 0 && (
<p className="text-muted text-xs mb-1 mt-2">
{isPureAdmin ? (
<span>
No registries available. Head over to the{' '}
<Link to="portainer.registries" target="_blank">
registry view
</Link>{' '}
to define a container registry.
</span>
) : (
<span>
No registries available. Contact your administrator to create a
container registry.
</span>
)}
</p>
)}
<Select
isMulti
getOptionLabel={(option) => option.Name}
getOptionValue={(option) => String(option.Id)}
options={options}
value={value}
closeMenuOnSelect={false}
onChange={onChange}
inputId={inputId}
data-cy="namespaceCreate-registrySelect"
placeholder="Select one or more registries"
/>
</>
);
}