11import { cn } from "src/lib/utils" ;
22import type { ComponentType } from "react" ;
3+ import { forwardRef } from "react" ;
34import {
45 CoolEmoji ,
56 HeartEyesEmoji ,
@@ -83,17 +84,15 @@ export const DefaultUserImage = ({
8384 ) ;
8485} ;
8586
86- export const UserImage = ( {
87- photo,
88- size = "md" ,
89- className,
90- userId,
91- } : {
92- photo ?: string | null ;
93- size ?: "sm" | "md" | "lg" ;
94- className ?: string ;
95- userId : string ;
96- } ) => {
87+ export const UserImage = forwardRef <
88+ HTMLImageElement ,
89+ {
90+ photo ?: string | null ;
91+ size ?: "sm" | "md" | "lg" ;
92+ className ?: string ;
93+ userId : string ;
94+ }
95+ > ( ( { photo, size = "md" , className, userId } , ref ) => {
9796 if ( ! photo ) {
9897 // Use default profile picture instead of emoji avatar
9998 const containerClass = cn (
@@ -106,7 +105,9 @@ export const UserImage = ({
106105 const defaultImage = getDefaultProfilePicture ( userId ) ;
107106
108107 // eslint-disable-next-line @next/next/no-img-element
109- return < img className = { containerClass } src = { defaultImage } alt = "" /> ;
108+ return (
109+ < img ref = { ref } className = { containerClass } src = { defaultImage } alt = "" />
110+ ) ;
110111 }
111112
112113 const containerClass = cn (
@@ -116,5 +117,7 @@ export const UserImage = ({
116117 ) ;
117118
118119 // eslint-disable-next-line @next/next/no-img-element
119- return < img className = { containerClass } src = { photo } alt = "" /> ;
120- } ;
120+ return < img ref = { ref } className = { containerClass } src = { photo } alt = "" /> ;
121+ } ) ;
122+
123+ UserImage . displayName = "UserImage" ;
0 commit comments