MouleeswaranM commited on
Commit
592fc61
·
verified ·
1 Parent(s): fa5cfdf

feat: Add RouteOptimization page to App.tsx router

Browse files
ops/AIsupplychain/aisupply/src/App.tsx CHANGED
@@ -21,6 +21,7 @@ import { AllocateRoutes } from "./pages/AllocateRoutes";
21
  import { FairDispatch } from "./pages/FairDispatch";
22
  import { ApiKeys } from "./pages/ApiKeys";
23
  import { LoadConsolidation } from "./pages/LoadConsolidation";
 
24
  import { useLocation } from "react-router-dom";
25
 
26
  // Protected Route Component
@@ -51,7 +52,6 @@ function DashboardLayout() {
51
 
52
  useEffect(() => {
53
  const handleKeyDown = (e: KeyboardEvent) => {
54
- // Ignore if user is typing in an input or textarea
55
  if (
56
  (e.target as HTMLElement).tagName === "INPUT" ||
57
  (e.target as HTMLElement).tagName === "TEXTAREA"
@@ -59,52 +59,22 @@ function DashboardLayout() {
59
  return;
60
  }
61
 
62
- // Help Shortcut (?)
63
  if (e.key === "?" && e.shiftKey) {
64
  e.preventDefault();
65
  setIsShortcutsOpen(true);
66
  return;
67
  }
68
 
69
- // Check for Ctrl/Cmd key modifications
70
  if (e.ctrlKey || e.metaKey) {
71
  switch (e.key) {
72
- case "1":
73
- e.preventDefault();
74
- navigate("/");
75
- break;
76
- case "2":
77
- e.preventDefault();
78
- navigate("/absorption-requests");
79
- break;
80
- case "3":
81
- e.preventDefault();
82
- navigate("/packages");
83
- break;
84
- case "4":
85
- e.preventDefault();
86
- navigate("/analytics");
87
- break;
88
- case "5":
89
- e.preventDefault();
90
- navigate("/eway-bill");
91
- break;
92
- case "6":
93
- e.preventDefault();
94
- navigate("/drivers");
95
- break;
96
- case "k":
97
- case "K":
98
- e.preventDefault();
99
- document.getElementById("global-search-input")?.focus();
100
- break;
101
- case "q":
102
- case "Q":
103
- e.preventDefault();
104
- showToast("Quick Actions", "Opening quick actions menu...", "info");
105
- break;
106
- default:
107
- break;
108
  }
109
  }
110
  };
@@ -126,10 +96,8 @@ function DashboardLayout() {
126
  <Route path="/" element={<Dashboard />} />
127
  <Route path="/dashboard" element={<Dashboard />} />
128
  <Route path="/fair-dispatch" element={<FairDispatch />} />
129
- <Route
130
- path="/absorption-requests"
131
- element={<AbsorptionRequests />}
132
- />
133
  <Route path="/analytics" element={<Analytics />} />
134
  <Route path="/eway-bill" element={<EWayBill />} />
135
  <Route path="/drivers" element={<Drivers />} />
@@ -156,7 +124,6 @@ function DashboardLayout() {
156
  function AppContent() {
157
  const { loading } = useAuth();
158
 
159
- // Initialize dev token if available (dev only)
160
  useEffect(() => {
161
  if (!import.meta.env.DEV) return;
162
  const initializeToken = async () => {
@@ -167,10 +134,9 @@ function AppContent() {
167
  localStorage.setItem("authToken", data.token);
168
  }
169
  } catch {
170
- // dev_token.json not found — expected in most setups
171
  }
172
  };
173
-
174
  initializeToken();
175
  }, []);
176
 
 
21
  import { FairDispatch } from "./pages/FairDispatch";
22
  import { ApiKeys } from "./pages/ApiKeys";
23
  import { LoadConsolidation } from "./pages/LoadConsolidation";
24
+ import { RouteOptimization } from "./pages/RouteOptimization";
25
  import { useLocation } from "react-router-dom";
26
 
27
  // Protected Route Component
 
52
 
53
  useEffect(() => {
54
  const handleKeyDown = (e: KeyboardEvent) => {
 
55
  if (
56
  (e.target as HTMLElement).tagName === "INPUT" ||
57
  (e.target as HTMLElement).tagName === "TEXTAREA"
 
59
  return;
60
  }
61
 
 
62
  if (e.key === "?" && e.shiftKey) {
63
  e.preventDefault();
64
  setIsShortcutsOpen(true);
65
  return;
66
  }
67
 
 
68
  if (e.ctrlKey || e.metaKey) {
69
  switch (e.key) {
70
+ case "1": e.preventDefault(); navigate("/"); break;
71
+ case "2": e.preventDefault(); navigate("/fair-dispatch"); break;
72
+ case "3": e.preventDefault(); navigate("/route-optimization"); break;
73
+ case "4": e.preventDefault(); navigate("/load-consolidation"); break;
74
+ case "5": e.preventDefault(); navigate("/analytics"); break;
75
+ case "6": e.preventDefault(); navigate("/drivers"); break;
76
+ case "k": case "K": e.preventDefault(); document.getElementById("global-search-input")?.focus(); break;
77
+ default: break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  }
79
  }
80
  };
 
96
  <Route path="/" element={<Dashboard />} />
97
  <Route path="/dashboard" element={<Dashboard />} />
98
  <Route path="/fair-dispatch" element={<FairDispatch />} />
99
+ <Route path="/route-optimization" element={<RouteOptimization />} />
100
+ <Route path="/absorption-requests" element={<AbsorptionRequests />} />
 
 
101
  <Route path="/analytics" element={<Analytics />} />
102
  <Route path="/eway-bill" element={<EWayBill />} />
103
  <Route path="/drivers" element={<Drivers />} />
 
124
  function AppContent() {
125
  const { loading } = useAuth();
126
 
 
127
  useEffect(() => {
128
  if (!import.meta.env.DEV) return;
129
  const initializeToken = async () => {
 
134
  localStorage.setItem("authToken", data.token);
135
  }
136
  } catch {
137
+ // dev_token.json not found — expected
138
  }
139
  };
 
140
  initializeToken();
141
  }, []);
142