All files / app/codeCharta/state/effects/nodeContextMenu/focusButtons isNodeFocused.pipe.ts

100% Statements 8/8
100% Branches 5/5
100% Functions 1/1
100% Lines 6/6

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 305x                         5x   11x 6x           5x 5x            
import { Pipe, PipeTransform } from "@angular/core"
 
import { CodeMapNode } from "../../../../codeCharta.model"
 
type IsNodeFocusedType = {
    isNodeFocused: boolean
    isParentFocused: boolean
}
 
@Pipe({
    name: "isNodeFocused",
    standalone: true
})
export class IsNodeFocusedPipe implements PipeTransform {
    transform(focusedNodePath: string | undefined, node: Pick<CodeMapNode, "path">): IsNodeFocusedType {
        if (!focusedNodePath || !node) {
            return {
                isNodeFocused: false,
                isParentFocused: false
            }
        }
 
        const isNodeFocused = focusedNodePath === node.path
        return {
            isNodeFocused,
            isParentFocused: !isNodeFocused && node.path.startsWith(focusedNodePath)
        }
    }
}