mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
820e3ff716
* Always fetch pages with '.js' extention from client side. * Load error page always from _error.js rather _error/index.js * Load pages from page.js instead of page/index.js from the client for static exports. * Update index.js * Simplify the path re-write logic in the webpack pages-plugin.
44 lines
884 B
JavaScript
44 lines
884 B
JavaScript
import { types, applySnapshot } from 'mobx-state-tree'
|
|
|
|
let store = null
|
|
|
|
const Store = types
|
|
.model({
|
|
lastUpdate: types.Date,
|
|
light: false
|
|
})
|
|
.actions((self) => {
|
|
let timer
|
|
function start () {
|
|
timer = setInterval(() => {
|
|
// mobx-state-tree doesn't allow anonymous callbacks changing data
|
|
// pass off to another action instead
|
|
self.update()
|
|
})
|
|
}
|
|
|
|
function update () {
|
|
self.lastUpdate = Date.now()
|
|
self.light = true
|
|
}
|
|
|
|
function stop () {
|
|
clearInterval(timer)
|
|
}
|
|
|
|
return { start, stop, update }
|
|
})
|
|
|
|
export function initStore (isServer, snapshot = null) {
|
|
if (isServer) {
|
|
store = Store.create({ lastUpdate: Date.now() })
|
|
}
|
|
if (store === null) {
|
|
store = Store.create({ lastUpdate: Date.now() })
|
|
}
|
|
if (snapshot) {
|
|
applySnapshot(store, snapshot)
|
|
}
|
|
return store
|
|
}
|