# Introduction Avoid having multiple `isDefined` definition across our pacakges Also avoid importing `isDefined` from `twenty-ui` which exposes a huge barrel for a such little util function ## In a nutshell Removed own `isDefined.ts` definition from `twenty-ui` `twenty-front` and `twenty-server` to move it to `twenty-shared`. Updated imports for each packages, and added explicit dependencies to `twenty-shared` if not already in place Related PR https://github.com/twentyhq/twenty/pull/9941
16 lines
444 B
TypeScript
16 lines
444 B
TypeScript
import { isFunction } from '@sniptt/guards';
|
|
import { MutableRefObject, Ref } from 'react';
|
|
import { isDefined } from 'twenty-shared';
|
|
|
|
export const combineRefs = <T>(...refs: (Ref<T> | undefined)[]) => {
|
|
return (node: T) => {
|
|
for (const ref of refs) {
|
|
if (isFunction(ref)) {
|
|
ref(node);
|
|
} else if (isDefined(ref) && 'current' in ref) {
|
|
(ref as MutableRefObject<T | null>).current = node;
|
|
}
|
|
}
|
|
};
|
|
};
|