1
0
mirror of https://github.com/ianstormtaylor/slate.git synced 2025-08-18 21:21:21 +02:00

add resetKeyGenerator util

This commit is contained in:
Ian Storm Taylor
2016-11-29 17:16:57 -08:00
parent 4854d11ba4
commit 450ffc92c7
2 changed files with 31 additions and 8 deletions

View File

@@ -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
}

View File

@@ -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
}