@@ -67,6 +67,51 @@ const PROGRESS_STATES = {
67
67
} ,
68
68
} ;
69
69
70
+ const ProgressIndicator = ( {
71
+ hasSeenRestarting,
72
+ config,
73
+ isRestarting,
74
+ waitingToRestart,
75
+ } : {
76
+ hasSeenRestarting : boolean ;
77
+ config ?: ProjectConfig | null ;
78
+ isRestarting : boolean ;
79
+ waitingToRestart : boolean ;
80
+ } ) => {
81
+ const currentProgress = useMemo ( ( ) => {
82
+ if ( hasSeenRestarting && config ) {
83
+ return PROGRESS_STATES . READY ;
84
+ }
85
+
86
+ if ( isRestarting ) {
87
+ return PROGRESS_STATES . RESTARTING ;
88
+ }
89
+
90
+ if ( waitingToRestart ) {
91
+ return PROGRESS_STATES . WAITING ;
92
+ }
93
+
94
+ return PROGRESS_STATES . READY ;
95
+ } , [ waitingToRestart , isRestarting ] ) ;
96
+
97
+ return (
98
+ < Progress
99
+ type = "circle"
100
+ percent = { currentProgress . percent }
101
+ steps = { 3 }
102
+ trailColor = { cdlGray200 }
103
+ strokeColor = { currentProgress . color }
104
+ strokeWidth = { 10 }
105
+ format = { ( ) => (
106
+ < Flex align = "center" justify = "center" >
107
+ < Typography . Text style = { { fontSize : 10 , textWrap : "wrap" } } >
108
+ { currentProgress . text }
109
+ </ Typography . Text >
110
+ </ Flex >
111
+ ) }
112
+ />
113
+ ) ;
114
+ } ;
70
115
const RestartAppModal = ( {
71
116
confirmationModal,
72
117
form,
@@ -99,15 +144,22 @@ const RestartAppModal = ({
99
144
restartApplication . mutate ( { } ) ;
100
145
} ,
101
146
} ) ;
102
- const { isError : isProjectConfigError } = useGetAmpConfig ( polling ) ;
147
+ const { data : config } = useGetAmpConfig ( polling ) ;
148
+
149
+ const isRestarting = ! config && polling ;
103
150
104
- const isRestarting = isProjectConfigError && polling ;
105
151
useEffect ( ( ) => {
106
152
if ( isRestarting ) {
107
153
setHasSeenRestarting ( true ) ;
108
154
}
109
155
} , [ isRestarting , setHasSeenRestarting ] ) ;
110
156
157
+ useEffect ( ( ) => {
158
+ if ( config && polling && hasSeenRestarting ) {
159
+ setPolling ( false ) ;
160
+ }
161
+ } , [ setPolling , config , polling , hasSeenRestarting ] ) ;
162
+
111
163
const handleSubmit = ( ) => {
112
164
form
113
165
. validateFields ( )
@@ -134,17 +186,6 @@ const RestartAppModal = ({
134
186
} ;
135
187
136
188
const waitingToRestart = polling && ! hasSeenRestarting ;
137
-
138
- const currentProgress = useMemo ( ( ) => {
139
- if ( waitingToRestart ) {
140
- return PROGRESS_STATES . WAITING ;
141
- }
142
- if ( isRestarting ) {
143
- return PROGRESS_STATES . RESTARTING ;
144
- }
145
- return PROGRESS_STATES . READY ;
146
- } , [ waitingToRestart , isRestarting ] ) ;
147
-
148
189
const updateInProgress = updateAmpConfig . isSuccess && polling ;
149
190
150
191
return (
@@ -175,21 +216,12 @@ const RestartAppModal = ({
175
216
>
176
217
Update Settings
177
218
</ Button >
178
- { updateInProgress ? (
179
- < Progress
180
- type = "circle"
181
- percent = { currentProgress . percent }
182
- steps = { 3 }
183
- trailColor = { cdlGray200 }
184
- strokeColor = { currentProgress . color }
185
- strokeWidth = { 10 }
186
- format = { ( ) => (
187
- < Flex align = "center" justify = "center" >
188
- < Typography . Text style = { { fontSize : 10 , textWrap : "wrap" } } >
189
- { currentProgress . text }
190
- </ Typography . Text >
191
- </ Flex >
192
- ) }
219
+ { updateAmpConfig . isSuccess ? (
220
+ < ProgressIndicator
221
+ hasSeenRestarting = { hasSeenRestarting }
222
+ isRestarting = { isRestarting }
223
+ waitingToRestart = { waitingToRestart }
224
+ config = { config }
193
225
/>
194
226
) : null }
195
227
{ updateAmpConfig . isSuccess && ! waitingToRestart && ! isRestarting ? (
0 commit comments