1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00

Folder リストに articleの数をだす

This commit is contained in:
Rokt33r
2015-11-15 01:07:46 +09:00
parent 41e1630aac
commit fb1462f669
3 changed files with 13 additions and 3 deletions

View File

@@ -98,7 +98,7 @@ class HomePage extends React.Component {
} }
render () { render () {
let { dispatch, status, articles, activeArticle, folders, filters } = this.props let { dispatch, status, articles, allArticles, activeArticle, folders, filters } = this.props
return ( return (
<div className='HomePage'> <div className='HomePage'>
@@ -107,6 +107,7 @@ class HomePage extends React.Component {
dispatch={dispatch} dispatch={dispatch}
folders={folders} folders={folders}
status={status} status={status}
allArticles={allArticles}
/> />
<ArticleTopBar <ArticleTopBar
ref='top' ref='top'
@@ -141,6 +142,7 @@ function remap (state) {
articles.sort((a, b) => { articles.sort((a, b) => {
return new Date(b.updatedAt) - new Date(a.updatedAt) return new Date(b.updatedAt) - new Date(a.updatedAt)
}) })
let allArticles = articles.slice()
// Filter articles // Filter articles
let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^\/$/) && !key.match(/^#$/)).map(key => { let filters = status.search.split(' ').map(key => key.trim()).filter(key => key.length > 0 && !key.match(/^\/$/) && !key.match(/^#$/)).map(key => {
@@ -229,6 +231,7 @@ function remap (state) {
return { return {
folders, folders,
status, status,
allArticles,
articles, articles,
activeArticle, activeArticle,
filters: { filters: {
@@ -247,6 +250,7 @@ HomePage.propTypes = {
userId: PropTypes.string userId: PropTypes.string
}), }),
articles: PropTypes.array, articles: PropTypes.array,
allArticles: PropTypes.array,
activeArticle: PropTypes.shape(), activeArticle: PropTypes.shape(),
dispatch: PropTypes.func, dispatch: PropTypes.func,
folders: PropTypes.array, folders: PropTypes.array,

View File

@@ -88,16 +88,17 @@ export default class ArticleNavigator extends React.Component {
} }
render () { render () {
let { status, folders } = this.props let { status, folders, allArticles } = this.props
let { targetFolders } = status let { targetFolders } = status
if (targetFolders == null) targetFolders = [] if (targetFolders == null) targetFolders = []
let folderElememts = folders.map((folder, index) => { let folderElememts = folders.map((folder, index) => {
let isActive = findWhere(targetFolders, {key: folder.key}) let isActive = findWhere(targetFolders, {key: folder.key})
let articleCount = allArticles.filter(article => article.FolderKey === folder.key).length
return ( return (
<button onClick={e => this.handleFolderButtonClick(folder.name)(e)} key={'folder-' + folder.key} className={isActive ? 'active' : ''}> <button onClick={e => this.handleFolderButtonClick(folder.name)(e)} key={'folder-' + folder.key} className={isActive ? 'active' : ''}>
<FolderMark color={folder.color}/> {folder.name} <FolderMark color={folder.color}/> {folder.name} <span className='articleCount'>{articleCount}</span>
</button> </button>
) )
}) })
@@ -150,6 +151,7 @@ export default class ArticleNavigator extends React.Component {
ArticleNavigator.propTypes = { ArticleNavigator.propTypes = {
activeUser: PropTypes.object, activeUser: PropTypes.object,
folders: PropTypes.array, folders: PropTypes.array,
allArticles: PropTypes.array,
status: PropTypes.shape({ status: PropTypes.shape({
folderId: PropTypes.number folderId: PropTypes.number
}), }),

View File

@@ -1,4 +1,5 @@
articleNavBgColor = #353535 articleNavBgColor = #353535
articleCount = #999
.ArticleNavigator .ArticleNavigator
background-color articleNavBgColor background-color articleNavBgColor
@@ -150,6 +151,9 @@ articleNavBgColor = #353535
background-color transparentify(white, 5%) background-color transparentify(white, 5%)
&.active, &:active &.active, &:active
background-color brandColor background-color brandColor
.articleCount
color articleCount
font-size 12px
.members .members
.memberList>div .memberList>div
height 33px height 33px