Add a helpful warning on auto-discarded scrubs
This commit is contained in:
parent
158923b376
commit
13d612f4b7
1 changed files with 6 additions and 4 deletions
|
@ -4,7 +4,6 @@ import type {Pointer} from '@theatre/dataverse'
|
||||||
import {getPointerParts} from '@theatre/dataverse'
|
import {getPointerParts} from '@theatre/dataverse'
|
||||||
import type {Studio} from './Studio'
|
import type {Studio} from './Studio'
|
||||||
import type {CommitOrDiscard} from './StudioStore/StudioStore'
|
import type {CommitOrDiscard} from './StudioStore/StudioStore'
|
||||||
import logger from '@theatre/shared/logger'
|
|
||||||
import {isSheetObject} from '@theatre/shared/instanceTypes'
|
import {isSheetObject} from '@theatre/shared/instanceTypes'
|
||||||
|
|
||||||
type State_Captured = {
|
type State_Captured = {
|
||||||
|
@ -129,7 +128,7 @@ export default class Scrub implements IScrub {
|
||||||
state.flagsTransaction.discard()
|
state.flagsTransaction.discard()
|
||||||
this._state = {type: 'Committed'}
|
this._state = {type: 'Committed'}
|
||||||
} else if (state.type === 'Ready') {
|
} else if (state.type === 'Ready') {
|
||||||
logger.warn(`Scrub is empty. Nothing to commit.`)
|
console.warn(`Scrub is empty. Nothing to commit.`)
|
||||||
return
|
return
|
||||||
} else if (state.type === 'Committed') {
|
} else if (state.type === 'Committed') {
|
||||||
throw new Error(`This scrub is already committed.`)
|
throw new Error(`This scrub is already committed.`)
|
||||||
|
@ -150,18 +149,21 @@ export default class Scrub implements IScrub {
|
||||||
errored = false
|
errored = false
|
||||||
} finally {
|
} finally {
|
||||||
if (errored) {
|
if (errored) {
|
||||||
|
console.error(
|
||||||
|
`This scrub's callback threw an error. We're undo-ing all of the changes made by this scrub, and marking it as discarded.`,
|
||||||
|
)
|
||||||
this._state = {type: 'Discarded'}
|
this._state = {type: 'Discarded'}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this._state.type === 'Committed') {
|
if (this._state.type === 'Committed') {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`This scrub is already committed and cannot capture again.` +
|
`This scrub is already committed and cannot capture again. ` +
|
||||||
`If you wish to capture more, you can start a new studio.scrub() or do so before scrub.commit()`,
|
`If you wish to capture more, you can start a new studio.scrub() or do so before scrub.commit()`,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`This scrub is already discarded and cannot capture again.` +
|
`This scrub is already discarded and cannot capture again. ` +
|
||||||
`If you wish to capture more, you can start a new studio.scrub() or do so before scrub.discard()`,
|
`If you wish to capture more, you can start a new studio.scrub() or do so before scrub.discard()`,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue