1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00
portainer/app/react/components/form-components/FormActions.tsx
Chaim Lev-Ari 9c70a43ac3
Some checks failed
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
ci / build_images (map[arch:arm platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Has been cancelled
ci / build_images (map[arch:s390x platform:linux version:]) (push) Has been cancelled
/ triage (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Test / test-client (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:linux]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Has been cancelled
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Has been cancelled
Test / test-server (map[arch:arm64 platform:linux]) (push) Has been cancelled
ci / build_manifests (push) Has been cancelled
refactor(edge/groups): migrate view to react [EE-2219] (#11758)
2024-06-02 15:43:37 +03:00

53 lines
1.2 KiB
TypeScript

import { PropsWithChildren } from 'react';
import { AutomationTestingProps } from '@/types';
import { LoadingButton } from '@@/buttons';
import { FormSection } from './FormSection';
interface Props extends AutomationTestingProps {
submitLabel: string;
loadingText: string;
isLoading: boolean;
isValid: boolean;
errors?: unknown;
}
export function FormActions({
submitLabel = 'Save',
loadingText = 'Saving',
isLoading,
children,
isValid,
errors,
'data-cy': dataCy,
}: PropsWithChildren<Props>) {
return (
<FormSection title="Actions">
<div className="form-group">
<div className="col-sm-12">
<div className="flex item-center gap-3">
<LoadingButton
className="!ml-0"
loadingText={loadingText}
isLoading={isLoading}
disabled={!isValid}
data-cy={dataCy}
>
{submitLabel}
</LoadingButton>
{!isValid && (
<div className="hidden" data-cy="errors">
{JSON.stringify(errors)}
</div>
)}
{children}
</div>
</div>
</div>
</FormSection>
);
}