UNPKG

@dynamic-labs/sdk-react-core

Version:

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

44 lines (39 loc) 2.81 kB
'use client' 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _tslib = require('../../../../_virtual/_tslib.cjs'); var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); require('@dynamic-labs/sdk-api-core'); require('../../shared/logger.cjs'); require('@dynamic-labs/iconic'); require('@dynamic-labs/wallet-connector-core'); var arrowDown = require('../../shared/assets/arrow-down.cjs'); require('../../context/ViewContext/ViewContext.cjs'); require('@dynamic-labs/wallet-book'); require('@dynamic-labs/utils'); require('../../utils/constants/colors.cjs'); require('../../utils/constants/values.cjs'); require('../../shared/consts/index.cjs'); var classNames = require('../../utils/functions/classNames/classNames.cjs'); var Icon = require('../Icon/Icon.cjs'); var Typography = require('../Typography/Typography.cjs'); var getDisplayValue = require('./utils/getDisplayValue/getDisplayValue.cjs'); const Select = (_a) => { var { children, className = '', id, label, value, error = false, selectDataTestId, message } = _a, selectProps = _tslib.__rest(_a, ["children", "className", "id", "label", "value", "error", "selectDataTestId", "message"]); const selectRef = React.useRef(null); const [displayValue, setDisplayValue] = React.useState(); React.useLayoutEffect(() => { if (!value) return; const selectElement = selectRef.current; setDisplayValue(getDisplayValue.getDisplayValue(selectElement)); }, [value, setDisplayValue]); return (jsxRuntime.jsxs("div", { className: 'select__field', children: [jsxRuntime.jsxs("div", { className: classNames.classNames(className, 'select__container'), children: [jsxRuntime.jsxs("label", { className: classNames.classNames('select__body', { select__error: error, select__has_value: Boolean(displayValue), }), htmlFor: id, children: [jsxRuntime.jsx("span", { className: 'select__value', children: displayValue || jsxRuntime.jsx("span", { children: "\u00A0" }) }), jsxRuntime.jsx("span", { className: 'select__label', children: label }), jsxRuntime.jsx("div", { className: 'select__control_icon', children: jsxRuntime.jsx(Icon.Icon, { size: 'medium', children: jsxRuntime.jsx(arrowDown.ReactComponent, {}) }) })] }), jsxRuntime.jsx("select", Object.assign({}, selectProps, { "data-testid": selectDataTestId, ref: selectRef, id: id, value: value, placeholder: label, className: 'select', children: children }))] }), message && (jsxRuntime.jsx(Typography.Typography, { className: classNames.classNames('select__message', { select__message__error: error, }), variant: 'body_mini', children: message }))] })); }; exports.Select = Select;