UNPKG

@spark-ui/hooks

Version:

Common hooks for Spark UI

1 lines 1.28 kB
{"version":3,"sources":["../../src/use-merge-refs/useMergeRefs.tsx"],"sourcesContent":["import { Ref, RefCallback, RefObject, useMemo } from 'react'\n\nexport function assignRef<T>(ref: Ref<T> | null | undefined, value: T) {\n if (ref == null) {\n return\n }\n\n if (typeof ref === 'function') {\n ref(value)\n\n return\n }\n\n try {\n ;(ref as RefObject<T | null>).current = value\n } catch {\n throw new Error(`Cannot assign value '${value}' to ref '${ref}'`)\n }\n}\n\nexport function mergeRefs<T>(...refs: (Ref<T> | undefined)[]): RefCallback<T> {\n return value => {\n refs.forEach(ref => assignRef(ref, value))\n }\n}\n\nexport function useMergeRefs<T>(...refs: (Ref<T> | undefined)[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(...refs), refs)\n}\n"],"mappings":";AAAA,SAAsC,eAAe;AAE9C,SAAS,UAAa,KAAgC,OAAU;AACrE,MAAI,OAAO,MAAM;AACf;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ,YAAY;AAC7B,QAAI,KAAK;AAET;AAAA,EACF;AAEA,MAAI;AACF;AAAC,IAAC,IAA4B,UAAU;AAAA,EAC1C,QAAQ;AACN,UAAM,IAAI,MAAM,wBAAwB,KAAK,aAAa,GAAG,GAAG;AAAA,EAClE;AACF;AAEO,SAAS,aAAgB,MAA8C;AAC5E,SAAO,WAAS;AACd,SAAK,QAAQ,SAAO,UAAU,KAAK,KAAK,CAAC;AAAA,EAC3C;AACF;AAEO,SAAS,gBAAmB,MAA8B;AAE/D,SAAO,QAAQ,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI;AAC/C;","names":[]}