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}
)
}