1
1
import classnames from 'classnames' ;
2
2
import fecha from 'fecha' ;
3
- import React , { FC } from 'react' ;
3
+ import React , { FC , useState } from 'react' ;
4
4
import Badge from '../Badge/Badge' ;
5
5
import Button from '../Button/Button' ;
6
+ import ButtonDropdown from '../Button/ButtonDropdown'
7
+ import DropdownItem from '../Dropdown/DropdownItem' ;
8
+ import DropdownMenu from '../Dropdown/DropdownMenu' ;
9
+ import DropdownToggle from '../Dropdown/DropdownToggle' ;
6
10
import CardHeader from '../Card/CardHeader' ;
7
11
import CardTitle from '../Card/CardTitle' ;
8
12
import { Note } from './Note.types' ;
@@ -20,15 +24,17 @@ type NoteHeaderProps = {
20
24
showTimezone ?: boolean ;
21
25
onDelete ?: ( note : Omit < Note , 'text' > ) => void ;
22
26
onEdit ?: ( note : Omit < Note , 'text' > ) => void ;
27
+ onSetReminder ?: ( time : number ) => void ;
23
28
} ;
24
29
25
30
const defaultProps = {
26
31
dateFormat : 'ddd MMM DD YYYY HH:mm:ss' ,
27
32
} ;
28
33
29
34
const NoteHeader : FC < NoteHeaderProps > = ( { dateFormat = defaultProps . dateFormat , ...props } ) => {
30
- const { note, onDelete, onEdit, showTimezone } = props ;
35
+ const { note, onDelete, onEdit, showTimezone, onSetReminder } = props ;
31
36
const { date, edited, from, title } = note ;
37
+ const [ isOpen , setIsOpen ] = useState ( false ) ;
32
38
33
39
const headerClassNames = classnames (
34
40
'd-flex' ,
@@ -91,6 +97,49 @@ const NoteHeader: FC<NoteHeaderProps> = ({ dateFormat = defaultProps.dateFormat,
91
97
Delete
92
98
</ Button >
93
99
) : null }
100
+ { onSetReminder ? (
101
+ < div className = "ms-3" >
102
+ < ButtonDropdown isOpen = { isOpen } toggle = { ( ) => setIsOpen ( ! isOpen ) } >
103
+ < DropdownToggle caret > Remind Me</ DropdownToggle >
104
+ < DropdownMenu >
105
+ < DropdownItem
106
+ onClick = { ( ) => onSetReminder (
107
+ new Date ( ) . setMinutes (
108
+ new Date ( ) . getMinutes ( ) + 20
109
+ )
110
+ ) }
111
+ >
112
+ In 20 minutes</ DropdownItem >
113
+ < DropdownItem
114
+ onClick = { ( ) => onSetReminder (
115
+ new Date ( ) . setMinutes (
116
+ new Date ( ) . getMinutes ( ) + 60
117
+ )
118
+ ) }
119
+ >
120
+ In 1 hour</ DropdownItem >
121
+ < DropdownItem
122
+ onClick = { ( ) => onSetReminder (
123
+ new Date ( ) . setMinutes (
124
+ new Date ( ) . getMinutes ( ) + 1440
125
+ )
126
+ ) }
127
+ >
128
+ Tomorrow
129
+ </ DropdownItem >
130
+ < DropdownItem
131
+ onClick = { ( ) => onSetReminder (
132
+ new Date ( ) . setMinutes (
133
+ new Date ( ) . getMinutes ( ) + 10080
134
+ )
135
+ ) }
136
+ >
137
+ Next Week
138
+ </ DropdownItem >
139
+ </ DropdownMenu >
140
+ </ ButtonDropdown >
141
+ </ div >
142
+ ) : null }
94
143
</ div >
95
144
</ CardHeader >
96
145
) : (
0 commit comments