import { isNull, isUndefined } from "./";
function currentCheck(ref) {
    var _a;
    const _ref = ref === null || ref === void 0 ? void 0 : ref.current;
    if ((_ref === null || _ref === void 0 ? void 0 : _ref.$ref) && ((_a = _ref.$ref) === null || _a === void 0 ? void 0 : _a.current)) {
        return currentCheck(_ref.$ref);
    }
    else {
        return _ref;
    }
}
const getRef = (ref, force) => {
    if (ref) {
        if (!isUndefined(ref === null || ref === void 0 ? void 0 : ref.current)) {
            // force если нужно просто вернуть первый уровень
            if (force || isNull(ref.current)) {
                return ref.current;
            }
            else {
                return currentCheck(ref);
            }
        }
        return ref;
    }
    return null;
};
export default getRef;
