11import classnames from 'classnames' ;
22import fecha from 'fecha' ;
3- import React , { FC } from 'react' ;
3+ import React , { FC , useState } from 'react' ;
44import Badge from '../Badge/Badge' ;
55import 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' ;
610import CardHeader from '../Card/CardHeader' ;
711import CardTitle from '../Card/CardTitle' ;
812import { Note } from './Note.types' ;
@@ -20,15 +24,17 @@ type NoteHeaderProps = {
2024 showTimezone ?: boolean ;
2125 onDelete ?: ( note : Omit < Note , 'text' > ) => void ;
2226 onEdit ?: ( note : Omit < Note , 'text' > ) => void ;
27+ onSetReminder ?: ( note : Omit < Note , 'text' > , time : number ) => void ;
2328} ;
2429
2530const defaultProps = {
2631 dateFormat : 'ddd MMM DD YYYY HH:mm:ss' ,
2732} ;
2833
2934const NoteHeader : FC < NoteHeaderProps > = ( { dateFormat = defaultProps . dateFormat , ...props } ) => {
30- const { note, onDelete, onEdit, showTimezone } = props ;
35+ const { note, onDelete, onEdit, showTimezone, onSetReminder } = props ;
3136 const { date, edited, from, title } = note ;
37+ const [ isOpen , setIsOpen ] = useState ( false ) ;
3238
3339 const headerClassNames = classnames (
3440 'd-flex' ,
@@ -91,6 +97,53 @@ const NoteHeader: FC<NoteHeaderProps> = ({ dateFormat = defaultProps.dateFormat,
9197 Delete
9298 </ Button >
9399 ) : 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+ note ,
108+ new Date ( ) . setMinutes (
109+ new Date ( ) . getMinutes ( ) + 20
110+ )
111+ ) }
112+ >
113+ In 20 minutes</ DropdownItem >
114+ < DropdownItem
115+ onClick = { ( ) => onSetReminder (
116+ note ,
117+ new Date ( ) . setMinutes (
118+ new Date ( ) . getMinutes ( ) + 60
119+ )
120+ ) }
121+ >
122+ In 1 hour</ DropdownItem >
123+ < DropdownItem
124+ onClick = { ( ) => onSetReminder (
125+ note ,
126+ new Date ( ) . setMinutes (
127+ new Date ( ) . getMinutes ( ) + 1440
128+ )
129+ ) }
130+ >
131+ Tomorrow
132+ </ DropdownItem >
133+ < DropdownItem
134+ onClick = { ( ) => onSetReminder (
135+ note ,
136+ new Date ( ) . setMinutes (
137+ new Date ( ) . getMinutes ( ) + 10080
138+ )
139+ ) }
140+ >
141+ Next Week
142+ </ DropdownItem >
143+ </ DropdownMenu >
144+ </ ButtonDropdown >
145+ </ div >
146+ ) : null }
94147 </ div >
95148 </ CardHeader >
96149 ) : (
0 commit comments