1
- import React , { useEffect , useState , useRef } from 'react' ;
1
+ import { useEffect , useState , useRef } from 'react' ;
2
2
import { RolloutHistory } from "../rolloutHistory/rolloutHistory" ;
3
3
import Emoji from "react-emoji-render" ;
4
4
import { Fragment } from 'react'
5
5
import { Menu , Transition } from '@headlessui/react'
6
6
import { ArrowPathIcon } from '@heroicons/react/20/solid'
7
7
import {
8
8
ACTION_TYPE_ROLLOUT_HISTORY ,
9
- ACTION_TYPE_POPUPWINDOWERROR ,
10
- ACTION_TYPE_POPUPWINDOWRESET ,
11
- ACTION_TYPE_POPUPWINDOWSUCCESS ,
12
- ACTION_TYPE_POPUPWINDOWPROGRESS ,
13
9
} from "../../redux/redux" ;
14
10
import { copyToClipboard } from '../../views/settings/settings' ;
15
11
import { usePostHog } from 'posthog-js/react'
@@ -18,6 +14,8 @@ import { AlertPanel } from './alert';
18
14
import { Logs } from '../../views/footer/logs' ;
19
15
import { Describe } from '../../views/footer/capacitor/Describe' ;
20
16
import { ArrowTopRightOnSquareIcon , LinkIcon } from '@heroicons/react/24/solid' ;
17
+ import { toast } from 'react-toastify' ;
18
+ import { InProgress , Success , Error } from '../../popUpWindow' ;
21
19
22
20
function ServiceDetail ( props ) {
23
21
const { store, gimletClient } = props ;
@@ -28,6 +26,8 @@ function ServiceDetail(props) {
28
26
const posthog = usePostHog ( )
29
27
const [ pullRequests , setPullRequests ] = useState ( )
30
28
29
+ const progressToastId = useRef ( null ) ;
30
+
31
31
useEffect ( ( ) => {
32
32
if ( deploymentFromParams === stack . service . name ) {
33
33
window . scrollTo ( { behavior : 'smooth' , top : ref . current . offsetTop } )
@@ -67,69 +67,48 @@ function ServiceDetail(props) {
67
67
} ;
68
68
69
69
const deleteAppInstance = ( ) => {
70
- store . dispatch ( {
71
- type : ACTION_TYPE_POPUPWINDOWPROGRESS , payload : {
72
- header : "Deleting application instance..."
73
- }
74
- } ) ;
70
+ progressToastId . current = toast ( < InProgress header = "Deleting application instance..." /> , { autoClose : false } ) ;
75
71
76
72
gimletClient . deleteAppInstance ( environment . name , stack . service . name )
77
73
. then ( ( ) => {
78
- store . dispatch ( {
79
- type : ACTION_TYPE_POPUPWINDOWSUCCESS , payload : {
80
- header : "Success" ,
81
- message : "Application instance deleted" ,
82
- }
74
+ toast . update ( progressToastId . current , {
75
+ render : < Success header = "Application instance deleted" /> ,
76
+ className : "bg-green-50 shadow-lg p-2" ,
77
+ bodyClassName : "p-2" ,
83
78
} ) ;
84
79
} , ( err ) => {
85
- store . dispatch ( {
86
- type : ACTION_TYPE_POPUPWINDOWERROR , payload : {
87
- header : "Error" ,
88
- message : err . statusText
89
- }
80
+ toast . update ( progressToastId . current , {
81
+ render : < Error header = "Error" message = { err . statusText } /> ,
82
+ className : "bg-red-50 shadow-lg p-2" ,
83
+ bodyClassName : "p-2" ,
84
+ progressClassName : "!bg-red-200" ,
85
+ autoClose : 5000
90
86
} ) ;
91
- setTimeout ( ( ) => {
92
- store . dispatch ( {
93
- type : ACTION_TYPE_POPUPWINDOWRESET
94
- } ) ;
95
- } , 3000 ) ;
96
87
} ) ;
97
88
}
98
89
99
90
const silenceAlert = ( object , hours ) => {
100
91
var date = new Date ( ) ;
101
92
date . setHours ( date . getHours ( ) + hours ) ;
102
93
103
- store . dispatch ( {
104
- type : ACTION_TYPE_POPUPWINDOWPROGRESS , payload : {
105
- header : "Silence deployment alerts..."
106
- }
107
- } ) ;
94
+ progressToastId . current = toast ( < InProgress header = "Silencing alerts..." /> , { autoClose : false } ) ;
108
95
109
96
gimletClient . silenceAlert ( object , date . toISOString ( ) )
110
97
. then ( ( ) => {
111
- store . dispatch ( {
112
- type : ACTION_TYPE_POPUPWINDOWSUCCESS , payload : {
113
- header : "Success" ,
114
- }
98
+ toast . update ( progressToastId . current , {
99
+ render : < Success header = "Silenced" /> ,
100
+ className : "bg-green-50 shadow-lg p-2" ,
101
+ bodyClassName : "p-2" ,
102
+ autoClose : 3000 ,
115
103
} ) ;
116
- setTimeout ( ( ) => {
117
- store . dispatch ( {
118
- type : ACTION_TYPE_POPUPWINDOWRESET
119
- } ) ;
120
- } , 3000 ) ;
121
104
} , ( err ) => {
122
- store . dispatch ( {
123
- type : ACTION_TYPE_POPUPWINDOWERROR , payload : {
124
- header : "Error" ,
125
- message : err . statusText
126
- }
105
+ toast . update ( progressToastId . current , {
106
+ render : < Error header = "Error" message = { err . statusText } /> ,
107
+ className : "bg-red-50 shadow-lg p-2" ,
108
+ bodyClassName : "p-2" ,
109
+ progressClassName : "!bg-red-200" ,
110
+ autoClose : 5000
127
111
} ) ;
128
- setTimeout ( ( ) => {
129
- store . dispatch ( {
130
- type : ACTION_TYPE_POPUPWINDOWRESET
131
- } ) ;
132
- } , 3000 ) ;
133
112
} ) ;
134
113
}
135
114
0 commit comments