From 1df4ed0fe94a78adef6b5e8756d73b8ec51e6423 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sat, 17 Oct 2015 16:46:10 +0900 Subject: [PATCH] sort by time & add FolderMark --- browser/main/HomePage.js | 3 ++ browser/main/HomePage/ArticleDetail.js | 7 ++-- browser/main/HomePage/ArticleList.js | 3 +- browser/main/HomePage/ArticleNavigator.js | 8 ++-- lib/components/FolderMark.js | 46 +++++++++++++++++++++++ 5 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 lib/components/FolderMark.js diff --git a/browser/main/HomePage.js b/browser/main/HomePage.js index 6273e0dd..0cca9d94 100644 --- a/browser/main/HomePage.js +++ b/browser/main/HomePage.js @@ -69,6 +69,9 @@ function remap (state) { let articles = state.articles['team-' + activeUser.id] if (articles == null) articles = [] + articles.sort((a, b) => { + return new Date(b.updatedAt) - new Date(a.updatedAt) + }) let activeArticle = findWhere(articles, {key: status.articleKey}) if (activeArticle == null) activeArticle = articles[0] diff --git a/browser/main/HomePage/ArticleDetail.js b/browser/main/HomePage/ArticleDetail.js index 768a3aa9..1ad8dc4f 100644 --- a/browser/main/HomePage/ArticleDetail.js +++ b/browser/main/HomePage/ArticleDetail.js @@ -9,6 +9,7 @@ import aceModes from 'boost/ace-modes' import Select from 'react-select' import linkState from 'boost/linkState' import api from 'boost/api' +import FolderMark from 'boost/components/FolderMark' var modeOptions = aceModes.map(function (mode) { return { @@ -19,7 +20,7 @@ var modeOptions = aceModes.map(function (mode) { function makeInstantArticle (article) { let instantArticle = Object.assign({}, article) - instantArticle.Tags = typeof instantArticle.Tags === 'array' ? instantArticle.Tags.map(tag => tag.name) : [] + instantArticle.Tags = (typeof instantArticle.Tags === 'array') ? instantArticle.Tags.map(tag => tag.name) : [] return instantArticle } @@ -115,7 +116,7 @@ export default class ArticleDetail extends React.Component {
- {folderName}  + {folderName}  by {activeArticle.User.profileName}  Created {moment(activeArticle.createdAt).format('YYYY/MM/DD')}  Updated {moment(activeArticle.updatedAt).format('YYYY/MM/DD')} @@ -139,7 +140,7 @@ export default class ArticleDetail extends React.Component {
{activeArticle.mode === 'markdown' ? - : + : }
diff --git a/browser/main/HomePage/ArticleList.js b/browser/main/HomePage/ArticleList.js index eafc0abe..2f6dfd37 100644 --- a/browser/main/HomePage/ArticleList.js +++ b/browser/main/HomePage/ArticleList.js @@ -3,6 +3,7 @@ import ProfileImage from 'boost/components/ProfileImage' import ModeIcon from 'boost/components/ModeIcon' import moment from 'moment' import { switchArticle, NEW } from '../actions' +import FolderMark from 'boost/components/FolderMark' export default class ArticleList extends React.Component { handleArticleClick (key) { @@ -26,7 +27,7 @@ export default class ArticleList extends React.Component {
this.handleArticleClick(article.key)(e)} className={'articleItem' + (activeArticle.key === article.key ? ' active' : '')}>
- + by {article.User.profileName} {article.status != null ? article.status : moment(article.updatedAt).fromNow()}
diff --git a/browser/main/HomePage/ArticleNavigator.js b/browser/main/HomePage/ArticleNavigator.js index b29fbf14..0be5c620 100644 --- a/browser/main/HomePage/ArticleNavigator.js +++ b/browser/main/HomePage/ArticleNavigator.js @@ -4,6 +4,7 @@ import { findWhere } from 'lodash' import { switchMode, CREATE_MODE } from '../actions' import { openModal } from 'boost/modal' import CreateNewFolder from 'boost/components/modal/CreateNewFolder' +import FolderMark from 'boost/components/FolderMark' export default class ArticleNavigator extends React.Component { handleNewPostButtonClick (e) { @@ -23,9 +24,10 @@ export default class ArticleNavigator extends React.Component { let activeFolder = findWhere(activeUser.Folders, {id: status.folderId}) - let folders = activeUser.Folders.map(folder => { + let folders = activeUser.Folders.map((folder, index) => { return ( - + ) }) @@ -55,7 +57,7 @@ export default class ArticleNavigator extends React.Component {
Folders
- +
diff --git a/lib/components/FolderMark.js b/lib/components/FolderMark.js new file mode 100644 index 00000000..47cf5138 --- /dev/null +++ b/lib/components/FolderMark.js @@ -0,0 +1,46 @@ +import React, { PropTypes } from 'react' + +const BLUE = '#3460C7' +const LIGHTBLUE = '#2BA5F7' +const ORANGE = '#FF8E00' +const YELLOW = '#EAEF31' +const GREEN = '#02FF26' +const DARKGREEN = '#008A59' +const RED = '#E10051' +const PURPLE = '#B013A4' + +function getColorByIndex (index) { + switch (index % 8) { + case 0: + return LIGHTBLUE + case 1: + return ORANGE + case 2: + return RED + case 3: + return GREEN + case 4: + return DARKGREEN + case 5: + return YELLOW + case 6: + return BLUE + case 7: + return PURPLE + default: + return 'gray' + } +} + +export default class FolderMark extends React.Component { + render () { + let color = getColorByIndex(this.props.id) + return ( + + ) + } +} + +FolderMark.propTypes = { + id: PropTypes.number +}