@@ -37,6 +37,8 @@ interface ViewProperties {
37
37
groupBy ?: string
38
38
}
39
39
40
+ export type ViewCreateType = 'new' | 'update' | 'clone' | 'save-as'
41
+
40
42
interface TaskViewModalState {
41
43
open : boolean
42
44
// If present, changes in title, description will be applied to the view with viewid
@@ -45,9 +47,11 @@ interface TaskViewModalState {
45
47
cloneViewId ?: string
46
48
filters : Filter [ ]
47
49
properties ?: ViewProperties
50
+ type ?: ViewCreateType
48
51
49
52
openModal : ( args : {
50
53
filters : Filter [ ]
54
+ type ?: ViewCreateType
51
55
updateViewId ?: string
52
56
cloneViewId ?: string
53
57
properties : ViewProperties
@@ -59,6 +63,7 @@ interface TaskViewModalState {
59
63
const getInitialState = ( ) => ( {
60
64
open : false ,
61
65
filters : [ ] ,
66
+ type : 'new' as ViewCreateType ,
62
67
updateViewId : undefined ,
63
68
cloneViewId : undefined ,
64
69
properties : {
@@ -88,6 +93,7 @@ const TaskViewModal = () => {
88
93
const updateViewId = useTaskViewModalStore ( ( store ) => store . updateViewId )
89
94
const cloneViewId = useTaskViewModalStore ( ( store ) => store . cloneViewId )
90
95
const filters = useTaskViewModalStore ( ( store ) => store . filters )
96
+ const type = useTaskViewModalStore ( ( store ) => store . type )
91
97
92
98
const closeModal = useTaskViewModalStore ( ( store ) => store . closeModal )
93
99
@@ -173,10 +179,17 @@ const TaskViewModal = () => {
173
179
closeModal ( )
174
180
}
175
181
176
- // mog('TaskViewModal', { open, curView })
182
+ // * TODO: Use Type Based Switch here
183
+ const getTitle = ( ) => {
184
+ if ( updateViewId ) return 'Update View'
185
+ if ( type === 'save-as' ) return 'Save As'
186
+ if ( cloneViewId ) return 'Clone View'
187
+ return 'New View'
188
+ }
189
+
177
190
return (
178
191
< Modal className = "ModalContent" overlayClassName = "ModalOverlay" onRequestClose = { closeModal } isOpen = { open } >
179
- < ModalHeader > { updateViewId ? 'Update' : cloneViewId ? 'Clone' : 'New' } Task View </ ModalHeader >
192
+ < ModalHeader > { getTitle ( ) } </ ModalHeader >
180
193
181
194
< form onSubmit = { handleSubmit ( onSubmit ) } >
182
195
< Input
0 commit comments