@@ -17,6 +17,8 @@ import Actions from './Actions.jsx';
1717 * selectedProcess: object | null,
1818 * details: object | null,
1919 * onRestart: () => Promise<void>,
20+ * onStop: () => Promise<void>,
21+ * onStart: () => Promise<void>,
2022 * onDelete: (withDeploy?: boolean) => Promise<void>,
2123 * onRemoveOrphan: (pm2Name: string) => Promise<void>,
2224 * selectedDeployment: object | null,
@@ -31,6 +33,8 @@ export default function HeroCard({
3133 selectedProcess,
3234 details,
3335 onRestart,
36+ onStop,
37+ onStart,
3438 onDelete,
3539 onRemoveOrphan,
3640 selectedDeployment,
@@ -41,6 +45,7 @@ export default function HeroCard({
4145 onCsrfRefresh,
4246} ) {
4347 const [ confirmingRestart , setConfirmingRestart ] = useState ( false ) ;
48+ const [ confirmingStop , setConfirmingStop ] = useState ( false ) ;
4449 const [ confirmingDelete , setConfirmingDelete ] = useState ( false ) ;
4550 const [ confirmingRemoveOrphan , setConfirmingRemoveOrphan ] = useState ( false ) ;
4651
@@ -94,6 +99,35 @@ export default function HeroCard({
9499 Restart
95100 </ button >
96101 ) }
102+ { ! isOrphan && (
103+ statusLower === 'online' ? (
104+ confirmingStop ? (
105+ < span className = "hero-confirm" >
106+ Stop?
107+ < button className = "hero-confirm-btn hero-confirm-btn--yes" onClick = { async ( ) => { setConfirmingStop ( false ) ; await onStop ( ) ; } } > Yes</ button >
108+ < button className = "hero-confirm-btn" onClick = { ( ) => setConfirmingStop ( false ) } > No</ button >
109+ </ span >
110+ ) : (
111+ < button
112+ className = "ghost-button"
113+ type = "button"
114+ disabled = { ! selectedProcess }
115+ onClick = { ( ) => setConfirmingStop ( true ) }
116+ >
117+ Stop
118+ </ button >
119+ )
120+ ) : (
121+ < button
122+ className = "ghost-button"
123+ type = "button"
124+ disabled = { ! selectedProcess }
125+ onClick = { async ( ) => { await onStart ( ) ; } }
126+ >
127+ Start
128+ </ button >
129+ )
130+ ) }
97131 { selectedDeployment && ! isOrphan && (
98132 < button
99133 className = "ghost-button"
0 commit comments