UNPKG

@dynamic-labs/sdk-react-core

Version:

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

32 lines (29 loc) 1.48 kB
'use client' import { jsx } from 'react/jsx-runtime'; import { useState, useCallback } from 'react'; import '@dynamic-labs/sdk-api-core'; import '../../shared/logger.js'; import '@dynamic-labs/iconic'; import '@dynamic-labs/wallet-connector-core'; import { ReactComponent as SvgCheck } from '../../shared/assets/check.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 { Icon } from '../Icon/Icon.js'; import { ListTile } from '../ListTile/ListTile.js'; import { Toggle } from '../Toggle/Toggle.js'; const HardwareWalletToggle = ({ connectors, label, copykey, }) => { const [isEnabled, _setEnabled] = useState(connectors.some((connector) => connector.isHardwareWalletEnabled)); const setEnabled = useCallback((enabled) => { _setEnabled(enabled); connectors.forEach((connector) => { connector.isHardwareWalletEnabled = enabled; }); }, [connectors]); const toggle = (jsx(Toggle, { value: isEnabled, dataTestId: 'hardware-wallet-toggle', icon: jsx(Icon, { size: 'small', children: jsx(SvgCheck, {}) }), className: 'hardware-wallet-toggle__toggle' })); return (jsx(ListTile, { onClick: () => setEnabled(!isEnabled), trailing: toggle, children: jsx("span", { copykey, children: label }) })); }; export { HardwareWalletToggle };