import { Box, Spinner, Text } from 'grommet' import React from 'react' import type { ReactElement, ReactNode } from 'react' const defaultSelectedIconSrc = new URL('../images/icon-selected.svg', import.meta.url).href function noop() { // Do nothing } type LogoImageProps = { children: ReactNode; src: string } function LogoImage({ children, src }: LogoImageProps) { return (
{children}
) } type ChildrenProps = { children: ReactNode } function SpinnerContainer({ children }: ChildrenProps) { return (
{children}
) } function SelectedImage({ children }: ChildrenProps) { return (
{children}
) } export type ProviderDisplay = { label: string logo: string } export type ModalItemProps = ProviderDisplay & { disabled?: boolean loading?: boolean onClick: () => void selected?: boolean selectedIcon?: string | ReactElement } export function ModalItem({ disabled, label, loading, logo, onClick, selected, selectedIcon, }: ModalItemProps): ReactElement { let displaySelected = null if (selected) { const icon = selectedIcon == null || typeof selectedIcon === 'string' ? ( ✓ ) : ( selectedIcon ) displaySelected = {icon} } return ( {loading ? ( ) : null} {displaySelected} {label} ) }