mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-04-21 22:02:05 +02:00
update warning text to be more helpful
This commit is contained in:
parent
e189add154
commit
0f9cc69630
@ -104,7 +104,7 @@ class Node extends React.Component {
|
||||
if (!IS_DEV || !Immutable.is(nextProps.node, this.props.node)) {
|
||||
return true
|
||||
} else {
|
||||
warn('Encountered different references for identical node values in "shouldComponentUpdate". Check that you are preserving references for the following node:\n', nextProps.node.toJS())
|
||||
warn('A new immutable Node instance was encountered with an identical structure to the previous instance. This is usually a mistake and can impact performance. Make sure to preserve immutable references when nothing has changed. The node in question was:', nextProps.node)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -325,7 +325,7 @@ class Selection extends new Record(DEFAULTS) {
|
||||
|
||||
// If the anchor node isn't a text node, match it to one.
|
||||
if (anchorNode.kind != 'text') {
|
||||
warn('Selection anchor is on a non text node, matching to leaf')
|
||||
warn('The selection anchor was set to a Node that is not a Text node. This should not happen and can degrade performance. The node in question was:', anchorNode)
|
||||
let anchorText = anchorNode.getTextAtOffset(anchorOffset)
|
||||
let offset = anchorNode.getOffset(anchorText)
|
||||
anchorOffset = anchorOffset - offset
|
||||
@ -334,7 +334,7 @@ class Selection extends new Record(DEFAULTS) {
|
||||
|
||||
// If the focus node isn't a text node, match it to one.
|
||||
if (focusNode.kind != 'text') {
|
||||
warn('Selection focus is on a non text node, matching to leaf')
|
||||
warn('The selection focus was set to a Node that is not a Text node. This should not happen and can degrade performance. The node in question was:', focusNode)
|
||||
let focusText = focusNode.getTextAtOffset(focusOffset)
|
||||
let offset = focusNode.getOffset(focusText)
|
||||
focusOffset = focusOffset - offset
|
||||
|
@ -350,12 +350,15 @@ function setNode(state, operation) {
|
||||
let { document } = state
|
||||
let node = document.assertPath(path)
|
||||
|
||||
// Deprecate using setNode for updating children, or keys
|
||||
// Deprecate the ability to overwite a node's children.
|
||||
if (properties.nodes && properties.nodes != node.nodes) {
|
||||
warn('Updating Node.nodes through setNode is not allowed. Use appropriate insertion and removal functions.')
|
||||
warn('Updating a Node\'s `nodes` property via `setNode()` is not allowed. Use the appropriate insertion and removal operations instead. The opeartion in question was:', operation)
|
||||
delete properties.nodes
|
||||
} else if (properties.key && properties.key != node.key) {
|
||||
warn('Updating Node.key through setNode is not allowed. You should not have to update keys yourself.')
|
||||
}
|
||||
|
||||
// Deprecate the ability to change a node's key.
|
||||
if (properties.key && properties.key != node.key) {
|
||||
warn('Updating a Node\'s `key` property via `setNode()` is not allowed. There should be no reason to do this. The opeartion in question was:', operation)
|
||||
delete properties.key
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ export function normalizeSelection(transform) {
|
||||
!document.hasDescendant(selection.anchorKey) ||
|
||||
!document.hasDescendant(selection.focusKey)
|
||||
) {
|
||||
warn('The selection was invalid and reset to start of the document.')
|
||||
warn('The selection was invalid and was reset to start of the document. The selection in question was:', selection)
|
||||
|
||||
const firstText = document.getFirstText()
|
||||
selection = selection.merge({
|
||||
|
@ -59,7 +59,7 @@ function inline(value) {
|
||||
function key(value) {
|
||||
if (typeOf(value) == 'string') return value
|
||||
|
||||
warn('Deprecation: Passing a node instead of a key to a method accepting a key can reduce performances')
|
||||
warn('An object was passed to a Node method instead of a `key` string. This was previously supported, but is being deprecated because it can have a negative impact on performance. The object in question was:', value)
|
||||
if (value instanceof Block) return value.key
|
||||
if (value instanceof Document) return value.key
|
||||
if (value instanceof Inline) return value.key
|
||||
|
@ -5,15 +5,16 @@ import IS_DEV from '../constants/is-dev'
|
||||
* Log a development warning.
|
||||
*
|
||||
* @param {String} message
|
||||
* @param {Any} ...args
|
||||
*/
|
||||
|
||||
function warning(message, ...more) {
|
||||
function warn(message, ...args) {
|
||||
if (!IS_DEV) {
|
||||
return
|
||||
}
|
||||
|
||||
if (typeof console !== 'undefined') {
|
||||
console.error(`Warning: ${message}`, ...more) // eslint-disable-line no-console
|
||||
console.warn(`Warning: ${message}`, ...args) // eslint-disable-line no-console
|
||||
}
|
||||
|
||||
try {
|
||||
@ -28,6 +29,8 @@ function warning(message, ...more) {
|
||||
|
||||
/**
|
||||
* Export.
|
||||
*
|
||||
* @type {Function}
|
||||
*/
|
||||
|
||||
export default warning
|
||||
export default warn
|
||||
|
Loading…
x
Reference in New Issue
Block a user