UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

67 lines (63 loc) 2.29 kB
"use client"; const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs'); const require_ref = require('../../utils/ref.cjs'); const require_utils_index = require('../../utils/index.cjs'); const require_hooks_use_controllable_state_index = require('../../hooks/use-controllable-state/index.cjs'); const require_i18n_provider = require('../../providers/i18n-provider/i18n-provider.cjs'); const require_use_field_props = require('../field/use-field-props.cjs'); let react = require("react"); react = require_rolldown_runtime.__toESM(react); //#region src/components/password-input/use-password-input.tsx const usePasswordInput = (props = {}) => { const { props: { defaultVisible, disabled, visible: visibleProp, onVisibleChange,...rest }, ariaProps, dataProps, eventProps } = require_use_field_props.useFieldProps(props); const [visible, setVisible] = require_hooks_use_controllable_state_index.useControllableState({ defaultValue: defaultVisible, value: visibleProp, onChange: onVisibleChange }); const { t } = require_i18n_provider.useI18n("passwordInput"); const onChangeVisibility = (0, react.useCallback)((ev) => { if (disabled || ev.button !== 0) return; ev.preventDefault(); setVisible((prev) => !prev); }, [disabled, setVisible]); const getInputProps = (0, react.useCallback)(({ ref,...props$1 } = {}) => ({ type: visible ? "text" : "password", disabled, ...ariaProps, ...dataProps, ...rest, ...props$1, ref: require_ref.mergeRefs(ref, rest.ref), onBlur: (0, require_utils_index.utils_exports.handlerAll)(eventProps.onBlur, props$1.onBlur), onFocus: (0, require_utils_index.utils_exports.handlerAll)(eventProps.onFocus, props$1.onFocus) }), [ visible, rest, disabled, dataProps, eventProps, ariaProps ]); return { setVisible, visible, getButtonProps: (0, react.useCallback)((props$1 = {}) => ({ type: "button", "aria-label": t("Toggle password visibility"), disabled, ...dataProps, ...props$1, onClick: (0, require_utils_index.utils_exports.handlerAll)(props$1.onClick, onChangeVisibility) }), [ onChangeVisibility, dataProps, disabled, t ]), getInputProps }; }; //#endregion exports.usePasswordInput = usePasswordInput; //# sourceMappingURL=use-password-input.cjs.map