import React, { MouseEvent, useState } from "react"; import Card from "../card/Card"; import CardContent from "../card-content/CardContent"; import type { InteractiveCard } from "@app/models/components"; import "./interactive-card-styles.scss"; import Radio from "../radio/Radio"; import { CheckCircleIcon, MoreHorizIcon } from "@app/assets/images/icons"; import Menu from "../menu/Menu"; import IconButton from "../icon-button/IconButton"; import { Oval } from "react-loader-spinner"; import { useBlockNavigation } from "@settings/contexts/NavigationContext"; import ConfigItem from "../config-item/ConfigItem"; const InteractiveCardComponent: React.FC = ({ title, image, biography, metaData, selected, onSelect, onClick, options, isLoading, hasRadio = true, }) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const { isNavBlocked } = useBlockNavigation(); const localization = sfsyncI18n.data; const handleOpenMenu = (e: MouseEvent) => { e.stopPropagation(); setIsMenuOpen(!isMenuOpen); }; const closeMenu = () => { setIsMenuOpen(false); }; return ( title && (
{hasRadio && (
{isLoading && selected ? ( ) : ( )}
)}
{!!metaData?.length && (
{metaData?.map((meta) => (

{meta.label}: {meta.value}

))}
)}
{!!options?.length && (
)}
) ); }; export default InteractiveCardComponent;