mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Add selector component to ui mocker
This commit is contained in:
parent
e55938ed15
commit
c26a7cd89b
@ -2,32 +2,32 @@ const render = require('react-dom').render
|
|||||||
const h = require('react-hyperscript')
|
const h = require('react-hyperscript')
|
||||||
const Root = require('../ui/app/root')
|
const Root = require('../ui/app/root')
|
||||||
const configureStore = require('./mockStore')
|
const configureStore = require('./mockStore')
|
||||||
|
const states = require('./states')
|
||||||
|
const Selector = require('./selector')
|
||||||
|
|
||||||
|
// Query String
|
||||||
const qs = require('qs')
|
const qs = require('qs')
|
||||||
const queryString = qs.parse(window.location.href)
|
let queryString = qs.parse(window.location.href.split('#')[1])
|
||||||
let selectedView = queryString.view || 'account detail'
|
let selectedView = queryString.view || 'account detail'
|
||||||
|
|
||||||
|
// CSS
|
||||||
const MetaMaskUiCss = require('../ui/css')
|
const MetaMaskUiCss = require('../ui/css')
|
||||||
const injectCss = require('inject-css')
|
const injectCss = require('inject-css')
|
||||||
|
|
||||||
const states = require('./states')
|
|
||||||
|
|
||||||
const firstState = states[selectedView]
|
const firstState = states[selectedView]
|
||||||
updateQueryParams()
|
updateQueryParams()
|
||||||
|
|
||||||
function updateQueryParams() {
|
function updateQueryParams(newView) {
|
||||||
const newParamsObj = {
|
queryString.view = newView
|
||||||
view: selectedView,
|
const params = qs.stringify(queryString)
|
||||||
}
|
window.location.href = window.location.href.split('#')[0] + `#${params}`
|
||||||
const newQs = qs.stringify(newParamsObj)
|
|
||||||
//window.location.href = window.location.href.split('?')[0] + `?${newQs}`
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const actions = {
|
const actions = {
|
||||||
_setAccountManager(){},
|
_setAccountManager(){},
|
||||||
update: function(stateName) {
|
update: function(stateName) {
|
||||||
selectedView = stateName
|
selectedView = stateName
|
||||||
updateQueryParams()
|
updateQueryParams(stateName)
|
||||||
const newState = states[selectedView]
|
const newState = states[selectedView]
|
||||||
return {
|
return {
|
||||||
type: 'GLOBAL_FORCE_UPDATE',
|
type: 'GLOBAL_FORCE_UPDATE',
|
||||||
@ -48,15 +48,7 @@ var store = configureStore(states[selectedView])
|
|||||||
render(
|
render(
|
||||||
h('.super-dev-container', [
|
h('.super-dev-container', [
|
||||||
|
|
||||||
h('select', {
|
h(Selector, { actions, selectedKey: selectedView, states, store }),
|
||||||
value: 'account-detail',
|
|
||||||
onChange:(event) => {
|
|
||||||
const selectedKey = event.target.value
|
|
||||||
store.dispatch(actions.update(selectedKey))
|
|
||||||
},
|
|
||||||
}, Object.keys(states).map((stateName) => {
|
|
||||||
return h('option', { value: stateName }, stateName)
|
|
||||||
})),
|
|
||||||
|
|
||||||
h(Root, {
|
h(Root, {
|
||||||
store: store,
|
store: store,
|
||||||
|
30
development/selector.js
Normal file
30
development/selector.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
const Component = require('react').Component
|
||||||
|
const h = require('react-hyperscript')
|
||||||
|
const inherits = require('util').inherits
|
||||||
|
|
||||||
|
module.exports = NewComponent
|
||||||
|
|
||||||
|
inherits(NewComponent, Component)
|
||||||
|
function NewComponent () {
|
||||||
|
Component.call(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
NewComponent.prototype.render = function () {
|
||||||
|
const props = this.props
|
||||||
|
let { states, selectedKey, actions, store } = props
|
||||||
|
|
||||||
|
const state = this.state || {}
|
||||||
|
const selected = state.selected || selectedKey
|
||||||
|
|
||||||
|
return h('select', {
|
||||||
|
value: selected,
|
||||||
|
onChange:(event) => {
|
||||||
|
const selectedKey = event.target.value
|
||||||
|
store.dispatch(actions.update(selectedKey))
|
||||||
|
this.setState({ selected: selectedKey })
|
||||||
|
},
|
||||||
|
}, Object.keys(states).map((stateName) => {
|
||||||
|
return h('option', { value: stateName }, stateName)
|
||||||
|
}))
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user