All files / web/modules/score/delete DeleteScore.tsx

95.45% Statements 21/22
100% Branches 2/2
100% Functions 4/4
94.12% Lines 16/17

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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 582x 2x 2x 2x 2x 2x 2x                 2x                   2x   1x     2x   1x 1x           1x               2x                 2x  
import Icon from 'antd/lib/icon';
import message from 'antd/lib/message';
import * as React from 'react';
import { Mutation } from 'react-apollo';
import styled from 'styled-components';
import { DELETE_SCORE } from '../mutations';
import { SCORE } from '../queries';
 
interface IProps {
  userSub: string;
  itemId: string;
  refetchQueries: any[];
  value?: number;
}
 
const IconWrapper = styled.span`
  cursor: pointer;
  color: rgba(0, 0, 0, 0.45);
 
  &:hover {
    color: #000;
  }
  padding: 0 10px;
`;
 
const DeleteScore = ({ userSub, itemId, refetchQueries, value }: IProps) => {
  if (!value) {
    return null;
  }
 
  const handleClick = (deleteReaction: any) => () => {
    try {
      deleteReaction({ variables: { userSub, itemId } });
      message.success('Hodnocení úspěšně odebráno');
    } catch (e) {
      message.error(e.message);
    }
  };
 
  return (
    <Mutation
      mutation={DELETE_SCORE}
      refetchQueries={[
        ...refetchQueries,
        { query: SCORE, variables: { itemId, userSub } },
      ]}
    >
      {deleteReaction => (
        <IconWrapper onClick={handleClick(deleteReaction)}>
          <Icon type="close-circle" />
        </IconWrapper>
      )}
    </Mutation>
  );
};
 
export default DeleteScore;