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