mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Add optional version field to notices
Allows notices to only show to users who are on a certain version.
This commit is contained in:
parent
4d6bae774a
commit
e89f82399f
@ -44,6 +44,7 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
|
||||
this.opts = opts
|
||||
const initState = opts.initState || {}
|
||||
this.recordFirstTimeInfo(initState)
|
||||
|
||||
// platform-specific api
|
||||
this.platform = opts.platform
|
||||
@ -149,6 +150,7 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
// notices
|
||||
this.noticeController = new NoticeController({
|
||||
initState: initState.NoticeController,
|
||||
version,
|
||||
})
|
||||
this.noticeController.updateNoticesList()
|
||||
// to be uncommented when retrieving notices from a remote server.
|
||||
@ -797,4 +799,13 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
return rpcTarget
|
||||
}
|
||||
|
||||
recordFirstTimeInfo (initState) {
|
||||
if (!('firstTimeInfo' in initState)) {
|
||||
initState.firstTimeInfo = {
|
||||
version,
|
||||
date: Date.now(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
const EventEmitter = require('events').EventEmitter
|
||||
const semver = require('semver')
|
||||
const extend = require('xtend')
|
||||
const ObservableStore = require('obs-store')
|
||||
const hardCodedNotices = require('../../notices/notices.json')
|
||||
@ -8,6 +9,7 @@ module.exports = class NoticeController extends EventEmitter {
|
||||
constructor (opts) {
|
||||
super()
|
||||
this.noticePoller = null
|
||||
this.version = opts.version
|
||||
const initState = extend({
|
||||
noticesList: [],
|
||||
}, opts.initState)
|
||||
@ -51,7 +53,13 @@ module.exports = class NoticeController extends EventEmitter {
|
||||
}
|
||||
|
||||
updateNoticesList () {
|
||||
return this._retrieveNoticeData().then((newNotices) => {
|
||||
return this._retrieveNoticeData().then((hardNotices) => {
|
||||
const newNotices = hardNotices.filter((newNotice) => {
|
||||
if ('version' in newNotice) {
|
||||
return semver.satisfies(this.version, newNotice.version)
|
||||
}
|
||||
return true
|
||||
})
|
||||
var oldNotices = this.getNoticesList()
|
||||
var combinedNotices = this._mergeNotices(oldNotices, newNotices)
|
||||
return Promise.resolve(this.setNoticesList(combinedNotices))
|
||||
|
@ -144,6 +144,7 @@
|
||||
"request-promise": "^4.2.1",
|
||||
"sandwich-expando": "^1.1.3",
|
||||
"semaphore": "^1.0.5",
|
||||
"semver": "^5.4.1",
|
||||
"sw-stream": "^2.0.0",
|
||||
"textarea-caret": "^3.0.1",
|
||||
"through2": "^2.0.3",
|
||||
|
Loading…
Reference in New Issue
Block a user