@@ -83,6 +83,29 @@ const sortByPriority: (direction: TaskSortOrder) => Sort = (
83
83
},
84
84
];
85
85
86
+ const TASK_SORT_OPTIONS: SortOption [] = [
87
+ {
88
+ id: ' dueDateDesc' ,
89
+ displayName: ' Due Date' ,
90
+ sort: sortByDueDate (' desc' ),
91
+ },
92
+ {
93
+ id: ' dueDateAsc' ,
94
+ displayName: ' Due Date' ,
95
+ sort: sortByDueDate (' asc' ),
96
+ },
97
+ {
98
+ id: ' priorityDesc' ,
99
+ displayName: ' Priority' ,
100
+ sort: sortByPriority (' desc' ),
101
+ },
102
+ {
103
+ id: ' priorityAsc' ,
104
+ displayName: ' Priority' ,
105
+ sort: sortByPriority (' asc' ),
106
+ },
107
+ ];
108
+
86
109
const CONTACT_FILTERS: LayoutFilter [] = [
87
110
{
88
111
displayName: ' All Contacts' ,
@@ -151,34 +174,14 @@ const TASK_FILTERS: LayoutFilter[] = [
151
174
icon: ListDetails ,
152
175
cardTypeName: ' CRM Task' ,
153
176
createNewButtonText: ' Create Task' ,
154
- sortOptions: [
155
- {
156
- id: ' dueDateDesc' ,
157
- displayName: ' Due Date' ,
158
- sort: sortByDueDate (' desc' ),
159
- },
160
- {
161
- id: ' dueDateAsc' ,
162
- displayName: ' Due Date' ,
163
- sort: sortByDueDate (' asc' ),
164
- },
165
- {
166
- id: ' priorityDesc' ,
167
- displayName: ' Priority' ,
168
- sort: sortByPriority (' desc' ),
169
- },
170
- {
171
- id: ' priorityAsc' ,
172
- displayName: ' Priority' ,
173
- sort: sortByPriority (' asc' ),
174
- },
175
- ],
177
+ sortOptions: TASK_SORT_OPTIONS ,
176
178
},
177
179
... taskStatusValues .map ((status ) => ({
178
180
displayName: status .label ,
179
181
icon: status .icon ,
180
182
cardTypeName: ' CRM Task' ,
181
183
createNewButtonText: ' Create Task' ,
184
+ sortOptions: TASK_SORT_OPTIONS ,
182
185
})),
183
186
];
184
187
@@ -213,6 +216,30 @@ class CrmAppTemplate extends Component<typeof CrmApp> {
213
216
@tracked private activeFilter: LayoutFilter = CONTACT_FILTERS [0 ];
214
217
@action private onFilterChange(filter : LayoutFilter ) {
215
218
this .activeFilter = filter ;
219
+ if (this .activeTabId === ' Task' ) {
220
+ switch (this .activeFilter .displayName ) {
221
+ case ' All Tasks' :
222
+ case ' Overdue' :
223
+ case ' Due this week' :
224
+ case ' Unassigned' :
225
+ this .activeFilter .selectedSort = {
226
+ id: ' dueDateAsc' ,
227
+ displayName: ' Due Date' ,
228
+ sort: sortByDueDate (' asc' ),
229
+ };
230
+ break ;
231
+ case ' Due Today' :
232
+ case ' High Priority' :
233
+ this .activeFilter .selectedSort = {
234
+ id: ' priorityDesc' ,
235
+ displayName: ' Priority' ,
236
+ sort: sortByPriority (' desc' ),
237
+ };
238
+ break ;
239
+ default :
240
+ break ;
241
+ }
242
+ }
216
243
}
217
244
// tabs
218
245
@tracked activeTabId: string | undefined = TABS [0 ].tabId ;
0 commit comments