From 450ffc92c76f4430a0787d2429309280f9568481 Mon Sep 17 00:00:00 2001 From: Ian Storm Taylor Date: Tue, 29 Nov 2016 17:16:57 -0800 Subject: [PATCH] add resetKeyGenerator util --- src/index.js | 4 +++- src/utils/generate-key.js | 35 ++++++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index 281ce849c..56c7e5b98 100644 --- a/src/index.js +++ b/src/index.js @@ -41,7 +41,7 @@ import Transforms from './transforms' */ import findDOMNode from './utils/find-dom-node' -import { setKeyGenerator } from './utils/generate-key' +import { resetKeyGenerator, setKeyGenerator } from './utils/generate-key' /** * Export. @@ -68,6 +68,7 @@ export { Text, Transforms, findDOMNode, + resetKeyGenerator, setKeyGenerator } @@ -90,5 +91,6 @@ export default { Text, Transforms, findDOMNode, + resetKeyGenerator, setKeyGenerator } diff --git a/src/utils/generate-key.js b/src/utils/generate-key.js index f855108c0..90240d12e 100644 --- a/src/utils/generate-key.js +++ b/src/utils/generate-key.js @@ -1,17 +1,22 @@ -import uniqueId from 'lodash/uniqueId' - /** - * Default the generator function to Lodash's implementation, which just returns - * incrementing numbers as strings. + * An auto-incrementing index for generating keys. + * + * @type {Number} + */ + +let n + +/** + * The global key generating function. * * @type {Function} */ -let generate = uniqueId +let generate /** - * Create a key. + * Generate a key. * * @return {String} */ @@ -30,6 +35,21 @@ function setKeyGenerator(func) { generate = func } +/** + * Reset the key generating function to its initial state. + */ + +function resetKeyGenerator() { + n = 0 + generate = () => `${n++}` +} + +/** + * Set the initial state. + */ + +resetKeyGenerator() + /** * Export. * @@ -38,5 +58,6 @@ function setKeyGenerator(func) { export { generateKey as default, - setKeyGenerator + setKeyGenerator, + resetKeyGenerator }