kabisa/kudos-frontend

View on GitHub
src/modules/choose-team/components/Invite.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { gql } from "@apollo/client";

import ChoiceButton from "./ChoiceButton";

import s from "./ChooseTeam.module.scss";

export const MUTATION_ACCEPT_INVITE = gql`
  mutation AcceptTeamInvite($team_invite_id: ID!) {
    acceptTeamInvite(teamInviteId: $team_invite_id) {
      teamInvite {
        id
      }
    }
  }
`;

export const MUTATION_DECLINE_INVITE = gql`
  mutation DeclineTeamInvite($team_invite_id: ID!) {
    declineTeamInvite(teamInviteId: $team_invite_id) {
      teamInvite {
        id
      }
    }
  }
`;

export interface InviteModel {
  id: string;
  team: {
    id: string;
    name: string;
  };
}

export interface Props {
  invite: InviteModel;
}

export function Invite(props: Props) {
  return (
    <div className={s.root} data-testid="kudo-invite">
      <p className={s.text}>{props.invite.team.name}</p>
      <ChoiceButton
        inviteId={props.invite.id}
        variant="primary"
        mutation={MUTATION_ACCEPT_INVITE}
        text="Accept"
        teamId={props.invite.team.id}
        accept
      />
      <ChoiceButton
        inviteId={props.invite.id}
        variant="secondary"
        mutation={MUTATION_DECLINE_INVITE}
        text="Decline"
        teamId={props.invite.team.id}
      />
    </div>
  );
}