diff --git a/nms/packages/magmalte/app/components/context/SubscriberContext.js b/nms/packages/magmalte/app/components/context/SubscriberContext.js index 1101d88423615..d61c2a8136890 100644 --- a/nms/packages/magmalte/app/components/context/SubscriberContext.js +++ b/nms/packages/magmalte/app/components/context/SubscriberContext.js @@ -43,6 +43,7 @@ export type SubscriberContextType = { forbiddenNetworkTypes: {[string]: core_network_types}, metrics?: {[string]: Metrics}, gwSubscriberMap: {[gateway_id]: Array}, + totalCount: number, setState?: ( key: string, val?: mutable_subscriber | mutable_subscribers, diff --git a/nms/packages/magmalte/app/components/lte/LteContext.js b/nms/packages/magmalte/app/components/lte/LteContext.js index e459089b6a59a..930fbf02dfef7 100644 --- a/nms/packages/magmalte/app/components/lte/LteContext.js +++ b/nms/packages/magmalte/app/components/lte/LteContext.js @@ -245,6 +245,7 @@ export function SubscriberContextProvider(props: Props) { const [sessionState, setSessionState] = useState({}); const [subscriberMetrics, setSubscriberMetrics] = useState({}); const [isLoading, setIsLoading] = useState(true); + const [totalCount, setTotalCount] = useState(0); const enqueueSnackbar = useEnqueueSnackbar(); useEffect(() => { const fetchLteState = async () => { @@ -257,6 +258,7 @@ export function SubscriberContextProvider(props: Props) { setForbiddenNetworkTypes, setSubscriberMetrics, setSessionState, + setTotalCount, enqueueSnackbar, }), setIsLoading(false); @@ -275,6 +277,7 @@ export function SubscriberContextProvider(props: Props) { state: subscriberMap, metrics: subscriberMetrics, sessionState: sessionState, + totalCount: totalCount, gwSubscriberMap: getGatewaySubscriberMap(sessionState), setState: ( key: subscriber_id, diff --git a/nms/packages/magmalte/app/state/lte/SubscriberState.js b/nms/packages/magmalte/app/state/lte/SubscriberState.js index 63c80f09d6770..9eb44c3291afd 100644 --- a/nms/packages/magmalte/app/state/lte/SubscriberState.js +++ b/nms/packages/magmalte/app/state/lte/SubscriberState.js @@ -50,7 +50,8 @@ type InitSubscriberStateProps = { networkId: network_id, setSubscriberMap: ({[string]: subscriber}) => void, setSessionState: ({[string]: subscriber_state}) => void, - setSubscriberMetrics?: ({[string]: Metrics}) => void, + setSubscriberMetrics: ({[string]: Metrics}) => void, + setTotalCount: number => void, enqueueSnackbar?: ( msg: string, cfg: EnqueueSnackbarOptions, @@ -156,6 +157,7 @@ export default async function InitSubscriberState( setSubscriberMap, setSubscriberMetrics, setSessionState, + setTotalCount, enqueueSnackbar, } = props; const subscriberResponse = await FetchSubscribers({ @@ -164,6 +166,7 @@ export default async function InitSubscriberState( }); if (subscriberResponse) { setSubscriberMap(subscriberResponse.subscribers); + setTotalCount(subscriberResponse.total_count); } const state = await FetchSubscriberState({networkId, enqueueSnackbar}); diff --git a/nms/packages/magmalte/app/views/network/NetworkKPIs.js b/nms/packages/magmalte/app/views/network/NetworkKPIs.js index 95e1612456fe3..a8e55a1f60ff8 100644 --- a/nms/packages/magmalte/app/views/network/NetworkKPIs.js +++ b/nms/packages/magmalte/app/views/network/NetworkKPIs.js @@ -52,7 +52,7 @@ export default function NetworkKPI() { { icon: PeopleIcon, category: 'Subscribers', - value: Object.keys(subscriberCtx.state).length, + value: subscriberCtx.totalCount, }, { icon: LibraryBooksIcon, diff --git a/nms/packages/magmalte/app/views/network/__tests__/NetworkTest.js b/nms/packages/magmalte/app/views/network/__tests__/NetworkTest.js index f2df50893cc67..85ef38177b74b 100644 --- a/nms/packages/magmalte/app/views/network/__tests__/NetworkTest.js +++ b/nms/packages/magmalte/app/views/network/__tests__/NetworkTest.js @@ -317,6 +317,7 @@ describe('', () => { const subscriberCtx = { state: subscribers, forbidden_network_types: subscribers, + totalCount: 1, forbiddenNetworkTypes: {}, gwSubscriberMap: {}, sessionState: {}, diff --git a/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberAddEditTest.js b/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberAddEditTest.js index 03a0c13f97f43..15dbe09bb59c7 100644 --- a/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberAddEditTest.js +++ b/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberAddEditTest.js @@ -237,6 +237,7 @@ describe('', () => { forbiddenNetworkTypes: forbiddenNetworkTypes, gwSubscriberMap: {}, sessionState: sessionState, + totalCount: 2, setState: async (key, value?) => setSubscriberState({ networkId: 'test', @@ -350,6 +351,7 @@ describe('', () => { gwSubscriberMap: {}, forbiddenNetworkTypes: forbiddenNetworkTypes, sessionState: sessionState, + totalCount: 1, setState: (key, value?) => setSubscriberState({ networkId: 'test', diff --git a/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberTest.js b/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberTest.js index 73779a6b18513..5d044ae5f4385 100644 --- a/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberTest.js +++ b/nms/packages/magmalte/app/views/subscriber/__tests__/SubscriberTest.js @@ -104,6 +104,7 @@ describe('', () => { forbiddenNetworkTypes: {}, gwSubscriberMap: {}, sessionState: {}, + totalCount: 2, }; return (