11import React , { useMemo } from 'react' ;
22import { observer } from 'mobx-react' ;
3- import { PauseOutlined } from '@ant-design/icons' ;
4-
5- import './TaskControl.less' ;
3+ import { createUseStyles } from 'react-jss' ;
64
75import rootStore from '../../modules/RootStore' ;
86import * as TaskHooks from '../../hooks/TaskHooks' ;
9- import CircleButton from '../CircleButton/CircleButton' ;
7+ import PlayStopButton from '../PlayStopButton/PlayStopButton' ;
8+ import { PURPLE_COLOR } from '../../consts' ;
109
1110const { tasksStore, projectStore } = rootStore ;
1211
13- export default observer ( function TaskControl ( ) {
12+ function TaskControl ( ) {
13+ const styles = useStyles ( ) ;
1414 const task = tasksStore . activeTask ;
1515 const duration = TaskHooks . useTaskDuration ( task ) ;
1616
@@ -20,17 +20,49 @@ export default observer(function TaskControl() {
2020
2121 if ( task ) {
2222 return (
23- < span className = "task-control" >
24- < div className = "task-control__info" >
25- < span className = "task-control__project" > { project ?. title } </ span >
23+ < span className = { styles . root } >
24+ < div className = { styles . info } >
25+ < span className = { styles . project } > { project ?. title } </ span >
2626 < span > { task . title } </ span >
2727 </ div >
28- < span className = "task-control__duration" > { duration } </ span >
29- < CircleButton onClick = { ( ) => tasksStore . stopTimer ( ) } >
30- < PauseOutlined />
31- </ CircleButton >
28+ < span className = { styles . duration } > { duration } </ span >
29+ < PlayStopButton task = { task } />
3230 </ span >
3331 ) ;
3432 }
35- return < span className = "task-control" > No active tasks</ span > ;
33+ return < span className = { styles . root } > No active tasks</ span > ;
34+ }
35+
36+ export default observer ( TaskControl ) ;
37+
38+ const useStyles = createUseStyles ( {
39+ root : {
40+ display : 'inline-flex' ,
41+ alignItems : 'center' ,
42+ height : '44px' ,
43+ marginLeft : '20px' ,
44+ padding : '8px' ,
45+ borderRadius : '5px' ,
46+ lineHeight : '16px' ,
47+ color : 'white' ,
48+ backgroundColor : PURPLE_COLOR ,
49+ } ,
50+ project : {
51+ fontSize : '12px' ,
52+ } ,
53+ info : {
54+ display : 'inline-flex' ,
55+ flex : 1 ,
56+ flexDirection : 'column' ,
57+ marginRight : '8px' ,
58+ width : '140px' ,
59+ '& span' : {
60+ whiteSpace : 'nowrap' ,
61+ textOverflow : 'ellipsis' ,
62+ overflow : 'hidden' ,
63+ } ,
64+ } ,
65+ duration : {
66+ marginRight : '8px' ,
67+ } ,
3668} ) ;
0 commit comments