mirror of
https://github.com/bendtherules/react-fiber-traverse.git
synced 2026-08-18 22:01:49 +00:00
Docs - Added for findNode methods
This commit is contained in:
@@ -1,6 +1,21 @@
|
||||
import { FiberNode } from "./mocked-types";
|
||||
import { isNodeNotHtmlLike } from "./utils";
|
||||
|
||||
/**
|
||||
* Find node by component name, till first match.
|
||||
*
|
||||
* Matches against class and function name, doesn't match html-like nodes.
|
||||
* Returns null if no match is found.
|
||||
*
|
||||
* @note Highest chance of collision, least data access needed.
|
||||
* Different components with same name will collide.
|
||||
* Needs access to component name.
|
||||
*
|
||||
* @example
|
||||
* // returns FiberNode for first usage of 'AccordionMenu'
|
||||
* findNodeByComponentName(startNode, "AccordionMenu");
|
||||
*
|
||||
*/
|
||||
function findNodeByComponentName(
|
||||
node: FiberNode | null,
|
||||
expectedName: string
|
||||
@@ -29,6 +44,22 @@ function findNodeByComponentName(
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find node by component (i.e. class or function by reference), till first match.
|
||||
*
|
||||
* Matches against class and function by reference.
|
||||
* Returns null if no match is found.
|
||||
*
|
||||
* @note Medium chance of collision, medium data access needed.
|
||||
* This is safer than findNodeByComponentName, as different components with the same name won't collide.
|
||||
* But, two instances of the same component will still collide.
|
||||
* Needs access to component class or function.
|
||||
*
|
||||
* @example
|
||||
* // returns FiberNode for first usage of AccordionMenu
|
||||
* findNodeByComponent(startNode, AccordionMenu);
|
||||
*
|
||||
*/
|
||||
function findNodeByComponent(
|
||||
node: FiberNode | null,
|
||||
expectedClassOrFunction: React.ComponentType
|
||||
@@ -60,6 +91,20 @@ function findNodeByComponent(
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find node by component instance ref, till first match.
|
||||
*
|
||||
* Matches against class instances by reference.
|
||||
* Returns null if no match is found.
|
||||
*
|
||||
* @note Least chance of collision, maximum data access needed.
|
||||
* Needs access to component instance (through React ref usually).
|
||||
*
|
||||
* @example
|
||||
* // menuRef=createRef(); <AccordionMenu ref={menuRef}>
|
||||
* findNodeByComponentRef(startNode, menuRef.current);
|
||||
*
|
||||
*/
|
||||
function findNodeByComponentRef(
|
||||
node: FiberNode | null,
|
||||
expectedClassInstance: React.Component
|
||||
|
||||
Reference in New Issue
Block a user