diff --git a/packages/avatar/package.json b/packages/avatar/package.json index a266794ea6..06090db028 100644 --- a/packages/avatar/package.json +++ b/packages/avatar/package.json @@ -16,6 +16,7 @@ }, "dependencies": { "@leafygreen-ui/emotion": "workspace:^", + "@leafygreen-ui/hooks": "workspace:^", "@leafygreen-ui/icon": "workspace:^", "@leafygreen-ui/lib": "workspace:^", "@leafygreen-ui/logo": "workspace:^", diff --git a/packages/avatar/src/AssistantAvatar/AssistantAvatar.tsx b/packages/avatar/src/AssistantAvatar/AssistantAvatar.tsx index a19fbaf74f..8ab9a247c4 100644 --- a/packages/avatar/src/AssistantAvatar/AssistantAvatar.tsx +++ b/packages/avatar/src/AssistantAvatar/AssistantAvatar.tsx @@ -1,5 +1,6 @@ import React from 'react'; +import { useIdAllocator } from '@leafygreen-ui/hooks'; import { createGlyphComponent } from '@leafygreen-ui/icon'; import { useDarkMode } from '@leafygreen-ui/leafygreen-provider'; @@ -10,8 +11,6 @@ import { } from './AssistantAvatar.styles'; import { AssistantAvatarProps } from './AssistantAvatar.types'; -const GRADIENT_ID = 'sparkle-gradient'; - export const AssistantAvatar: React.ComponentType = createGlyphComponent( 'Sparkle', @@ -21,7 +20,11 @@ export const AssistantAvatar: React.ComponentType = ...rest }: AssistantAvatarProps) => { const { darkMode, theme } = useDarkMode(darkModeProp); - const fill = disabled ? getDisabledFill(theme) : `url(#${GRADIENT_ID})`; + const gradientId = useIdAllocator({ + prefix: 'lg-assistant_avatar-gradient', + id: rest.id, + }); + const fill = disabled ? getDisabledFill(theme) : `url(#${gradientId})`; const gradientStartColor = getGradientStartColor(darkMode); const gradientEndColor = getGradientEndColor(darkMode); @@ -38,7 +41,7 @@ export const AssistantAvatar: React.ComponentType = {!disabled && (