import { CustomizableHeaderProps, TooltipProps } from "@app/models/components"; import React, { CSSProperties } from "react"; import Avatar from "../avatar/Avatar"; import InputField from "../input-field/InputField"; import Button from "../button/Button"; import "./customizable-header-styles.scss"; import { AddIcon, EditIcon, HelpIcon, RemoveIcon, TrashCanIcon, } from "@app/assets/images/icons"; import IconButton from "../icon-button/IconButton"; import Tooltip from "../Tooltip/Tooltip"; import InfoBadge from "../InfoBadge/InfoBadge"; const CustomizableHeader: React.FC = ({ fieldInfo, avatar, inputField, actionButton, title, isEditable, onUpdateImage, onRemoveImage, classes, headerLink, onRemoveSocialIcon, socialIcons = [], onSocialIconClick, }) => { const rootClasses = [ "customizableHeader-root", ...(classes || []), isEditable && "customizableHeader-editable", ] .filter(Boolean) .join(" "); const tooltipProps: TooltipProps = { text: fieldInfo?.description }; const tagStyle: CSSProperties = { backgroundColor: "transparent", color: "#868686", }; const showLabel = isEditable && fieldInfo?.label; const showDescription = isEditable && fieldInfo?.description; const showTitle = title && !isEditable; const showInputField = inputField && isEditable; const handleRemoveSocialIcon = ( event: React.MouseEvent, index: number ) => { event.stopPropagation(); onRemoveSocialIcon?.(index); }; return (
{showLabel && (
{showDescription && ( )}
)}
{" "}
{!isEditable && headerLink ? ( ) : ( )} {isEditable && (
)}
{showTitle && (

{title}

{" "}
)} {showInputField && (
)}
{socialIcons?.map((socialIconProps, index) => (
{isEditable && (
{ onSocialIconClick?.(index); }} > handleRemoveSocialIcon(event, index) } id="customizableHeader-RemoveIcon" />
)}
))} {isEditable && (
{actionButton?.text && actionButton?.onClickHandler && (
)}
); }; export default CustomizableHeader;