All files / src/hooks/notifications notificationSubscriptions.ts

94.44% Statements 17/18
100% Branches 0/0
83.33% Functions 5/6
94.44% Lines 17/18

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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89                                                                33246x 545x     33246x           9412x 258x     9412x           33246x 9x     33246x           32740x 6x     32740x           8906x       8906x           8906x 23x     8906x    
import { ReadyState } from "react-use-websocket";
import { TaskRead } from "@/api/apiStore.gen.ts";
import {
  NotificationMessageType,
  useNotificationConnection,
} from "@/hooks/notifications/useNotificationConnection.ts";
 
export type BuildStateSolvedProperty = {
  id: number;
  name: string;
  value: number | number[];
  unit: string;
  unknown_units?: boolean;
};
 
export type BuildStateCompletionNotification = {
  context: {
    flowsheet_id: number;
    stream_id: number;
    task_id?: number | null;
    property_set_id?: number | null;
    request_version?: number | null;
  };
  status: "success" | "error";
  properties?: BuildStateSolvedProperty[] | null;
  error?: string | null;
  failure_kind?: "idaes-error" | "delivery-failure" | null;
};
 
export function useTaskCompletedSubscription(
  onMessage: (message: TaskRead) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as TaskRead);
  }, NotificationMessageType.TASK_COMPLETED);
 
  return readyState;
}
 
export function useTaskUpdatedSubscription(
  onMessage: (message: TaskRead) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as TaskRead);
  }, NotificationMessageType.TASK_UPDATED);
 
  return readyState;
}
 
export function useTaskCancelledSubscription(
  onMessage: (message: TaskRead) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as TaskRead);
  }, NotificationMessageType.TASK_CANCELLED);
 
  return readyState;
}
 
export function useTaskCancellingSubscription(
  onMessage: (message: TaskRead) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as TaskRead);
  }, NotificationMessageType.TASK_CANCELLING);
 
  return readyState;
}
 
export function useTaskChildrenCancelledSubscription(
  onMessage: (message: TaskRead) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as TaskRead);
  }, NotificationMessageType.TASK_CHILDREN_CANCELLED);
 
  return readyState;
}
 
export function useBuildStateCompletedSubscription(
  onMessage: (message: BuildStateCompletionNotification) => void,
): ReadyState {
  const { readyState } = useNotificationConnection((message) => {
    onMessage(message as BuildStateCompletionNotification);
  }, NotificationMessageType.BUILD_STATE_COMPLETED);
 
  return readyState;
}