@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
JavaScript
'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 };