fix:chain activity for dynamic form loading

This commit is contained in:
suryac 2026-07-08 19:27:03 +05:30
parent 686f5e8acd
commit 45197280d4
2 changed files with 25 additions and 10 deletions

View File

@ -14,17 +14,18 @@ function App() {
<Routes> <Routes>
<Route path="/login" element={<LoginPage />} /> <Route path="/login" element={<LoginPage />} />
<Route element={<ConsoleLayout />}> <Route element={<ConsoleLayout />}>
<Route path="/orders" element={<OrdersPage />} /> <Route path="orders" element={<OrdersPage />} />
<Route path="/orders/:instanceId" element={<OrdersPage />} /> <Route path="orders/:instanceId" element={<OrdersPage />} />
<Route path="/calls" element={<CallsPage />} /> <Route path="calls" element={<CallsPage />} />
<Route path="/calls/:instanceId" element={<CallsPage />} /> <Route path="calls/:instanceId" element={<CallsPage />} />
<Route path="/stores" element={<StoresPage />} /> <Route path="stores" element={<StoresPage />} />
<Route path="/stores/:instanceId" element={<StoresPage />} /> <Route path="stores/:instanceId" element={<StoresPage />} />
<Route path="/daily" element={<DailyLogsPage />} /> <Route path="daily" element={<DailyLogsPage />} />
<Route path="/daily/:instanceId" element={<DailyLogsPage />} /> <Route path="daily/:instanceId" element={<DailyLogsPage />} />
<Route path="*" element={<Navigate to="/orders" replace />} />
</Route> </Route>
</Routes> </Routes>
</BrowserRouter> </BrowserRouter>

View File

@ -17,6 +17,7 @@ import {
WfLookupField, WfLookupField,
RadioField, RadioField,
} from './fields'; } from './fields';
import { ORDER_BOOKING } from '../../api/config';
export interface DynamicFormProps { export interface DynamicFormProps {
client: ZinoClient; client: ZinoClient;
@ -172,8 +173,21 @@ export function DynamicForm({ client, activityId: initialActivityId, instanceId:
} }
let pending = [...chainQueue]; let pending = [...chainQueue];
const newActivities = (schema.activity_chain || []).filter( let chainSource = (res as any).activity_chain || schema.activity_chain || [];
a => a.activity_uid !== currentActivityId
// Centralized activity chaining logic
if (currentActivityId === ORDER_BOOKING.activities.PRODUCTIVITY_OF_VISIT.uid) {
const actionValue = String(payload[ORDER_BOOKING.activities.PRODUCTIVITY_OF_VISIT.fields.action] || '').toLowerCase().trim();
const normalized = actionValue.replace(/[\s_]+/g, '');
if (normalized === 'order') {
chainSource = [{ activity_uid: ORDER_BOOKING.activities.PLACE_ORDER.uid, activity_name: 'Place Order' }];
} else if (normalized === 'noorder') {
chainSource = [{ activity_uid: ORDER_BOOKING.activities.POTENTIAL_MINING.uid, activity_name: 'Potential Mining' }];
}
}
const newActivities = chainSource.filter(
(a: any) => a.activity_uid !== currentActivityId
); );
// Remove any existing occurrences from pending to avoid duplicates // Remove any existing occurrences from pending to avoid duplicates