import React from 'react'; import { Modal } from 'react-bootstrap'; import { CloudProviderRegistry } from '../CloudProviderRegistry'; import { ModalClose } from '../../modal/buttons/ModalClose'; import { ReactModal } from '../../presentation/ReactModal'; import type { IModalComponentProps } from '../../presentation/modal/showModal'; export interface IProviderSelectionModalProps extends IModalComponentProps { providerOptions: string[]; } export interface IProviderSelectionModalState { selectedProvider?: string; } export class ProviderSelectionModal extends React.Component< IProviderSelectionModalProps, IProviderSelectionModalState > { constructor(props: IProviderSelectionModalProps) { super(props); this.state = {}; } public static show(props: IProviderSelectionModalProps): Promise { const modalProps = {}; return ReactModal.show(ProviderSelectionModal, props, modalProps); } private setProvider(selectedProvider: string) { this.setState({ selectedProvider }); } private cancel = () => { this.props.dismissModal(); }; private selectProvider = () => { this.props.closeModal(this.state.selectedProvider); }; public render() { const { selectedProvider } = this.state; const { providerOptions } = this.props; return ( <> Select Your Provider
{providerOptions.map((provider) => (
this.setProvider(provider)} > {CloudProviderRegistry.hasValue(provider, 'logo.path') && ( {provider} )} {!CloudProviderRegistry.hasValue(provider, 'logo.path') &&

{provider}

}
))}
); } }