mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	chore: show avatars in cross-project change requests table.
Keeps using the same avatar cell as the project-based change requests table, but makes showing the avatar optional. Also adds a truncator to the created by cell, to avoid weird name stacking.
This commit is contained in:
		
							parent
							
								
									b9d81e5f59
								
							
						
					
					
						commit
						a9392e134f
					
				@ -2,24 +2,36 @@ import { TextCell } from 'component/common/Table/cells/TextCell/TextCell';
 | 
			
		||||
import { styled, Typography } from '@mui/material';
 | 
			
		||||
import { useSearchHighlightContext } from 'component/common/Table/SearchHighlightContext/SearchHighlightContext';
 | 
			
		||||
import { Highlighter } from 'component/common/Highlighter/Highlighter';
 | 
			
		||||
import {
 | 
			
		||||
    type AvatarUser,
 | 
			
		||||
    UserAvatar,
 | 
			
		||||
} from 'component/common/UserAvatar/UserAvatar';
 | 
			
		||||
import { Truncator } from 'component/common/Truncator/Truncator';
 | 
			
		||||
 | 
			
		||||
const StyledContainer = styled('div')(({ theme }) => ({
 | 
			
		||||
    display: 'flex',
 | 
			
		||||
    flexDirection: 'row',
 | 
			
		||||
    alignItems: 'center',
 | 
			
		||||
    margin: 0,
 | 
			
		||||
    columnGap: theme.spacing(0.5),
 | 
			
		||||
}));
 | 
			
		||||
 | 
			
		||||
export const AvatarCell = ({ value }: any) => {
 | 
			
		||||
type AvatarCellProps = {
 | 
			
		||||
    value: AvatarUser;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const AvatarCell = ({ value }: AvatarCellProps) => {
 | 
			
		||||
    const { searchQuery } = useSearchHighlightContext();
 | 
			
		||||
    return (
 | 
			
		||||
        <TextCell>
 | 
			
		||||
            <StyledContainer>
 | 
			
		||||
                <UserAvatar disableTooltip={true} user={value} />
 | 
			
		||||
                <Typography component={'span'} variant={'body2'}>
 | 
			
		||||
                    {' '}
 | 
			
		||||
                    <Highlighter search={searchQuery}>
 | 
			
		||||
                        {value?.username}
 | 
			
		||||
                    </Highlighter>
 | 
			
		||||
                    <Truncator title={value?.username}>
 | 
			
		||||
                        <Highlighter search={searchQuery}>
 | 
			
		||||
                            {value?.username}
 | 
			
		||||
                        </Highlighter>
 | 
			
		||||
                    </Truncator>
 | 
			
		||||
                </Typography>
 | 
			
		||||
            </StyledContainer>
 | 
			
		||||
        </TextCell>
 | 
			
		||||
 | 
			
		||||
@ -37,10 +37,12 @@ const StyledTooltipContent = styled(Box)({
 | 
			
		||||
    justifyContent: 'center',
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export type AvatarUser = Partial<
 | 
			
		||||
    Pick<IUser, 'id' | 'name' | 'email' | 'username' | 'imageUrl'>
 | 
			
		||||
>;
 | 
			
		||||
 | 
			
		||||
export interface IUserAvatarProps extends AvatarProps {
 | 
			
		||||
    user?: Partial<
 | 
			
		||||
        Pick<IUser, 'id' | 'name' | 'email' | 'username' | 'imageUrl'>
 | 
			
		||||
    >;
 | 
			
		||||
    user?: AvatarUser;
 | 
			
		||||
    src?: string;
 | 
			
		||||
    className?: string;
 | 
			
		||||
    sx?: SxProps<Theme>;
 | 
			
		||||
 | 
			
		||||
@ -12,12 +12,10 @@ export type ChangeRequestSearchItemSchemaOneOfCreatedBy = {
 | 
			
		||||
    id: number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Avatar image URL for the user.
 | 
			
		||||
     * @nullable
 | 
			
		||||
     */
 | 
			
		||||
    imageUrl?: string | null;
 | 
			
		||||
    imageUrl?: string;
 | 
			
		||||
    /**
 | 
			
		||||
     * Username of the user.
 | 
			
		||||
     * @nullable
 | 
			
		||||
     */
 | 
			
		||||
    username?: string | null;
 | 
			
		||||
    username?: string;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -12,12 +12,10 @@ export type ChangeRequestSearchItemSchemaOneOfFourCreatedBy = {
 | 
			
		||||
    id: number;
 | 
			
		||||
    /**
 | 
			
		||||
     * Avatar image URL for the user.
 | 
			
		||||
     * @nullable
 | 
			
		||||
     */
 | 
			
		||||
    imageUrl?: string | null;
 | 
			
		||||
    imageUrl?: string;
 | 
			
		||||
    /**
 | 
			
		||||
     * Username of the user.
 | 
			
		||||
     * @nullable
 | 
			
		||||
     */
 | 
			
		||||
    username?: string | null;
 | 
			
		||||
    username?: string;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user