Socket
Socket
Sign inDemoInstall

use-callback-ref

Package Overview
Dependencies
7
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.5 to 1.3.0

dist/es2019/assignRef.d.ts

2

dist/es2015/createRef.js

@@ -21,4 +21,4 @@ /**

}
}
},
};
}

@@ -0,3 +1,3 @@

import { assignRef } from './assignRef';
import { createCallbackRef } from './createRef';
import { assignRef } from './assignRef';
/**

@@ -17,5 +17,3 @@ * Merges two or more refs together providing a single interface to set their value

export function mergeRefs(refs) {
return createCallbackRef(function (newValue) {
return refs.forEach(function (ref) { return assignRef(ref, newValue); });
});
return createCallbackRef(function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });
}

@@ -22,4 +22,5 @@ /**

var usedRef = ref || nullCallback;
if (weakMem.has(usedRef)) {
return weakMem.get(usedRef);
var storedRef = weakMem.get(usedRef);
if (storedRef) {
return storedRef;
}

@@ -26,0 +27,0 @@ var cb = refToCallback(usedRef);

import { ReactRef, RefObject } from './types';
export declare function transformRef<T, K>(ref: ReactRef<K>, transformer: (original: T) => K): RefObject<T>;
/**
* Transforms one ref to another
* @example
* ```tsx
* const ResizableWithRef = forwardRef((props, ref) =>
* <Resizable {...props} ref={transformRef(ref, i => i ? i.resizable : null)}/>
* );
* ```
*/
export declare function transformRef<T, K>(ref: ReactRef<K>, transformer: (original: T | null) => K): RefObject<T>;
import { assignRef } from './assignRef';
import { createCallbackRef } from './createRef';
/**
* Transforms one ref to another
* @example
* ```tsx
* const ResizableWithRef = forwardRef((props, ref) =>
* <Resizable {...props} ref={transformRef(ref, i => i ? i.resizable : null)}/>
* );
* ```
*/
export function transformRef(ref, transformer) {
return createCallbackRef(function (value) { return assignRef(ref, transformer(value)); });
}
import * as React from 'react';
export declare type RefCallback<T> = (newValue: T | null) => void;
export declare type RefObject<T> = React.MutableRefObject<T | null>;
export declare type ReactRef<T> = RefCallback<T> | RefObject<T> | null;
export declare type DefinedReactRef<T> = RefCallback<T> | RefObject<T>;
export declare type ReactRef<T> = DefinedReactRef<T> | null;

@@ -0,3 +1,3 @@

import { assignRef } from './assignRef';
import { useCallbackRef } from './useRef';
import { assignRef } from './assignRef';
/**

@@ -18,5 +18,3 @@ * Merges two or more refs together providing a single interface to set their value

export function useMergeRefs(refs, defaultValue) {
return useCallbackRef(defaultValue, function (newValue) {
return refs.forEach(function (ref) { return assignRef(ref, newValue); });
});
return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });
}

@@ -33,4 +33,4 @@ import { useState } from 'react';

}
}
}
},
},
}); })[0];

@@ -37,0 +37,0 @@ // update callback

@@ -15,2 +15,2 @@ import { ReactRef, RefObject } from './types';

*/
export declare function useTransformRef<T, K>(ref: ReactRef<K>, transformer: (original: T) => K): RefObject<T>;
export declare function useTransformRef<T, K>(ref: ReactRef<K>, transformer: (original: T | null) => K): RefObject<T>;

@@ -0,3 +1,3 @@

import { assignRef } from './assignRef';
import { useCallbackRef } from './useRef';
import { assignRef } from './assignRef';
/**

@@ -17,5 +17,3 @@ * Create a _lense_ on Ref, making it possible to transform ref value

export function useTransformRef(ref, transformer) {
return useCallbackRef(undefined, function (value) {
return assignRef(ref, transformer(value));
});
return useCallbackRef(null, function (value) { return assignRef(ref, transformer(value)); });
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.assignRef = void 0;
/**

@@ -4,0 +5,0 @@ * Assigns a value for a given ref, no matter of the ref format

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCallbackRef = void 0;
/**

@@ -23,5 +24,5 @@ * creates a Ref object with on change callback

}
}
},
};
}
exports.createCallbackRef = createCallbackRef;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRefToCallback = exports.refToCallback = exports.transformRef = exports.useTransformRef = exports.useMergeRefs = exports.mergeRefs = exports.createCallbackRef = exports.useCallbackRef = exports.assignRef = void 0;
var assignRef_1 = require("./assignRef");
exports.assignRef = assignRef_1.assignRef;
Object.defineProperty(exports, "assignRef", { enumerable: true, get: function () { return assignRef_1.assignRef; } });
// callback ref
var useRef_1 = require("./useRef");
exports.useCallbackRef = useRef_1.useCallbackRef;
Object.defineProperty(exports, "useCallbackRef", { enumerable: true, get: function () { return useRef_1.useCallbackRef; } });
var createRef_1 = require("./createRef");
exports.createCallbackRef = createRef_1.createCallbackRef;
Object.defineProperty(exports, "createCallbackRef", { enumerable: true, get: function () { return createRef_1.createCallbackRef; } });
// merge ref
var mergeRef_1 = require("./mergeRef");
exports.mergeRefs = mergeRef_1.mergeRefs;
Object.defineProperty(exports, "mergeRefs", { enumerable: true, get: function () { return mergeRef_1.mergeRefs; } });
var useMergeRef_1 = require("./useMergeRef");
exports.useMergeRefs = useMergeRef_1.useMergeRefs;
Object.defineProperty(exports, "useMergeRefs", { enumerable: true, get: function () { return useMergeRef_1.useMergeRefs; } });
// transform ref
var useTransformRef_1 = require("./useTransformRef");
exports.useTransformRef = useTransformRef_1.useTransformRef;
Object.defineProperty(exports, "useTransformRef", { enumerable: true, get: function () { return useTransformRef_1.useTransformRef; } });
var transformRef_1 = require("./transformRef");
exports.transformRef = transformRef_1.transformRef;
Object.defineProperty(exports, "transformRef", { enumerable: true, get: function () { return transformRef_1.transformRef; } });
// refToCallback
var refToCallback_1 = require("./refToCallback");
exports.refToCallback = refToCallback_1.refToCallback;
exports.useRefToCallback = refToCallback_1.useRefToCallback;
Object.defineProperty(exports, "refToCallback", { enumerable: true, get: function () { return refToCallback_1.refToCallback; } });
Object.defineProperty(exports, "useRefToCallback", { enumerable: true, get: function () { return refToCallback_1.useRefToCallback; } });
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.mergeRefs = void 0;
var assignRef_1 = require("./assignRef");
var createRef_1 = require("./createRef");
var assignRef_1 = require("./assignRef");
/**

@@ -19,6 +20,4 @@ * Merges two or more refs together providing a single interface to set their value

function mergeRefs(refs) {
return createRef_1.createCallbackRef(function (newValue) {
return refs.forEach(function (ref) { return assignRef_1.assignRef(ref, newValue); });
});
return (0, createRef_1.createCallbackRef)(function (newValue) { return refs.forEach(function (ref) { return (0, assignRef_1.assignRef)(ref, newValue); }); });
}
exports.mergeRefs = mergeRefs;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRefToCallback = exports.refToCallback = void 0;
/**

@@ -25,4 +26,5 @@ * Unmemoized version of {@link useRefToCallback}

var usedRef = ref || nullCallback;
if (weakMem.has(usedRef)) {
return weakMem.get(usedRef);
var storedRef = weakMem.get(usedRef);
if (storedRef) {
return storedRef;
}

@@ -29,0 +31,0 @@ var cb = refToCallback(usedRef);

import { ReactRef, RefObject } from './types';
export declare function transformRef<T, K>(ref: ReactRef<K>, transformer: (original: T) => K): RefObject<T>;
/**
* Transforms one ref to another
* @example
* ```tsx
* const ResizableWithRef = forwardRef((props, ref) =>
* <Resizable {...props} ref={transformRef(ref, i => i ? i.resizable : null)}/>
* );
* ```
*/
export declare function transformRef<T, K>(ref: ReactRef<K>, transformer: (original: T | null) => K): RefObject<T>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformRef = void 0;
var assignRef_1 = require("./assignRef");
var createRef_1 = require("./createRef");
/**
* Transforms one ref to another
* @example
* ```tsx
* const ResizableWithRef = forwardRef((props, ref) =>
* <Resizable {...props} ref={transformRef(ref, i => i ? i.resizable : null)}/>
* );
* ```
*/
function transformRef(ref, transformer) {
return createRef_1.createCallbackRef(function (value) { return assignRef_1.assignRef(ref, transformer(value)); });
return (0, createRef_1.createCallbackRef)(function (value) { return (0, assignRef_1.assignRef)(ref, transformer(value)); });
}
exports.transformRef = transformRef;
import * as React from 'react';
export declare type RefCallback<T> = (newValue: T | null) => void;
export declare type RefObject<T> = React.MutableRefObject<T | null>;
export declare type ReactRef<T> = RefCallback<T> | RefObject<T> | null;
export declare type DefinedReactRef<T> = RefCallback<T> | RefObject<T>;
export declare type ReactRef<T> = DefinedReactRef<T> | null;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useMergeRefs = void 0;
var assignRef_1 = require("./assignRef");
var useRef_1 = require("./useRef");
var assignRef_1 = require("./assignRef");
/**

@@ -20,6 +21,4 @@ * Merges two or more refs together providing a single interface to set their value

function useMergeRefs(refs, defaultValue) {
return useRef_1.useCallbackRef(defaultValue, function (newValue) {
return refs.forEach(function (ref) { return assignRef_1.assignRef(ref, newValue); });
});
return (0, useRef_1.useCallbackRef)(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return (0, assignRef_1.assignRef)(ref, newValue); }); });
}
exports.useMergeRefs = useMergeRefs;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCallbackRef = void 0;
var react_1 = require("react");

@@ -19,3 +20,3 @@ /**

function useCallbackRef(initialValue, callback) {
var ref = react_1.useState(function () { return ({
var ref = (0, react_1.useState)(function () { return ({
// value

@@ -36,4 +37,4 @@ value: initialValue,

}
}
}
},
},
}); })[0];

@@ -40,0 +41,0 @@ // update callback

@@ -15,2 +15,2 @@ import { ReactRef, RefObject } from './types';

*/
export declare function useTransformRef<T, K>(ref: ReactRef<K>, transformer: (original: T) => K): RefObject<T>;
export declare function useTransformRef<T, K>(ref: ReactRef<K>, transformer: (original: T | null) => K): RefObject<T>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useTransformRef = void 0;
var assignRef_1 = require("./assignRef");
var useRef_1 = require("./useRef");
var assignRef_1 = require("./assignRef");
/**

@@ -19,6 +20,4 @@ * Create a _lense_ on Ref, making it possible to transform ref value

function useTransformRef(ref, transformer) {
return useRef_1.useCallbackRef(undefined, function (value) {
return assignRef_1.assignRef(ref, transformer(value));
});
return (0, useRef_1.useCallbackRef)(null, function (value) { return (0, assignRef_1.assignRef)(ref, transformer(value)); });
}
exports.useTransformRef = useTransformRef;
{
"name": "use-callback-ref",
"version": "1.2.5",
"version": "1.3.0",
"description": "The same useRef, but with callback",
"main": "dist/es5/index.js",
"jsnext:main": "dist/es2015/index.js",
"module": "dist/es2015/index.js",
"types": "dist/es5/index.d.ts",
"module:es2019": "dist/es2019/index.js",
"sideEffects": false,
"scripts": {
"test": "ts-react-toolbox test",
"bootstrap": "ts-react-toolbox init",
"dev": "ts-react-toolbox dev",
"test:ci": "ts-react-toolbox test --runInBand --coverage",
"build": "ts-react-toolbox build",
"prepublish": "yarn build",
"release": "ts-react-toolbox release",
"lint": "ts-react-toolbox lint",
"static": "ts-react-toolbox publish",
"format": "ts-react-toolbox format",
"analyze": "ts-react-toolbox analyze"
"dev": "lib-builder dev",
"test": "jest",
"test:ci": "jest --runInBand --coverage",
"build": "lib-builder build && yarn size:report",
"release": "yarn build && yarn test",
"size": "npx size-limit",
"size:report": "npx size-limit --json > .size.json",
"lint": "lib-builder lint",
"format": "lib-builder format",
"update": "lib-builder update",
"prepublish": "yarn build && yarn changelog",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"changelog:rewrite": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
},

@@ -23,9 +29,14 @@ "repository": "https://github.com/theKashey/use-callback-ref/",

"license": "MIT",
"dependencies": {},
"dependencies": {
"tslib": "^2.0.0"
},
"devDependencies": {
"ts-react-toolbox": "^0.2.11"
"@theuiteam/lib-builder": "^0.1.4",
"@size-limit/preset-small-lib": "^2.1.6",
"@types/enzyme-adapter-react-16": "^1.0.6",
"enzyme-adapter-react-16": "^1.15.6"
},
"peerDependencies": {
"react": "^16.8.0 || ^17.0.0",
"@types/react": "^16.8.0 || ^17.0.0"
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
"@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0"
},

@@ -38,7 +49,4 @@ "peerDependenciesMeta": {

"engines": {
"node": ">=8.5.0"
"node": ">=10"
},
"jsnext:main": "dist/es2015/index.js",
"module": "dist/es2015/index.js",
"types": "dist/es5/index.d.ts",
"files": [

@@ -53,16 +61,25 @@ "dist"

],
"size-limit": [
{
"path": "dist/es2015/index.js",
"limit": "0.4 KB"
},
{
"path": "dist/es2015/useRef.js",
"limit": "0.2 KB"
},
{
"path": "dist/es2015/useMergeRef.js",
"limit": "0.2 KB"
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
]
},
"lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --fix",
"git add"
],
"*.{js,css,json,md}": [
"prettier --write",
"git add"
]
},
"prettier": {
"printWidth": 120,
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc