All files / client/src/views/event-log EventLogEventMessage.tsx

28.57% Statements 2/7
0% Branches 0/8
100% Functions 1/1
28.57% Lines 2/7

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                              356x         99x                                            
import { ReactElement } from "react";
import { EventLogNewAssignment } from "client/views/event-log/EventLogNewAssignment";
import { EventLogNoAssignment } from "client/views/event-log/EventLogNoAssignment";
import { EventLogAction, EventLogItem } from "shared/types/models/eventLog";
import { ProgramItem } from "shared/types/models/programItem";
import { exhaustiveSwitchGuard } from "shared/utils/exhaustiveSwitchGuard";
import { EventLogProgramItemCancelled } from "client/views/event-log/EventLogProgramItemCancelled";
import { EventLogProgramItemMoved } from "client/views/event-log/EventLogProgramItemMoved";
 
interface Props {
  eventLogItem: EventLogItem;
  programItems: readonly ProgramItem[];
  showDetails: boolean;
}
 
export const EventLogEventMessage = ({
  eventLogItem,
  programItems,
  showDetails,
}: Props): ReactElement => {
  switch (eventLogItem.action) {
    case EventLogAction.NEW_ASSIGNMENT:
      return (
        <EventLogNewAssignment
          eventLogItem={eventLogItem}
          programItems={programItems}
          showDetails={showDetails}
        />
      );
    case EventLogAction.NO_ASSIGNMENT:
      return <EventLogNoAssignment eventLogItem={eventLogItem} />;
    case EventLogAction.PROGRAM_ITEM_CANCELLED:
    case EventLogAction.PROGRAM_ITEM_DELETED:
    case EventLogAction.PROGRAM_ITEM_NO_KONSTI_SIGNUP_ANYMORE:
    case EventLogAction.PROGRAM_ITEM_NO_LOTTERY_ANYMORE:
      return <EventLogProgramItemCancelled eventLogItem={eventLogItem} />;
    case EventLogAction.PROGRAM_ITEM_MOVED:
      return <EventLogProgramItemMoved eventLogItem={eventLogItem} />;
    default:
      return exhaustiveSwitchGuard(eventLogItem.action);
  }
};