mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-26 03:35:19 +00:00
45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
const Plugin = require('./Plugin')
|
|
// import deepDiff from 'deep-diff'
|
|
|
|
/**
|
|
* Persistent State
|
|
*
|
|
* Helps debug Uppy: loads saved state from localStorage, so when you restart the page,
|
|
* your state is right where you left off. If something goes wrong, clear uppyState
|
|
* in your localStorage, using the devTools
|
|
*
|
|
*/
|
|
module.exports = class PersistentState extends Plugin {
|
|
constructor (core, opts) {
|
|
super(core, opts)
|
|
this.type = 'debugger'
|
|
this.id = 'Persistent State'
|
|
this.title = 'PersistentState'
|
|
|
|
// set default options
|
|
const defaultOptions = {}
|
|
|
|
// merge default options with the ones set by user
|
|
this.opts = Object.assign({}, defaultOptions, opts)
|
|
}
|
|
|
|
loadSavedState () {
|
|
const savedState = localStorage.getItem('uppyState')
|
|
|
|
if (savedState) {
|
|
this.core.state = JSON.parse(savedState)
|
|
}
|
|
}
|
|
|
|
install () {
|
|
this.loadSavedState()
|
|
|
|
window.onbeforeunload = (ev) => {
|
|
localStorage.setItem('uppyState', JSON.stringify(this.core.state))
|
|
}
|
|
|
|
// this.core.on('core:state-update', (prev, state, patch) => {
|
|
// localStorage.setItem('uppyState', JSON.stringify(state))
|
|
// })
|
|
}
|
|
}
|