( input: TaskCreationFormStateInput )
| 36 | } |
| 37 | |
| 38 | export function buildTaskCreationFormState( |
| 39 | input: TaskCreationFormStateInput |
| 40 | ): TaskCreationFormState { |
| 41 | const defaults = input.taskCreationDefaults; |
| 42 | const state: TaskCreationFormState = { |
| 43 | title: "", |
| 44 | dueDate: calculateDefaultDateTime(defaults.defaultDueDate, defaults.defaultDueTime), |
| 45 | scheduledDate: calculateDefaultDateTime( |
| 46 | defaults.defaultScheduledDate, |
| 47 | defaults.defaultScheduledTime |
| 48 | ), |
| 49 | priority: input.defaultPriority, |
| 50 | status: input.defaultStatus, |
| 51 | contexts: defaults.defaultContexts || "", |
| 52 | tags: defaults.defaultTags || "", |
| 53 | projectStrings: defaults.defaultProjects |
| 54 | ? splitListPreservingLinksAndQuotes(defaults.defaultProjects) |
| 55 | : [], |
| 56 | timeEstimate: |
| 57 | defaults.defaultTimeEstimate && defaults.defaultTimeEstimate > 0 |
| 58 | ? defaults.defaultTimeEstimate |
| 59 | : 0, |
| 60 | recurrenceRule: "", |
| 61 | recurrenceAnchor: "scheduled", |
| 62 | reminders: |
| 63 | defaults.defaultReminders && defaults.defaultReminders.length > 0 |
| 64 | ? convertDefaultRemindersToReminders(defaults.defaultReminders) |
| 65 | : [], |
| 66 | userFields: buildDefaultUserFieldValues(input.userFields || []), |
| 67 | }; |
| 68 | |
| 69 | if (input.prePopulatedValues) { |
| 70 | applyPrePopulatedValues(state, input.prePopulatedValues, input.taskTag); |
| 71 | } |
| 72 | |
| 73 | return state; |
| 74 | } |
| 75 | |
| 76 | function buildDefaultUserFieldValues( |
| 77 | userFields: readonly UserMappedField[] |
no test coverage detected