@@ -50,6 +50,8 @@ import { NOTIFICATION_CONTEXT } from "../../../../configs/modalConfig";
5050import { unwrapResult } from "@reduxjs/toolkit" ;
5151import { ParseKeys } from "i18next" ;
5252import EventDetailsWorkflowSchedulingTab from "../ModalTabsAndPages/EventDetailsWorkflowSchedulingTab" ;
53+ import { useHotkeys } from "react-hotkeys-hook" ;
54+ import { availableHotkeys } from "../../../../configs/hotkeysConfig" ;
5355
5456export enum EventDetailsPage {
5557 Metadata ,
@@ -229,6 +231,42 @@ const EventDetails = ({
229231 dispatch ( openModalTab ( tabNr , "workflow-details" , "entry" ) ) ;
230232 }
231233 } ;
234+ const wizardTabs = tabs . filter ( tab =>
235+ ! tab . hidden ,
236+ ) ;
237+
238+ const goNextStep = ( ) => {
239+ const currentIndex = wizardTabs . findIndex ( tab => tab . page === page ) ;
240+ if ( currentIndex === - 1 ) { return ; } // not in wizard, do nothing
241+ const nextIndex = currentIndex + 1 ;
242+ if ( nextIndex >= wizardTabs . length ) { return ; } // already at last step (Comments)
243+ openTab ( wizardTabs [ nextIndex ] . page ) ;
244+ } ;
245+
246+ const goPrevStep = ( ) => {
247+ const currentIndex = wizardTabs . findIndex ( tab => tab . page === page ) ;
248+ if ( currentIndex <= 0 ) { return ; }
249+ openTab ( wizardTabs [ currentIndex - 1 ] . page ) ;
250+ } ;
251+ // NEXT STEP
252+ useHotkeys (
253+ availableHotkeys . general . NEXT_PANEL . sequence ,
254+ ( ) => {
255+ goNextStep ( ) ;
256+ } ,
257+ { enableOnFormTags : [ "INPUT" , "TEXTAREA" ] } ,
258+ [ goNextStep ] ,
259+ ) ;
260+
261+ // PREVIOUS STEP
262+ useHotkeys (
263+ availableHotkeys . general . PREVIOUS_PANEL . sequence ,
264+ ( ) => {
265+ goPrevStep ( ) ;
266+ } ,
267+ { enableOnFormTags : [ "INPUT" , "TEXTAREA" ] } ,
268+ [ goPrevStep ] ,
269+ ) ;
232270
233271 return (
234272 < >
0 commit comments