moving storage and theme-chooser into remix and updating the files that require it.

pull/7/head
Rob Stupay 7 years ago
parent 16dd35f627
commit 8d52a5501d
  1. 4
      remix-debugger/src/ui/ButtonNavigator.js
  2. 4
      remix-debugger/src/ui/CodeListView.js
  3. 4
      remix-debugger/src/ui/DropdownPanel.js
  4. 6
      remix-debugger/src/ui/TxBrowser.js
  5. 7
      remix-lib/index.js
  6. 61
      remix-lib/src/storage.js
  7. 31
      remix-lib/src/ui/theme-chooser.js

@ -4,8 +4,8 @@ var EventManager = remixLib.EventManager
var yo = require('yo-yo') var yo = require('yo-yo')
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var styleGuide = remixLib.ui.styleGuide var styleGuide = remixLib.ui.themeChooser
var styles = styleGuide() var styles = styleGuide.chooser()
var css = csjs` var css = csjs`
.buttons { .buttons {

@ -6,8 +6,8 @@ var ui = remixLib.helpers.ui
var DropdownPanel = require('./DropdownPanel') var DropdownPanel = require('./DropdownPanel')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var styleGuide = remixLib.ui.styleGuide var styleGuide = remixLib.ui.themeChooser
var styles = styleGuide() var styles = styleGuide.chooser()
var css = csjs` var css = csjs`
.instructions { .instructions {

@ -7,8 +7,8 @@ var TreeView = require('./TreeView')
var EventManager = remixLib.EventManager var EventManager = remixLib.EventManager
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var styleGuide = remixLib.ui.styleGuide var styleGuide = remixLib.ui.themeChooser
var styles = styleGuide() var styles = styleGuide.chooser()
var css = csjs` var css = csjs`
.title { .title {

@ -8,8 +8,10 @@ var init = remixLib.init
var DropdownPanel = require('./DropdownPanel') var DropdownPanel = require('./DropdownPanel')
var style = require('./styles/basicStyles') var style = require('./styles/basicStyles')
var csjs = require('csjs-inject') var csjs = require('csjs-inject')
var styleGuide = remixLib.ui.styleGuide var styleGuide = remixLib.ui.themeChooser
var styles = styleGuide() var styles = styleGuide.chooser()
// var styleGuide = remixLib.ui.styleGuide
// var styles = styleGuide()
var css = csjs` var css = csjs`
.container { .container {

@ -14,6 +14,9 @@ var AstWalker = require('./src/astWalker')
var global = require('./src/global') var global = require('./src/global')
var styleGuide = require('./src/ui/style-guide') var styleGuide = require('./src/ui/style-guide')
var styleGuideDark = require('./src/ui/styleGuideDark') var styleGuideDark = require('./src/ui/styleGuideDark')
var themeChooser = require('./src/ui/theme-chooser')
var Storage = require('./src/storage')
if (typeof (module) !== 'undefined' && typeof (module.exports) !== 'undefined') { if (typeof (module) !== 'undefined' && typeof (module.exports) !== 'undefined') {
module.exports = modules() module.exports = modules()
@ -38,13 +41,15 @@ function modules () {
}, },
SourceMappingDecoder: SourceMappingDecoder, SourceMappingDecoder: SourceMappingDecoder,
SourceLocationTracker: SourceLocationTracker, SourceLocationTracker: SourceLocationTracker,
Storage: Storage,
init: init, init: init,
util: util, util: util,
AstWalker: AstWalker, AstWalker: AstWalker,
global: global, global: global,
ui: { ui: {
styleGuide: styleGuide, styleGuide: styleGuide,
styleGuideDark: styleGuideDark styleGuideDark: styleGuideDark,
themeChooser: themeChooser
} }
} }
} }

@ -0,0 +1,61 @@
'use strict'
function Storage (prefix) {
this.exists = function (name) {
return this.get(name) !== null
}
this.get = function (name) {
return window.localStorage.getItem(prefix + name)
}
this.set = function (name, content) {
try {
window.localStorage.setItem(prefix + name, content)
} catch (exception) {
return false
}
return true
}
this.remove = function (name) {
window.localStorage.removeItem(prefix + name)
return true
}
this.rename = function (originalName, newName) {
var content = this.get(originalName)
if (!this.set(newName, content)) {
return false
}
this.remove(originalName)
return true
}
function safeKeys () {
// NOTE: this is a workaround for some browsers
return Object.keys(window.localStorage).filter(function (item) { return item !== null && item !== undefined })
}
this.keys = function () {
return safeKeys()
// filter any names not including the prefix
.filter(function (item) { return item.indexOf(prefix, 0) === 0 })
// remove prefix from filename and add the 'browser' path
.map(function (item) { return item.substr(prefix.length) })
}
// on startup, upgrade the old storage layout
safeKeys().forEach(function (name) {
if (name.indexOf('sol-cache-file-', 0) === 0) {
var content = window.localStorage.getItem(name)
window.localStorage.setItem(name.replace(/^sol-cache-file-/, 'sol:'), content)
window.localStorage.removeItem(name)
}
})
// remove obsolete key
window.localStorage.removeItem('editor-size-cache')
}
module.exports = Storage

@ -0,0 +1,31 @@
// var remixLib = require('remix-lib')
var styleGuideLight = require('./style-guide')
var styleGuideDark = require('./styleGuideDark')
var Storage = require('../storage')
module.exports = {
chooser: function () {
var themeStorage = new Storage('style:')
if (themeStorage.exists('theme')) {
if (themeStorage.get('theme') === 'dark') {
return styleGuideDark()
} else {
return styleGuideLight()
}
} else {
return styleGuideLight()
}
},
switchTheme: function (theme) {
var themeStorage = new Storage('style:')
themeStorage.set('theme', theme)
if (theme === 'dark') {
return styleGuideDark()
} else if (theme === 'light') {
return styleGuideLight()
} else {
return styleGuideLight()
}
}
}
Loading…
Cancel
Save