1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-24 15:59:41 +02:00

feat(helm): helm actions [r8s-259] (#715)

Co-authored-by: James Player <james.player@portainer.io>
Co-authored-by: Cara Ryan <cara.ryan@portainer.io>
Co-authored-by: stevensbkang <skan070@gmail.com>
This commit is contained in:
Ali 2025-05-13 22:15:04 +12:00 committed by GitHub
parent dfa32b6755
commit 4ee349bd6b
117 changed files with 4161 additions and 696 deletions

View file

@ -1,10 +1,19 @@
import { Option } from '@@/form-components/PortainerSelect';
import { ReactNode } from 'react';
// allow custom labels
export interface RadioGroupOption<TValue> {
value: TValue;
label: ReactNode;
disabled?: boolean;
}
interface Props<T extends string | number> {
options: Array<Option<T>> | ReadonlyArray<Option<T>>;
options: Array<RadioGroupOption<T>> | ReadonlyArray<RadioGroupOption<T>>;
selectedOption: T;
name: string;
onOptionChange: (value: T) => void;
groupClassName?: string;
itemClassName?: string;
}
export function RadioGroup<T extends string | number = string>({
@ -12,13 +21,18 @@ export function RadioGroup<T extends string | number = string>({
selectedOption,
name,
onOptionChange,
groupClassName,
itemClassName,
}: Props<T>) {
return (
<div className="flex flex-wrap gap-x-2 gap-y-1">
<div className={groupClassName ?? 'flex flex-wrap gap-x-2 gap-y-1'}>
{options.map((option) => (
<label
key={option.value}
className="col-sm-3 col-lg-2 control-label !p-0 text-left font-normal"
className={
itemClassName ??
'col-sm-3 col-lg-2 control-label !p-0 text-left font-normal'
}
>
<input
type="radio"
@ -28,6 +42,7 @@ export function RadioGroup<T extends string | number = string>({
onChange={() => onOptionChange(option.value)}
style={{ margin: '0 4px 0 0' }}
data-cy={`radio-${option.value}`}
disabled={option.disabled}
/>
{option.label}
</label>