diff --git a/src/index.js b/src/index.js index 005c13d..f2c90d2 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,4 @@ +import logger from './utils/logger'; import { createRoot } from 'react-dom/client'; import { BrowserRouter } from 'react-router-dom'; @@ -38,6 +39,8 @@ if (process.env.NODE_ENV !== 'development') { console.warn = () => {}; // Optionally disable console.warn } +logger.info('NearlExpress console application starting...'); + // const root = ReactDOM.createRoot(document.getElementById('root')); // ==============================|| MAIN - REACT DOM RENDER ||============================== // diff --git a/src/layout/MainLayout/index.js b/src/layout/MainLayout/index.js index 1a559a2..23040ce 100644 --- a/src/layout/MainLayout/index.js +++ b/src/layout/MainLayout/index.js @@ -1,4 +1,5 @@ import { useEffect } from 'react'; +import { useSelector } from 'react-redux'; import { Outlet } from 'react-router-dom'; // material-ui @@ -22,6 +23,7 @@ const MainLayout = () => { const matchDownXL = useMediaQuery(theme.breakpoints.down('xl')); const downLG = useMediaQuery(theme.breakpoints.down('lg')); + const { drawerOpen } = useSelector((state) => state.menu); const { container, miniDrawer, menuOrientation } = useConfig(); const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; @@ -39,7 +41,14 @@ const MainLayout = () => {
{!isHorizontal ? : } - + { // =========================================== || changerider || =========================================== const changeRiderMutation = useMutation({ mutationFn: ({ selectedRider, selectedRow }) => changeRiderAPI(selectedRider, selectedRow), - onSuccess: (res) => { + onSuccess: (res, { selectedRider, selectedRow }) => { setLoading1(false); setChangeDialogOpen(false); if (res.data.message === 'Success') { + logger.info(`Rider changed successfully for order ID ${selectedRow?.orderid}. New Rider: ${selectedRider?.firstname} ${selectedRider?.lastname}`); opentoast('Rider Changed Successfully', 'success'); } fetchCountRefetch(); // Refresh count data fetchDeliveriesRefetch(); // Refresh deliveries notifyRiderMutation.mutate(selectedRider.userfcmtoken); }, - onError: (err) => { - console.log(err); + onError: (err, { selectedRider, selectedRow }) => { + logger.error(`Failed to change rider for order ID ${selectedRow?.orderid}:`, err); opentoast(err.message, 'error'); setLoading1(false); } @@ -1236,7 +1238,7 @@ const Deliveries = () => { Notify Rider )} - {['pending', 'accepted', 'arrived'].includes(selectedRow?.orderstatus) && ( + {/* {['pending', 'accepted', 'arrived'].includes(selectedRow?.orderstatus) && ( { if (!appId) { @@ -1250,7 +1252,7 @@ const Deliveries = () => { > Change Rider - )} + )} */} {(roleid == 1 || roleid == 2) && ( { @@ -1487,7 +1489,7 @@ const Deliveries = () => { renderInput={(params) => } onChange={(e, value) => { setSelectedRider(value); - console.log('selected rider', value); + logger.debug('Rider selected in dropdown:', value ? `${value.firstname} ${value.lastname}` : 'None'); }} /> @@ -1509,6 +1511,7 @@ const Deliveries = () => { color="primary" onClick={() => { setLoading1(true); + logger.info(`Initiating rider assignment change for order ID ${selectedRow?.orderid} to rider: ${selectedRider?.firstname} ${selectedRider?.lastname}`); changeRiderMutation.mutate({ selectedRider, selectedRow }); }} > diff --git a/src/pages/nearle/dispatch/Dispatch.css b/src/pages/nearle/dispatch/Dispatch.css index e114bc5..29479bc 100644 --- a/src/pages/nearle/dispatch/Dispatch.css +++ b/src/pages/nearle/dispatch/Dispatch.css @@ -166,8 +166,15 @@ } @keyframes logo-city-menu-in { - from { opacity: 0; transform: translateY(-4px); } - to { opacity: 1; transform: translateY(0); } + from { + opacity: 0; + transform: translateY(-4px); + } + + to { + opacity: 1; + transform: translateY(0); + } } .dispatch-container .logo-city-menu::-webkit-scrollbar { @@ -264,7 +271,7 @@ /* Tabs */ .dispatch-container #strat-row { - height: 48px; + height: 54px; flex-shrink: 0; display: flex; align-items: center; @@ -277,7 +284,7 @@ .dispatch-container .sbt { padding: 8px 14px; border-radius: 10px; - border: 1px solid var(--border); + border: 1px solid rgba(15, 23, 42, 0.08); background: var(--bg); color: var(--text-muted); font-size: 13px; @@ -430,8 +437,13 @@ border: 1px solid var(--border); } -.dispatch-container .live-status-ready { color: var(--success); } -.dispatch-container .live-status-error { color: #ef4444; } +.dispatch-container .live-status-ready { + color: var(--success); +} + +.dispatch-container .live-status-error { + color: #ef4444; +} .dispatch-container .live-status-sub { color: var(--text-muted); @@ -448,12 +460,28 @@ animation: live-pulse 1.2s ease-in-out infinite; } -.dispatch-container .live-dot.ready { background: var(--success); animation: none; } -.dispatch-container .live-dot.error { background: #ef4444; animation: none; } +.dispatch-container .live-dot.ready { + background: var(--success); + animation: none; +} + +.dispatch-container .live-dot.error { + background: #ef4444; + animation: none; +} @keyframes live-pulse { - 0%, 100% { opacity: 1; transform: scale(1); } - 50% { opacity: 0.4; transform: scale(0.85); } + + 0%, + 100% { + opacity: 1; + transform: scale(1); + } + + 50% { + opacity: 0.4; + transform: scale(0.85); + } } /* ── Date picker chip ───────────────────────────────────────────── @@ -468,7 +496,8 @@ indigo border + halo on hover/focus, subtle lift on interaction. ──────────────────────────────────────────────────────────────── */ .dispatch-container .date-chip { - position: relative; /* anchors .date-cal-popover */ + position: relative; + /* anchors .date-cal-popover */ display: inline-flex; align-items: stretch; gap: 0; @@ -476,28 +505,28 @@ border: 1px solid rgba(15, 23, 42, 0.08); border-radius: 12px; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), - 0 4px 12px rgba(15, 23, 42, 0.06); + 0 4px 12px rgba(15, 23, 42, 0.06); transition: border-color 0.18s ease, box-shadow 0.18s ease, - transform 0.18s ease; + transform 0.18s ease; } .dispatch-container .date-chip.is-open { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2), - 0 12px 30px rgba(99, 102, 241, 0.22); + 0 12px 30px rgba(99, 102, 241, 0.22); } .dispatch-container .date-chip:hover { border-color: rgba(99, 102, 241, 0.45); box-shadow: 0 2px 4px rgba(15, 23, 42, 0.06), - 0 8px 22px rgba(99, 102, 241, 0.15); + 0 8px 22px rgba(99, 102, 241, 0.15); transform: translateY(-1px); } .dispatch-container .date-chip:focus-within { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2), - 0 8px 22px rgba(99, 102, 241, 0.22); + 0 8px 22px rgba(99, 102, 241, 0.22); } /* Center card — visible chrome the operator reads. Renders as a + - - + + -