carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 1.88 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),t=require("./form-summary.style.js"),n=require("../../icon/icon.component.js"),o=require("../../../hooks/__internal__/useLocale/useLocale.js");function u(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){u(e,r,t[r])}))}return e}const a=({type:u,errorCount:l=0,warningCount:a=0})=>{const s=o.default(),i={errorCount:l,warningCount:a},c=r.useMemo((()=>s.errors.messages.formSummary(l,a,u)),[s.errors.messages,l,a,u]);return i[`${u}Count`]?e.jsxs(e.Fragment,{children:[e.jsx(t.StyledMessagePrefix,{children:null==c?void 0:c[0]}),e.jsxs(t.StyledInternalSummary,{type:u,"data-element":`${u}s`,"data-role":"internal-summary",children:[e.jsx(n.default,{type:u}),e.jsx("span",{children:null==c?void 0:c[1]})]})]}):null};exports.Summary=a,exports.default=r=>{var{fullWidth:n}=r,o=function(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(r,["fullWidth"]);return e.jsxs(t.StyledFormSummary,{showSummary:!(!o.errorCount&&!o.warningCount),"data-element":"form-summary","data-role":"form-summary",fullWidth:n,children:[e.jsx(a,l({type:"error"},o)),e.jsx(a,l({type:"warning"},o)),o.children]})};