1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-02 20:35:25 +02:00

refactor(ui/modals): replace bootbox with react solution [EE-4541] (#8010)

This commit is contained in:
Chaim Lev-Ari 2023-02-14 13:49:41 +05:30 committed by GitHub
parent 392c7f74b8
commit e66dea44e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
111 changed files with 1330 additions and 1562 deletions

View file

@ -0,0 +1,58 @@
import { useState } from 'react';
import { Registry } from '@/react/portainer/environments/environment.service/registries';
import { Modal, OnSubmit, openModal } from '@@/modals';
import { Button } from '@@/buttons';
import { PortainerSelect } from '@@/form-components/PortainerSelect';
interface Props {
registries: Registry[];
onSubmit: OnSubmit<Registry['Id']>;
defaultValue: Registry['Id'];
}
function RegistrySelectPrompt({ onSubmit, defaultValue, registries }: Props) {
const title = 'Which registry do you want to use?';
const [registryId, setRegistryId] = useState(defaultValue);
const options = registries2Options(registries);
return (
<Modal onDismiss={() => onSubmit()} aria-label={title}>
<Modal.Header title={title} />
<Modal.Body>
<PortainerSelect
onChange={setRegistryId}
value={registryId}
options={options}
/>
</Modal.Body>
<Modal.Footer>
<Button onClick={() => onSubmit()} color="default">
Cancel
</Button>
<Button onClick={() => onSubmit(registryId)} color="primary">
Update
</Button>
</Modal.Footer>
</Modal>
);
}
export function selectRegistry(
registries: Registry[],
defaultValue: Registry['Id']
) {
return openModal(RegistrySelectPrompt, {
registries,
defaultValue,
});
}
function registries2Options(registries: Registry[]) {
return registries.map((r) => ({
label: r.Name,
value: r.Id,
}));
}

View file

@ -0,0 +1,15 @@
import { ModalType } from '@@/modals';
import { ConfirmCallback, openConfirm } from '@@/modals/confirm';
import { buildConfirmButton } from '@@/modals/utils';
export async function confirmImageExport(callback: ConfirmCallback) {
const result = await openConfirm({
modalType: ModalType.Warn,
title: 'Caution',
message:
'The export may take several minutes, do not navigate away whilst the export is in progress.',
confirmButton: buildConfirmButton('Continue'),
});
callback(result);
}