92a3337aeb
CI Pipeline / test (20) (pull_request) Successful in 2m41s
CI Pipeline / test (18) (pull_request) Successful in 3m21s
CI Pipeline / e2e (chromium) (pull_request) Failing after 1m25s
CI Pipeline / e2e (firefox) (pull_request) Failing after 1m24s
CI Pipeline / e2e (webkit) (pull_request) Failing after 1m24s
CI Pipeline / visual-regression (pull_request) Failing after 1m53s
CI Pipeline / performance (pull_request) Failing after 1m31s
CI Pipeline / lint (pull_request) Failing after 1m5s
CI Pipeline / storybook (pull_request) Successful in 1m36s
CI Pipeline / build (pull_request) Failing after 1m19s
31 lines
845 B
TypeScript
31 lines
845 B
TypeScript
import React, { memo } from "react";
|
|
|
|
interface AvatarContainerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
children?: React.ReactNode;
|
|
size?: "small" | "medium" | "large" | "xlarge";
|
|
className?: string;
|
|
}
|
|
|
|
const AvatarContainer = memo<AvatarContainerProps>(
|
|
({ children, size = "small", className = "", ...props }) => {
|
|
const sizeStyles: Record<string, string> = {
|
|
small: "flex -space-x-[var(--spacing-scale-008)]",
|
|
medium: "flex -space-x-[9px]",
|
|
large: "flex -space-x-[var(--spacing-scale-010)]",
|
|
xlarge: "flex -space-x-[13px]",
|
|
};
|
|
|
|
const baseStyles = `items-center ${sizeStyles[size]} ${className}`;
|
|
|
|
return (
|
|
<div className={baseStyles} {...props}>
|
|
{children}
|
|
</div>
|
|
);
|
|
},
|
|
);
|
|
|
|
AvatarContainer.displayName = "AvatarContainer";
|
|
|
|
export default AvatarContainer;
|