diff --git a/browser/main/HomeContainer/Components/ArticleNavigator.js b/browser/main/HomeContainer/Components/ArticleNavigator.js index 3c03d534..2cffda47 100644 --- a/browser/main/HomeContainer/Components/ArticleNavigator.js +++ b/browser/main/HomeContainer/Components/ArticleNavigator.js @@ -1,12 +1,61 @@ import React, { PropTypes } from 'react' -class ArticleNavigator extends React.Component { +export default class ArticleNavigator extends React.Component { render () { + let { user } = this.props + if (user == null) return (
) + console.log(user) + let folders = user.Folders.map(folder => { + return ( + + ) + }) + + let members = Array.isArray(user.Members) ? user.Members.map(member => { + return ( +
{member.profileName}
+ ) + }) : null + return (
+
+
{user.profileName}
+
{user.name}
+ +
+ +
+ +
+ +
+
+
Folders
+ +
+
+ + {folders} +
+
+ + {user.userType === 'team' ? ( +
+
+
+
+
+ {members} +
+
+ ) : null} +
) } } -export default ArticleNavigator +ArticleNavigator.propTypes = { + user: PropTypes.object +} diff --git a/browser/main/HomeContainer/Components/UserNavigator.js b/browser/main/HomeContainer/Components/UserNavigator.js index a0c3b53a..825eeb95 100644 --- a/browser/main/HomeContainer/Components/UserNavigator.js +++ b/browser/main/HomeContainer/Components/UserNavigator.js @@ -11,7 +11,7 @@ export default class UserNavigator extends Component { // for dev componentDidMount () { - openModal(CreateNewTeam) + // openModal(CreateNewTeam) } renderUserList () { diff --git a/browser/main/HomeContainer/actions.js b/browser/main/HomeContainer/actions.js index 41e2c390..4760c9f9 100644 --- a/browser/main/HomeContainer/actions.js +++ b/browser/main/HomeContainer/actions.js @@ -1,8 +1,16 @@ +export const PARAMS_CHANGE = 'PARAMS_CHANGE' export const USER_UPDATE = 'USER_UPDATE' export function updateUser (user) { return { - type: 'USER_UPDATE', + type: USER_UPDATE, data: user } } + +export function switchParams (params) { + return { + type: PARAMS_CHANGE, + data: params + } +} diff --git a/browser/main/HomeContainer/index.js b/browser/main/HomeContainer/index.js index bbc6a3c1..35ee7d10 100644 --- a/browser/main/HomeContainer/index.js +++ b/browser/main/HomeContainer/index.js @@ -1,22 +1,38 @@ import React, { PropTypes} from 'react' import { connect } from 'react-redux' -// import actionss.... +import { switchParams } from './actions' import UserNavigator from './Components/UserNavigator' import ArticleNavigator from './Components/ArticleNavigator' import ArticleTopBar from './Components/ArticleTopBar' import ArticleList from './Components/ArticleList' import ArticleDetail from './Components/ArticleDetail' +import { findWhere } from 'lodash' // var AuthFilter = require('../Mixins/AuthFilter') // var KeyCaster = require('../Mixins/KeyCaster') class HomeContainer extends React.Component { + componentDidMount () { + const { dispatch, params } = this.props + console.log(params) + dispatch(switchParams(params)) + } + + componentWillReceiveProps (nextProps) { + const { dispatch } = this.props + if (nextProps.params.userId !== this.props.params.userId) { + let params = nextProps.params + dispatch(switchParams(params)) + } + } + render () { - const { users } = this.props + const { users, user } = this.props + return (
- + @@ -30,14 +46,21 @@ function remap (state) { let teams = Array.isArray(currentUser.Teams) ? currentUser.Teams : [] let users = [currentUser, ...teams] + let user = findWhere(users, {id: parseInt(state.params.userId, 10)}) return { - users + users, + user } } HomeContainer.propTypes = { - users: PropTypes.array + users: PropTypes.array, + user: PropTypes.object, + params: PropTypes.shape({ + userId: PropTypes.string + }), + dispatch: PropTypes.func } -export default connect(remap, {})(HomeContainer) +export default connect(remap)(HomeContainer) diff --git a/browser/main/HomeContainer/reducer.js b/browser/main/HomeContainer/reducer.js index 693130f1..0fabda86 100644 --- a/browser/main/HomeContainer/reducer.js +++ b/browser/main/HomeContainer/reducer.js @@ -1,7 +1,8 @@ import { combineReducers } from 'redux' -import { USER_UPDATE } from './actions' +import { PARAMS_CHANGE, USER_UPDATE } from './actions' const initialCurrentUser = JSON.parse(localStorage.getItem('currentUser')) +const initialParams = {} function currentUser (state, action) { switch (action.type) { @@ -10,10 +11,22 @@ function currentUser (state, action) { localStorage.setItem('currentUser', JSON.stringify(user)) return user default: - return initialCurrentUser + if (state == null) return initialCurrentUser + return state + } +} + +function params (state, action) { + switch (action.type) { + case PARAMS_CHANGE: + return action.data + default: + if (state == null) return initialParams + return state } } export default combineReducers({ - currentUser + currentUser, + params }) diff --git a/browser/main/index.js b/browser/main/index.js index a8c1e5a9..3638feaf 100644 --- a/browser/main/index.js +++ b/browser/main/index.js @@ -27,22 +27,22 @@ let routes = ( ) // with Dev -// import { compose } from 'redux' -// // Redux DevTools store enhancers -// import { devTools, persistState } from 'redux-devtools' -// // React components for Redux DevTools -// import { DevTools, DebugPanel, LogMonitor } from 'redux-devtools/lib/react' +import { compose } from 'redux' +// Redux DevTools store enhancers +import { devTools, persistState } from 'redux-devtools' +// React components for Redux DevTools +import { DevTools, DebugPanel, LogMonitor } from 'redux-devtools/lib/react' -// let finalCreateStore = compose(devTools(), persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/)))(createStore) -// let store = finalCreateStore(reducer) -// let devEl = ( -// -// -// -// ) +let finalCreateStore = compose(devTools(), persistState(window.location.href.match(/[?&]debug_session=([^&]+)\b/)))(createStore) +let store = finalCreateStore(reducer) +let devEl = ( + + + +) // On production -let store = createStore(reducer) +// let store = createStore(reducer) let el = document.getElementById('content') @@ -51,6 +51,7 @@ React.render(( {() => {routes}} + {devEl}
), el, function () { let loadingCover = document.getElementById('loadingCover') diff --git a/package.json b/package.json index 5e3359e7..7f948285 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ }, "homepage": "https://github.com/Rokt33r/codexen-app#readme", "dependencies": { - "babel-core": "^5.8.25", "devicon": "^2.0.0", "font-awesome": "^4.3.0", "fs-jetpack": "^0.7.0", @@ -52,8 +51,7 @@ "reflux": "^0.2.8", "socket.io-client": "^1.3.6", "superagent": "^1.2.0", - "superagent-promise": "^1.0.3", - "titlebar": "^1.3.0" + "superagent-promise": "^1.0.3" }, "devDependencies": { "babel-loader": "^5.3.2", diff --git a/webpack.config.js b/webpack.config.js index 29090475..962a8110 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -25,8 +25,8 @@ module.exports = { ] }, plugins: [ - new webpack.HotModuleReplacementPlugin(), - new webpack.NoErrorsPlugin() + new webpack.HotModuleReplacementPlugin() + // new webpack.NoErrorsPlugin() ], externals: [ 'socket.io-client',