MCPcopy
hub / github.com/clientIO/joint / useElement

Function useElement

packages/joint-react/src/hooks/use-element.ts:36–62  ·  view source on GitHub ↗
(
  selector: (item: Element) => ReturnedElements = (item) => item as unknown as ReturnedElements,
  isEqual: (a: ReturnedElements, b: ReturnedElements) => boolean = util.isEqual
)

Source from the content-addressed store, hash-verified

34 * @returns The selected element based on the current cell id.
35 */
36export function useElement<Element extends GraphElement, ReturnedElements = Element>(
37 selector: (item: Element) => ReturnedElements = (item) => item as unknown as ReturnedElements,
38 isEqual: (a: ReturnedElements, b: ReturnedElements) => boolean = util.isEqual
39): ReturnedElements {
40 const id = useCellId();
41 const { subscribe, getElement } = useGraphStore();
42
43 const subscribeForElement = useCallback(
44 (subscribeCallback: () => void) => {
45 return subscribe((changedIds) => {
46 if (changedIds?.has(id)) {
47 subscribeCallback();
48 }
49 });
50 },
51 [id, subscribe]
52 );
53
54 const element = useSyncExternalStoreWithSelector(
55 subscribeForElement,
56 () => getElement<Element>(id),
57 () => getElement<Element>(id),
58 selector,
59 isEqual
60 );
61 return element;
62}

Callers 10

RectRenderComponentFunction · 0.90
RectRenderComponentFunction · 0.90
RectRenderComponentFunction · 0.90
RectRenderComponentFunction · 0.90
ForeignObjectDecoratorFunction · 0.90
SVGDecoratorFunction · 0.90
RenderItemFunction · 0.90
RenderItemFunction · 0.90
HTMLElementItemComponentFunction · 0.90

Calls 4

useCellIdFunction · 0.90
useGraphStoreFunction · 0.90
getElementFunction · 0.50
hasMethod · 0.45

Tested by

no test coverage detected