@@ -9,7 +9,7 @@ import Animated, { useAnimatedStyle, useSharedValue, withTiming } from "react-na
9
9
import * as DropdownMenu from "zeego/dropdown-menu"
10
10
11
11
import type { TaskReminder , TaskRepeat } from "@element/database/types"
12
- import { getRepeatingDatesBetween , join , merge , reminderHash , useDisclosure } from "@element/shared"
12
+ import { TASK_REMINDER_OPTIONS , getRepeatingDatesBetween , join , merge , taskReminderHash , useDisclosure } from "@element/shared"
13
13
import colors from "@element/tailwind-config/src/colors"
14
14
15
15
import type { FormResponseError } from "../lib/form"
@@ -42,45 +42,6 @@ type Props = {
42
42
}
43
43
)
44
44
45
- const REMINDER_OPTIONS : { value : TaskReminder ; name : string } [ ] = [
46
- {
47
- value : "AT_TIME" ,
48
- name : "At time of task" ,
49
- } ,
50
- {
51
- value : "MINUTES_5" ,
52
- name : "5 minutes before" ,
53
- } ,
54
- {
55
- value : "MINUTES_10" ,
56
- name : "10 minutes before" ,
57
- } ,
58
- {
59
- value : "MINUTES_15" ,
60
- name : "15 minutes before" ,
61
- } ,
62
- {
63
- value : "MINUTES_30" ,
64
- name : "30 minutes before" ,
65
- } ,
66
- {
67
- value : "HOURS_1" ,
68
- name : "1 hour before" ,
69
- } ,
70
- {
71
- value : "HOURS_2" ,
72
- name : "2 hour before" ,
73
- } ,
74
- {
75
- value : "DAYS_1" ,
76
- name : "1 day before" ,
77
- } ,
78
- {
79
- value : "DAYS_2" ,
80
- name : "2 days before" ,
81
- } ,
82
- ]
83
-
84
45
export function TaskForm ( props : Props ) {
85
46
const router = useRouter ( )
86
47
const canGoBack = router . canGoBack ( )
@@ -132,15 +93,13 @@ export function TaskForm(props: Props) {
132
93
const handlePickTime = ( startTime : Date ) => {
133
94
timeProps . onClose ( )
134
95
135
- const reminder = form . reminder ? REMINDER_OPTIONS . find ( ( r ) => r . value === form . reminder ) ! . value : null
136
-
137
96
const isOutOfWindow =
138
- reminder && form . date
97
+ form . reminder && form . date
139
98
? dayjs ( form . date )
140
99
. set ( "hours" , dayjs ( startTime ) . hour ( ) )
141
100
. set ( "minutes" , dayjs ( startTime ) . minute ( ) )
142
- . subtract ( reminderHash [ reminder ] . hours , "hours" )
143
- . subtract ( reminderHash [ reminder ] . minutes , "minutes" )
101
+ . subtract ( taskReminderHash [ form . reminder ] . hours , "hours" )
102
+ . subtract ( taskReminderHash [ form . reminder ] . minutes , "minutes" )
144
103
. isBefore ( dayjs ( ) )
145
104
: null
146
105
@@ -368,22 +327,22 @@ export function TaskForm(props: Props) {
368
327
< TouchableOpacity className = { merge ( inputClassName , "flex flex-row items-center space-x-2" ) } >
369
328
< Icon icon = { AlarmClock } size = { 16 } />
370
329
< Text className = "text-sm" >
371
- { REMINDER_OPTIONS . find ( ( r ) => r . value === form . reminder ) ?. name || "None" }
330
+ { TASK_REMINDER_OPTIONS . find ( ( r ) => r . value === form . reminder ) ?. name || "None" }
372
331
</ Text >
373
332
</ TouchableOpacity >
374
333
</ DropdownMenu . Trigger >
375
334
< DropdownMenu . Content >
376
335
< DropdownMenu . Item key = "none" onSelect = { ( ) => setForm ( { ...form , reminder : null } ) } >
377
336
None
378
337
</ DropdownMenu . Item >
379
- { REMINDER_OPTIONS . map ( ( option ) => (
338
+ { TASK_REMINDER_OPTIONS . map ( ( option ) => (
380
339
< DropdownMenu . Item
381
340
key = { option . value }
382
341
disabled = { dayjs ( form . date ! )
383
342
. set ( "hour" , Number ( form . startTime ! . split ( ":" ) [ 0 ] ) )
384
343
. set ( "minute" , Number ( form . startTime ! . split ( ":" ) [ 1 ] ) )
385
- . subtract ( reminderHash [ option . value ] . hours , "hours" )
386
- . subtract ( reminderHash [ option . value ] . minutes , "minutes" )
344
+ . subtract ( taskReminderHash [ option . value ] . hours , "hours" )
345
+ . subtract ( taskReminderHash [ option . value ] . minutes , "minutes" )
387
346
. isBefore ( dayjs ( ) ) }
388
347
onSelect = { ( ) => {
389
348
setForm ( { ...form , reminder : option . value } )
0 commit comments