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

refactor(azure): migrate module to react [EE-2782] (#6689)

* refactor(azure): migrate module to react [EE-2782]

* fix(azure): remove optional chain

* feat(azure): apply new icons in dashboard

* feat(azure): apply new icons in dashboard

* feat(ui): allow single string for breadcrumbs

* refactor(azure/containers): use Table.content

* feat(azure/containers): implement new ui [EE-3538]

* fix(azure/containers): use correct icon

* chore(tests): mock svg as component

* fix(azure): fix tests

Co-authored-by: matias.spinarolli <matias.spinarolli@portainer.io>
This commit is contained in:
Chaim Lev-Ari 2022-07-26 21:44:08 +02:00 committed by GitHub
parent b059641c80
commit 82b848af0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
97 changed files with 1723 additions and 1430 deletions

View file

@ -15,6 +15,8 @@ interface Props<T> {
onChange(value: T): void;
options: Option<T>[];
size?: Size;
disabled?: boolean;
readOnly?: boolean;
}
export function ButtonSelector<T extends string | number>({
@ -22,6 +24,8 @@ export function ButtonSelector<T extends string | number>({
onChange,
size,
options,
disabled,
readOnly,
}: Props<T>) {
return (
<ButtonGroup size={size} className={styles.group}>
@ -30,6 +34,8 @@ export function ButtonSelector<T extends string | number>({
key={option.value}
selected={value === option.value}
onChange={() => onChange(option.value)}
disabled={disabled}
readOnly={readOnly}
>
{option.label || option.value.toString()}
</OptionItem>
@ -41,17 +47,32 @@ export function ButtonSelector<T extends string | number>({
interface OptionItemProps {
selected: boolean;
onChange(): void;
disabled?: boolean;
readOnly?: boolean;
}
function OptionItem({
selected,
children,
onChange,
disabled,
readOnly,
}: PropsWithChildren<OptionItemProps>) {
return (
<label className={clsx('btn btn-primary', { active: selected })}>
<label
className={clsx('btn btn-primary', {
active: selected,
disabled: readOnly || disabled,
})}
>
{children}
<input type="radio" checked={selected} onChange={onChange} />
<input
type="radio"
checked={selected}
onChange={onChange}
disabled={disabled}
readOnly={readOnly}
/>
</label>
);
}