mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
Folder リストに articleの数をだす
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user