import { HTMLAttributes, useEffect } from "react"; import { Padding } from "../../index"; import { IButtonTouch } from "../ButtonTouch/ButtonTouch"; import { getClassName, isDevaice, radnomPropsId } from "../utils"; import "./Group.css"; interface IGroup extends HTMLAttributes { children?: React.ReactNode, top?: React.ReactNode, description?: React.ReactNode, autoPadding?: boolean, background?: boolean, padding?: "auto" | "desktop" | "mobile", onClick?: IButtonTouch["onClick"] className?: HTMLAttributes["className"] }; const Group = ({ children, top, description, autoPadding = false, // false - Выключает автоматическое расставление отступов background = true, // false - Выключает background padding = `desktop`, onClick, className, ...props }: IGroup) => { return (
{ if (onClick) onClick(e); }} {...props} data-is_description={!!description} className={getClassName( [ `Group`, `Group--${padding == `auto` ? isDevaice() : padding ? `desktop` : `mobile` }`, ], className )} > {top && (
{top}
)}
{autoPadding ? {children} : children}
{description && (
{description}
)}
); } export default Group;