All files / src/components/debugger DebuggerTriggerLink.tsx

0% Statements 0/20
0% Branches 0/1
0% Functions 0/4
0% Lines 0/20

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                                                                                         
import React, { useCallback } from "react";
import { triggerSelectors } from "store/features/entities/entitiesState";
import editorActions from "store/features/editor/editorActions";
import { useAppDispatch, useAppSelector } from "store/hooks";
import { triggerName } from "shared/lib/entities/entitiesHelpers";
import { LinkButton } from "ui/debugger/LinkButton";
 
interface DebuggerTriggerLinkProps {
  id: string;
  sceneId: string;
}
 
const DebuggerTriggerLink = ({ id, sceneId }: DebuggerTriggerLinkProps) => {
  const dispatch = useAppDispatch();
  const trigger = useAppSelector((state) =>
    triggerSelectors.selectById(state, id)
  );
  const triggerIndex = useAppSelector((state) =>
    triggerSelectors.selectIds(state).indexOf(id)
  );
 
  const onSelect = useCallback(() => {
    dispatch(
      editorActions.selectTrigger({
        sceneId,
        triggerId: id,
      })
    );
    dispatch(editorActions.editSearchTerm(""));
    dispatch(editorActions.editSearchTerm(sceneId));
  }, [dispatch, id, sceneId]);
 
  Iif (!trigger) {
    return null;
  }
 
  return (
    <LinkButton onClick={onSelect}>
      {triggerName(trigger, triggerIndex)}
    </LinkButton>
  );
};
 
export default DebuggerTriggerLink;