• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

teableio / teable / 8536869866

03 Apr 2024 10:05AM CUT coverage: 21.234% (-0.3%) from 21.535%
8536869866

Pull #514

github

web-flow
Merge 91a25d710 into 45ee7ebb3
Pull Request #514: refactor: user and link selector

1394 of 2532 branches covered (55.06%)

27 of 1620 new or added lines in 60 files covered. (1.67%)

4 existing lines in 2 files now uncovered.

14588 of 68702 relevant lines covered (21.23%)

2.02 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/packages/sdk/src/components/editor/user/UserOption.tsx
NEW
1
import { Avatar, AvatarFallback, AvatarImage, cn } from '@teable/ui-lib';
×
NEW
2
import { useMemo, isValidElement } from 'react';
×
NEW
3
import { convertNextImageUrl } from '../../grid-enhancements';
×
NEW
4

×
NEW
5
interface IUserTagProps {
×
NEW
6
  className?: string;
×
NEW
7
  name: string;
×
NEW
8
  email?: string;
×
NEW
9
  avatar?: string | null | React.ReactNode;
×
NEW
10
}
×
NEW
11

×
NEW
12
export const UserOption = (props: IUserTagProps) => {
×
NEW
13
  const { className, name, email, avatar } = props;
×
NEW
14
  const avatarCom = useMemo(() => {
×
NEW
15
    if (isValidElement(avatar)) {
×
NEW
16
      return avatar;
×
NEW
17
    }
×
NEW
18
    return (
×
NEW
19
      <>
×
NEW
20
        <AvatarImage
×
NEW
21
          src={
×
NEW
22
            avatar
×
NEW
23
              ? convertNextImageUrl({
×
NEW
24
                  url: avatar as string,
×
NEW
25
                  w: 64,
×
NEW
26
                  q: 75,
×
NEW
27
                })
×
NEW
28
              : undefined
×
NEW
29
          }
×
NEW
30
          alt={name}
×
NEW
31
        />
×
NEW
32
        <AvatarFallback className="text-sm">{name.slice(0, 1)}</AvatarFallback>
×
NEW
33
      </>
×
NEW
34
    );
×
NEW
35
  }, [avatar, name]);
×
NEW
36

×
NEW
37
  return (
×
NEW
38
    <div className={cn('flex items-center gap-4', className)}>
×
NEW
39
      <Avatar className="box-content size-7 cursor-pointer border">{avatarCom}</Avatar>
×
NEW
40
      <div>
×
NEW
41
        <p className="text-sm font-medium leading-none">{name}</p>
×
NEW
42
        {email && <p className="text-sm text-muted-foreground">{email}</p>}
×
NEW
43
      </div>
×
NEW
44
    </div>
×
NEW
45
  );
×
NEW
46
};
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc