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

add todo percentage in item list

This commit is contained in:
XGHeaven
2017-08-09 10:50:54 +08:00
parent 2324327e7e
commit 1c7cba2951
7 changed files with 103 additions and 19 deletions

View File

@@ -4,7 +4,9 @@
import React, { PropTypes } from 'react'
import { isArray } from 'lodash'
import CSSModules from 'browser/lib/CSSModules'
import { getTodoState } from 'browser/lib/getTodoState'
import styles from './NoteItem.styl'
import TodoProcess from './TodoProcess'
/**
* @description Tag element component.
@@ -76,6 +78,10 @@ const NoteItem = ({ isActive, note, dateDisplay, handleNoteClick, handleDragStar
}
</div>
</div>
{note.type === 'MARKDOWN_NOTE'
? <TodoProcess todoState={getTodoState(note.content)} />
: ''
}
</div>
</div>
)

View File

@@ -39,6 +39,7 @@ $control-height = 30px
.item-wrapper
padding 15px 0
border-bottom $ui-border
position relative
.item--active
@extend .item

View File

@@ -48,6 +48,7 @@ $control-height = 30px
overflow ellipsis
color $ui-inactive-text-color
border-bottom $ui-border
position relative
.item-simple-title-icon
font-size 12px

View File

@@ -0,0 +1,33 @@
/**
* @fileoverview Percentage of todo achievement.
*/
import React, { PropTypes } from 'react'
import CSSModules from 'browser/lib/CSSModules'
import styles from './TodoProcess.styl'
const TodoProcess = ({
todoState: {
total: totalTodo,
completed: completedTodo
}
}) => (
<div styleName='todo-process' style={{display: totalTodo > 0 ? '' : 'none'}}>
<div styleName='todo-process-text'>
<i className='fa fa-fw fa-tasks' />
{completedTodo} of {totalTodo}
</div>
<div styleName='todo-process-bar'>
<div styleName='todo-process-bar--inner' style={{width: parseInt(completedTodo / totalTodo * 100) + '%'}} />
</div>
</div>
)
TodoProcess.propTypes = {
todoState: {
total: PropTypes.number.isRequired,
completed: PropTypes.number.isRequired
}
}
export default CSSModules(TodoProcess, styles)

View File

@@ -0,0 +1,35 @@
.todo-process
font-size 12px
display flex
.todo-process-text
display inline-block
padding-right 10px
white-space nowrap
text-overflow ellipsis
i
color grey
padding-right 5px
.todo-process-bar
display inline-block
margin auto
width 150px
height 5px
background-color #DADFE1
border-radius 2px
flex-grow 1
.todo-process-bar--inner
height 100%
background-color #6C7A89
body[data-theme="dark"]
.todo-process
color $ui-dark-text-color
.todo-process-bar
background-color #363A3D
.todo-process-bar--inner
background-color: alpha(#939395, 50%)