All files / libs/tenants/users/profile/components/src/lib/roles/team-role TeamRoleBadge.tsx

0% Statements 0/28
0% Branches 0/1
0% Functions 0/1
0% Lines 0/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29                                                         
import { memo } from 'react';

import { Badge, BadgeHue } from '@allshares/studio-design-system';
import { assert } from '@amalia/ext/typescript';
import { TeamRole } from '@amalia/tenants/assignments/teams/types';

import { TeamRoleLabel } from './TeamRoleLabel';

export type TeamRoleBadgeProps = {
  readonly teamRole: TeamRole;
};

export const TeamRoleBadgeVariantRecord: Readonly<Record<TeamRole, BadgeHue>> = {
  [TeamRole.TEAM_MANAGER]: BadgeHue.MAGENTA,
  [TeamRole.TEAM_EMPLOYEE]: BadgeHue.BLUE,
} as const;

export const TeamRoleBadge = memo(function TeamRoleBadge({ teamRole }: TeamRoleBadgeProps) {
  assert(teamRole in TeamRoleBadgeVariantRecord, `Invalid team role: ${teamRole}`);

  const badgeVariant = TeamRoleBadgeVariantRecord[teamRole];

  return (
    <Badge variant={badgeVariant}>
      <TeamRoleLabel teamRole={teamRole} />
    </Badge>
  );
});