11import React , { PropsWithChildren } from "react" ;
22import { HeadingPriority } from "../constants/heading-priority" ;
3+ import { IconSizes } from "../constants/icon-sizes" ;
4+ import { Icons } from "../constants/icons" ;
5+ import { Icon } from "../icons/icon" ;
6+ import "./heading.scss" ;
37
48// -----------------------------------------------------------------------------------------
59// #region Interfaces
610// -----------------------------------------------------------------------------------------
711
812export interface HeadingProps {
913 cssClassName ?: string ;
14+ icon ?: Icons ;
15+ iconSize ?: IconSizes ;
1016 id ?: string ;
1117 priority ?: HeadingPriority ;
1218}
@@ -20,7 +26,7 @@ export interface HeadingProps {
2026const Heading : React . FC < HeadingProps > = (
2127 props : PropsWithChildren < HeadingProps >
2228) => {
23- let cssClassNames : Array < any > = [ ] ;
29+ let cssClassNames : Array < any > = [ "c-heading" ] ;
2430
2531 if ( props . cssClassName ) {
2632 cssClassNames . push ( props . cssClassName ) ;
@@ -30,10 +36,22 @@ const Heading: React.FC<HeadingProps> = (
3036 className : cssClassNames . join ( " " ) ,
3137 } ;
3238
39+ const content = (
40+ < React . Fragment >
41+ { // if
42+ props . icon && (
43+ < Icon type = { props . icon } />
44+ ) }
45+ < span >
46+ { props . children }
47+ </ span >
48+ </ React . Fragment >
49+ )
50+
3351 return React . createElement (
3452 `h${ props . priority ?? HeadingPriority . Two } ` ,
3553 componentProps ,
36- props . children
54+ content
3755 ) ;
3856} ;
3957
0 commit comments