Skip to content
Snippets Groups Projects
Commit 9f4988a4 authored by DD Liu's avatar DD Liu
Browse files

use maps in gui

parent 3acb7147
No related merge requests found
......@@ -2,6 +2,8 @@ const React = require('react');
const Box = require('../box/box.jsx');
const Monitor = require('../../containers/monitor.jsx');
const PropTypes = require('prop-types');
const {Map} = require('immutable');
const styles = require('./monitor-list.css');
......@@ -9,10 +11,14 @@ const MonitorList = props => (
<Box
className={styles.monitorList}
>
{props.monitors.map(monitorData => (
{props.monitors.valueSeq().map(monitorData => (
<Monitor
{...monitorData}
key={monitorData.id}
color={monitorData.get('color')}
key={monitorData.get('id')}
label={monitorData.get('label')}
value={monitorData.get('value')}
x={monitorData.get('x')}
y={monitorData.get('y')}
onDragEnd={props.onMonitorChange}
/>
))}
......@@ -20,13 +26,7 @@ const MonitorList = props => (
);
MonitorList.propTypes = {
monitors: PropTypes.arrayOf(PropTypes.shape({
color: PropTypes.string,
label: PropTypes.string.isRequired,
value: PropTypes.string.isRequired,
x: PropTypes.number,
y: PropTypes.number
})),
monitors: PropTypes.instanceOf(Map),
onMonitorChange: PropTypes.func.isRequired
};
......
const UPDATE_MONITORS = 'scratch-gui/monitors/UPDATE_MONITORS';
const {Map} = require('immutable');
const initialState = [];
const initialState = Map();
const reducer = function (state, action) {
if (typeof state === 'undefined') state = initialState;
switch (action.type) {
case UPDATE_MONITORS:
return [...action.monitors];
return action.monitors;
default:
return state;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment