All files / src/components/debugger DebuggerActorLink.tsx

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

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                                                                                 
import React, { useCallback } from "react";
import { actorSelectors } from "store/features/entities/entitiesState";
import editorActions from "store/features/editor/editorActions";
import { useAppDispatch, useAppSelector } from "store/hooks";
import { actorName } from "shared/lib/entities/entitiesHelpers";
import { LinkButton } from "ui/debugger/LinkButton";
 
interface DebuggerActorLinkProps {
  id: string;
  sceneId: string;
}
 
const DebuggerActorLink = ({ id, sceneId }: DebuggerActorLinkProps) => {
  const dispatch = useAppDispatch();
  const actor = useAppSelector((state) => actorSelectors.selectById(state, id));
  const actorIndex = useAppSelector((state) =>
    actorSelectors.selectIds(state).indexOf(id)
  );
 
  const onSelect = useCallback(() => {
    dispatch(
      editorActions.selectActor({
        sceneId,
        actorId: id,
      })
    );
    dispatch(editorActions.editSearchTerm(""));
    dispatch(editorActions.editSearchTerm(sceneId));
  }, [dispatch, id, sceneId]);
 
  Iif (!actor) {
    return null;
  }
 
  return (
    <LinkButton onClick={onSelect}>{actorName(actor, actorIndex)}</LinkButton>
  );
};
 
export default DebuggerActorLink;