UNPKG

@dynamic-labs/sdk-react-core

Version:

A React SDK for implementing wallet web3 authentication and authorization to your website.

36 lines (33 loc) 2.11 kB
'use client' import { jsx } from 'react/jsx-runtime'; import { createContext, useContext } from 'react'; import { OverlayCardBase } from '../OverlayCardBase/OverlayCardBase.js'; import '../OverlayCardBase/OverlayCardTarget/OverlayCardTarget.js'; import { IconButton } from '../IconButton/IconButton.js'; import { ModalHeader } from '../ModalHeader/ModalHeader.js'; import { Typography } from '../Typography/Typography.js'; import '@dynamic-labs/sdk-api-core'; import '../../shared/logger.js'; import '@dynamic-labs/iconic'; import '@dynamic-labs/wallet-connector-core'; import { ReactComponent as SvgClose } from '../../shared/assets/close.js'; import '../../context/ViewContext/ViewContext.js'; import '@dynamic-labs/wallet-book'; import '@dynamic-labs/utils'; import '../../utils/constants/colors.js'; import '../../utils/constants/values.js'; import '../../shared/consts/index.js'; import { classNames } from '../../utils/functions/classNames/classNames.js'; const CloseContext = createContext(undefined); /** Default header component with close icon */ const Header = ({ children, closeDisabled, }) => { const onClose = useContext(CloseContext); const closeButton = (jsx(IconButton, { onClick: onClose, type: 'button', id: 'close-button', disabled: closeDisabled, "data-testid": 'close-button', children: jsx(SvgClose, {}) })); return (jsx(ModalHeader, { trailing: closeButton, children: jsx(Typography, { as: 'h1', variant: 'title', color: 'primary', children: children }) })); }; /** Styled content section */ const Content = ({ children, className, removePadding, }) => (jsx("div", { className: classNames('overlay-card__content', { 'overlay-card__content-p0': removePadding }, className), "data-testid": 'overlay-content', children: children })); const OverlayCard = ({ children, isOpen, onClose, className, style, }) => (jsx(CloseContext.Provider, { value: onClose, children: jsx(OverlayCardBase, { isOpen: isOpen, onClickOverlay: onClose, className: className, style: style, children: children }) })); OverlayCard.Header = Header; OverlayCard.Content = Content; export { OverlayCard };