diff --git a/src/containers/internal/views/least-cost-routing/form.tsx b/src/containers/internal/views/least-cost-routing/form.tsx index 5186db9..14767e8 100644 --- a/src/containers/internal/views/least-cost-routing/form.tsx +++ b/src/containers/internal/views/least-cost-routing/form.tsx @@ -67,9 +67,6 @@ export const LcrForm = ({ lcrDataMap, lcrRouteDataMap }: LcrFormProps) => { const [accountSid, setAccountSid] = useState(""); const [isActive, setIsActive] = useState(true); const [lcrRoutes, setLcrRoutes] = useState([LCR_ROUTE_TEMPLATE]); - const [previousLcrRoutes, setPreviousLcrRoutes] = useState([ - LCR_ROUTE_TEMPLATE, - ]); const [previouseLcr, setPreviousLcr] = useState(); const [accounts] = useServiceProviderData("Accounts"); const [lcrForDelete, setLcrForDelete] = useState(); @@ -127,38 +124,35 @@ export const LcrForm = ({ lcrDataMap, lcrRouteDataMap }: LcrFormProps) => { }, [lcrDataMap?.data, previouseLcr]); useMemo(() => { - let default_lcr_route_sid = ""; - if ( - lcrRouteDataMap && - lcrRouteDataMap.data && - lcrRouteDataMap.data !== previousLcrRoutes - ) { - setPreviousLcrRoutes(lcrRouteDataMap.data); - // Find default carrier - lcrRouteDataMap.data.forEach((lr) => { - lr.lcr_carrier_set_entries?.forEach((entry) => { - if ( - entry.lcr_carrier_set_entry_sid === - lcrDataMap?.data?.default_carrier_set_entry_sid - ) { + // Only process when both lcrDataMap and lcrRouteDataMap are available + if (lcrRouteDataMap && lcrRouteDataMap.data && lcrDataMap?.data) { + const defaultCarrierSetEntrySid = + lcrDataMap.data.default_carrier_set_entry_sid; + + // Find and store default route information + lcrRouteDataMap.data.forEach((route) => { + route.lcr_carrier_set_entries?.forEach((entry) => { + if (entry.lcr_carrier_set_entry_sid === defaultCarrierSetEntrySid) { setDefaultLcrCarrier(entry.voip_carrier_sid || defaultCarrier); setDefaultLcrCarrierSetEntrySid( entry.lcr_carrier_set_entry_sid || null, ); - default_lcr_route_sid = entry.lcr_route_sid || ""; - setDefaultLcrRoute(lr); + setDefaultLcrRoute(route); } }); }); - } - if (lcrRouteDataMap && lcrRouteDataMap.data) - setLcrRoutes( - lcrRouteDataMap.data.filter( - (route) => route.lcr_route_sid !== default_lcr_route_sid, - ), - ); - }, [lcrRouteDataMap?.data]); + // Filter out routes that contain the default carrier set entry + const filteredRoutes = lcrRouteDataMap.data.filter((route) => { + return !route.lcr_carrier_set_entries?.some( + (entry) => + entry.lcr_carrier_set_entry_sid === defaultCarrierSetEntrySid, + ); + }); + + setLcrRoutes(filteredRoutes); + } + }, [lcrRouteDataMap?.data, lcrDataMap?.data]); const addLcrRoutes = () => { const newLcrRoute = LCR_ROUTE_TEMPLATE;