UNPKG

@carbon/ibm-products

Version:

Carbon for IBM Products

101 lines (96 loc) 3.75 kB
/** * Copyright IBM Corp. 2020, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; var React = require('react'); var cx = require('classnames'); var react = require('@carbon/react'); var index = require('../../_virtual/index.js'); var settings = require('../../settings.js'); var icons = require('@carbon/react/icons'); var _Error; const componentName = 'CardFooter'; const defaults = { actions: Object.freeze([]), productive: false}; const CardFooter = _ref => { let { actions = defaults.actions, disabled, footerActionIcon: FooterActionIcon, hasActions, hasButton, onPrimaryButtonClick, onSecondaryButtonClick, primaryButtonDisabled, primaryButtonHref, primaryButtonIcon, primaryButtonKind = 'primary', primaryButtonPlacement, primaryButtonText, productive = defaults.productive, secondaryButtonDisabled, secondaryButtonHref, secondaryButtonIcon, secondaryButtonKind = 'secondary', secondaryButtonPlacement, secondaryButtonText } = _ref; const blockClass = `${settings.pkg.prefix}--card`; const footerClass = `${settings.pkg.prefix}--card__footer`; const footerClasses = cx(footerClass, { [`${footerClass}-no-button`]: !hasButton }); return /*#__PURE__*/React.createElement("div", { className: footerClasses }, secondaryButtonText && secondaryButtonPlacement === 'bottom' && /*#__PURE__*/React.createElement(react.Button, { kind: productive ? 'ghost' : secondaryButtonKind, onClick: onSecondaryButtonClick, size: "md", renderIcon: secondaryButtonIcon, href: secondaryButtonHref, disabled: secondaryButtonDisabled }, secondaryButtonText), primaryButtonText && primaryButtonPlacement === 'bottom' && /*#__PURE__*/React.createElement(react.Button, { kind: productive ? 'ghost' : primaryButtonKind, onClick: onPrimaryButtonClick, size: "md", renderIcon: primaryButtonIcon, href: primaryButtonHref, disabled: primaryButtonDisabled }, primaryButtonText), hasActions && /*#__PURE__*/React.createElement("div", { className: `${blockClass}__actions` }, actions), FooterActionIcon && /*#__PURE__*/React.createElement("div", { className: `${blockClass}__action-icon` }, disabled ? _Error || (_Error = /*#__PURE__*/React.createElement(icons.Error, { size: 16 })) : /*#__PURE__*/React.createElement(FooterActionIcon, null))); }; /**@ts-ignore */ CardFooter.propTypes = { actions: index.default.oneOfType([index.default.array, index.default.node]), disabled: index.default.bool, footerActionIcon: index.default.oneOfType([index.default.func, index.default.object]), hasActions: index.default.bool, hasButton: index.default.bool, onPrimaryButtonClick: index.default.func, onSecondaryButtonClick: index.default.func, primaryButtonDisabled: index.default.bool, primaryButtonHref: index.default.string, primaryButtonIcon: index.default.oneOfType([index.default.func, index.default.object]), primaryButtonKind: index.default.oneOf(['primary', 'ghost']), primaryButtonPlacement: index.default.oneOf(['top', 'bottom']), primaryButtonText: index.default.string, productive: index.default.bool, secondaryButtonDisabled: index.default.bool, secondaryButtonHref: index.default.string, secondaryButtonIcon: index.default.oneOfType([index.default.func, index.default.object]), secondaryButtonKind: index.default.oneOf(['secondary', 'ghost']), secondaryButtonPlacement: index.default.oneOf(['top', 'bottom']), secondaryButtonText: index.default.string }; /**@ts-ignore */ CardFooter.displayName = componentName; exports.CardFooter = CardFooter;