Skip to content

Commit

Permalink
feat(AvatarStack): add style prop (#5608)
Browse files Browse the repository at this point in the history
* feat(AvatarStack): add style prop

* add test

---------

Co-authored-by: Jon Rohan <[email protected]>
  • Loading branch information
hussam-i-am and jonrohan authored Jan 28, 2025
1 parent 1614755 commit 3a41430
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
5 changes: 5 additions & 0 deletions .changeset/nervous-planets-kneel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@primer/react": minor
---

feat(AvatarStack): add style prop
4 changes: 3 additions & 1 deletion packages/react/src/AvatarStack/AvatarStack.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ export type AvatarStackProps = {
size?: number | ResponsiveValue<number>
className?: string
children: React.ReactNode
style?: React.CSSProperties
} & SxProp

const AvatarStackBody = ({
Expand Down Expand Up @@ -254,6 +255,7 @@ const AvatarStack = ({
disableExpand,
size,
className,
style,
sx: sxProp = defaultSxProp,
}: AvatarStackProps) => {
const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG)
Expand Down Expand Up @@ -382,7 +384,7 @@ const AvatarStack = ({
data-align-right={enabled && alignRight ? '' : undefined}
data-responsive={enabled && (!size || isResponsiveValue(size)) ? '' : undefined}
className={clsx(wrapperClassNames, {[classes.AvatarStack]: enabled})}
style={enabled ? getResponsiveAvatarSizeStyles() : undefined}
style={enabled ? {...getResponsiveAvatarSizeStyles(), style} : style}
sx={avatarStackSx}
>
<AvatarStackBody
Expand Down
11 changes: 11 additions & 0 deletions packages/react/src/__tests__/AvatarStack.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,15 @@ describe('Avatar', () => {
)
expect(container.querySelector('[tabindex="0"]')).not.toBeInTheDocument()
})

it('should support `style` prop on the outermost element', () => {
const style = {backgroundColor: 'red'}
const {container} = HTMLRender(
<AvatarStack style={style}>
<img src="https://avatars.githubusercontent.com/primer" alt="" />
<img src="https://avatars.githubusercontent.com/github" alt="" />
</AvatarStack>,
)
expect(container.firstChild).toHaveStyle('background-color: red')
})
})

0 comments on commit 3a41430

Please sign in to comment.