Skip to content

Commit 1df4ed0

Browse files
committed
sort by time & add FolderMark
1 parent 2a339a2 commit 1df4ed0

5 files changed

Lines changed: 60 additions & 7 deletions

File tree

browser/main/HomePage.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ function remap (state) {
6969

7070
let articles = state.articles['team-' + activeUser.id]
7171
if (articles == null) articles = []
72+
articles.sort((a, b) => {
73+
return new Date(b.updatedAt) - new Date(a.updatedAt)
74+
})
7275

7376
let activeArticle = findWhere(articles, {key: status.articleKey})
7477
if (activeArticle == null) activeArticle = articles[0]

browser/main/HomePage/ArticleDetail.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import aceModes from 'boost/ace-modes'
99
import Select from 'react-select'
1010
import linkState from 'boost/linkState'
1111
import api from 'boost/api'
12+
import FolderMark from 'boost/components/FolderMark'
1213

1314
var modeOptions = aceModes.map(function (mode) {
1415
return {
@@ -19,7 +20,7 @@ var modeOptions = aceModes.map(function (mode) {
1920

2021
function makeInstantArticle (article) {
2122
let instantArticle = Object.assign({}, article)
22-
instantArticle.Tags = typeof instantArticle.Tags === 'array' ? instantArticle.Tags.map(tag => tag.name) : []
23+
instantArticle.Tags = (typeof instantArticle.Tags === 'array') ? instantArticle.Tags.map(tag => tag.name) : []
2324
return instantArticle
2425
}
2526

@@ -115,7 +116,7 @@ export default class ArticleDetail extends React.Component {
115116
<div className='detailInfo'>
116117
<div className='left'>
117118
<div className='info'>
118-
<i className='fa fa-fw fa-square'/> {folderName}&nbsp;
119+
<FolderMark id={folder.id}/> {folderName}&nbsp;
119120
by {activeArticle.User.profileName}&nbsp;
120121
Created {moment(activeArticle.createdAt).format('YYYY/MM/DD')}&nbsp;
121122
Updated {moment(activeArticle.updatedAt).format('YYYY/MM/DD')}
@@ -139,7 +140,7 @@ export default class ArticleDetail extends React.Component {
139140
</div>
140141
{activeArticle.mode === 'markdown'
141142
? <MarkdownPreview content={activeArticle.content}/>
142-
: <CodeEditor readOnly={true} onChange={this.handleContentChange} mode={activeArticle.mode} code={activeArticle.content}/>
143+
: <CodeEditor readOnly onChange={this.handleContentChange} mode={activeArticle.mode} code={activeArticle.content}/>
143144
}
144145
</div>
145146
</div>

browser/main/HomePage/ArticleList.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import ProfileImage from 'boost/components/ProfileImage'
33
import ModeIcon from 'boost/components/ModeIcon'
44
import moment from 'moment'
55
import { switchArticle, NEW } from '../actions'
6+
import FolderMark from 'boost/components/FolderMark'
67

78
export default class ArticleList extends React.Component {
89
handleArticleClick (key) {
@@ -26,7 +27,7 @@ export default class ArticleList extends React.Component {
2627
<div key={'article-' + article.key}>
2728
<div onClick={e => this.handleArticleClick(article.key)(e)} className={'articleItem' + (activeArticle.key === article.key ? ' active' : '')}>
2829
<div className='top'>
29-
<i className='fa fa-fw fa-square'/>
30+
<FolderMark id={article.FolderId}/>
3031
by <ProfileImage className='profileImage' size='20' email={article.User.email}/> {article.User.profileName}
3132
<span className='updatedAt'>{article.status != null ? article.status : moment(article.updatedAt).fromNow()}</span>
3233
</div>

browser/main/HomePage/ArticleNavigator.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { findWhere } from 'lodash'
44
import { switchMode, CREATE_MODE } from '../actions'
55
import { openModal } from 'boost/modal'
66
import CreateNewFolder from 'boost/components/modal/CreateNewFolder'
7+
import FolderMark from 'boost/components/FolderMark'
78

89
export default class ArticleNavigator extends React.Component {
910
handleNewPostButtonClick (e) {
@@ -23,9 +24,10 @@ export default class ArticleNavigator extends React.Component {
2324

2425
let activeFolder = findWhere(activeUser.Folders, {id: status.folderId})
2526

26-
let folders = activeUser.Folders.map(folder => {
27+
let folders = activeUser.Folders.map((folder, index) => {
2728
return (
28-
<button key={'folder-' + folder.id} className={activeFolder != null && activeFolder.id === folder.id ? 'active' : ''}><i className='fa fa-fw fa-square'/> {folder.name}</button>
29+
<button key={'folder-' + folder.id} className={activeFolder != null && activeFolder.id === folder.id ? 'active' : ''}>
30+
<FolderMark id={folder.id}/> {folder.name}</button>
2931
)
3032
})
3133

@@ -55,7 +57,7 @@ export default class ArticleNavigator extends React.Component {
5557
<div className='folders'>
5658
<div className='header'>
5759
<div className='title'>Folders</div>
58-
<button onCLick={e => this.handleNewFolderButton(e)} className='addBtn'><i className='fa fa-fw fa-plus'/></button>
60+
<button onClick={e => this.handleNewFolderButton(e)} className='addBtn'><i className='fa fa-fw fa-plus'/></button>
5961
</div>
6062
<div className='folderList'>
6163
<button className={activeFolder == null ? 'active' : ''}>All folders</button>

lib/components/FolderMark.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import React, { PropTypes } from 'react'
2+
3+
const BLUE = '#3460C7'
4+
const LIGHTBLUE = '#2BA5F7'
5+
const ORANGE = '#FF8E00'
6+
const YELLOW = '#EAEF31'
7+
const GREEN = '#02FF26'
8+
const DARKGREEN = '#008A59'
9+
const RED = '#E10051'
10+
const PURPLE = '#B013A4'
11+
12+
function getColorByIndex (index) {
13+
switch (index % 8) {
14+
case 0:
15+
return LIGHTBLUE
16+
case 1:
17+
return ORANGE
18+
case 2:
19+
return RED
20+
case 3:
21+
return GREEN
22+
case 4:
23+
return DARKGREEN
24+
case 5:
25+
return YELLOW
26+
case 6:
27+
return BLUE
28+
case 7:
29+
return PURPLE
30+
default:
31+
return 'gray'
32+
}
33+
}
34+
35+
export default class FolderMark extends React.Component {
36+
render () {
37+
let color = getColorByIndex(this.props.id)
38+
return (
39+
<i className='fa fa-square fa-fw' style={{color: color}}/>
40+
)
41+
}
42+
}
43+
44+
FolderMark.propTypes = {
45+
id: PropTypes.number
46+
}

0 commit comments

Comments
 (0)