UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

49 lines (48 loc) 1.84 kB
"use client"; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties"; const _excluded = ["variant", "className", "showIndicator", "children", "text"]; import React, { useCallback, useContext } from 'react'; import classnames from 'classnames'; import DataContext from '../../DataContext/Context'; import Button from '../../../../components/button/Button'; import SubmitIndicator from '../SubmitIndicator'; import useTranslation from '../../hooks/useTranslation'; import { send } from '../../../../icons'; function SubmitButton(props) { const translations = useTranslation().SubmitButton; const { variant, className, showIndicator, children, text } = props, rest = _objectWithoutProperties(props, _excluded); const content = text || children || (variant === 'send' ? translations.sendText : translations.text); const { formState, handleSubmit, hasElementRef, props: dataContextProps } = useContext(DataContext) || {}; const { isolate } = dataContextProps || {}; const onClickHandler = useCallback(() => { if (!(hasElementRef !== null && hasElementRef !== void 0 && hasElementRef.current)) { handleSubmit === null || handleSubmit === void 0 ? void 0 : handleSubmit(); } }, [hasElementRef, handleSubmit]); return React.createElement(Button, _extends({ className: classnames('dnb-forms-submit-button', className), onClick: onClickHandler, type: isolate ? 'button' : 'submit', icon: variant === 'send' ? send : null }, rest), content, React.createElement(SubmitIndicator, { state: showIndicator ? 'pending' : formState })); } SubmitButton._supportsSpacingProps = true; export default SubmitButton; //# sourceMappingURL=SubmitButton.js.map