1- import { useEffect , useRef , useState } from "react" ;
21import {
32 useGetAboutQuery ,
3+ useGetEnvironmentsQuery ,
44 useGetInsightsQuery
55} from "../../../../../../redux/services/digma" ;
66import {
77 InsightsSortingCriterion ,
88 SortingOrder
99} from "../../../../../../redux/services/types" ;
10- import type { ChangeScopePayload } from "../../../../../../utils/actions/changeScope" ;
11- import { sendUserActionTrackingEvent } from "../../../../../../utils/actions/sendUserActionTrackingEvent" ;
12- import { Pagination } from "../../../../../common/Pagination" ;
13- import { NewButton } from "../../../../../common/v3/NewButton" ;
14- import { EmptyState } from "../../../../../Insights/EmptyState" ;
15- import { EmptyState as InsightsPageEmptyState } from "../../../../../Insights/InsightsCatalog/InsightsPage/EmptyState" ;
16- import { InsightCardRenderer } from "../../../../../Insights/InsightsCatalog/InsightsPage/InsightCardRenderer" ;
17- import { trackingEvents } from "../../../../tracking" ;
10+ import { useInsightsSelector } from "../../../../../../store/insights/useInsightsSelector" ;
1811import * as s from "./styles" ;
1912import type { AnalyticsProps } from "./types" ;
2013
@@ -23,13 +16,15 @@ const PAGE_SIZE = 10;
2316export const Analytics = ( {
2417 query,
2518 onScopeChange,
26- onGoToAssets
19+ onGoToTab
2720} : AnalyticsProps ) => {
28- const [ page , setPage ] = useState ( 0 ) ;
29- const insightsListRef = useRef < HTMLDivElement > ( null ) ;
21+ const { page } = useInsightsSelector ( ) ;
22+ // const [page, setPage] = useState(0);
23+ // const insightsListRef = useRef<HTMLDivElement>(null);
3024 const { data : about } = useGetAboutQuery ( ) ;
31- const pageSize = query ?. pageSize ?? PAGE_SIZE ;
32- const { data, isFetching } = useGetInsightsQuery ( {
25+ const { data : environments } = useGetEnvironmentsQuery ( ) ;
26+ // const pageSize = query?.pageSize ?? PAGE_SIZE;
27+ const { data, isFetching, refetch } = useGetInsightsQuery ( {
3328 data : {
3429 environment : query ?. environment ,
3530 scopedSpanCodeObjectId : query ?. scopedSpanCodeObjectId ,
@@ -47,102 +42,119 @@ export const Analytics = ({
4742 }
4843 } ) ;
4944
50- const handleChangePage = ( page : number ) => {
51- sendUserActionTrackingEvent ( trackingEvents . ANALYTICS_PAGE_CHANGED ) ;
52- setPage ( page ) ;
45+ const handleRefresh = ( ) => {
46+ void refetch ( ) ;
5347 } ;
5448
55- const handleScopeChange = ( payload : ChangeScopePayload ) => {
56- onScopeChange ( payload ) ;
57- } ;
49+ // const handleChangePage = (page: number) => {
50+ // sendUserActionTrackingEvent(trackingEvents.ANALYTICS_PAGE_CHANGED);
51+ // setPage(page);
52+ // };
5853
59- const totalCount = data ?. data . totalCount ?? 0 ;
60- const pageStartItemNumber = page * pageSize + 1 ;
61- const pageEndItemNumber = Math . min (
62- pageStartItemNumber + pageSize - 1 ,
63- totalCount
64- ) ;
54+ // const handleScopeChange = (payload: ChangeScopePayload) => {
55+ // onScopeChange(payload);
56+ // };
6557
66- useEffect ( ( ) => {
67- setPage ( 0 ) ;
68- } , [ query ] ) ;
58+ // const totalCount = data?.data.totalCount ?? 0;
59+ // const pageStartItemNumber = page * pageSize + 1;
60+ // const pageEndItemNumber = Math.min(
61+ // pageStartItemNumber + pageSize - 1,
62+ // totalCount
63+ // );
6964
70- useEffect ( ( ) => {
71- insightsListRef . current ?. scrollTo ( 0 , 0 ) ;
72- } , [ page , query ] ) ;
65+ // useEffect(() => {
66+ // setPage( 0);
67+ // }, [query]);
7368
74- const renderEmptyState = ( ) => {
75- const handleSeeAllAssetsClick = ( ) => {
76- sendUserActionTrackingEvent (
77- trackingEvents . ANALYTICS_SEE_ALL_ASSETS_BUTTON_CLICKED
78- ) ;
79- onGoToAssets ( ) ;
80- } ;
69+ // useEffect(() => {
70+ // insightsListRef.current?.scrollTo(0, 0);
71+ // }, [page, query]);
8172
82- if ( ! query ?. scopedSpanCodeObjectId ) {
83- return (
84- < InsightsPageEmptyState
85- preset = { "analyticsSelectAsset" }
86- customContent = {
87- < NewButton
88- buttonType = { "primary" }
89- onClick = { handleSeeAllAssetsClick }
90- label = { "See all assets" }
91- />
92- }
93- />
94- ) ;
95- }
73+ // const renderEmptyState = () => {
74+ // const handleSeeAllAssetsClick = () => {
75+ // sendUserActionTrackingEvent(
76+ // trackingEvents.ANALYTICS_SEE_ALL_ASSETS_BUTTON_CLICKED
77+ // );
78+ // onGoToAssets();
79+ // };
9680
97- return < InsightsPageEmptyState preset = { "noDataYet" } /> ;
98- } ;
81+ // if (!query?.scopedSpanCodeObjectId) {
82+ // return (
83+ // <InsightsPageEmptyState
84+ // preset={"analyticsSelectAsset"}
85+ // customContent={
86+ // <NewButton
87+ // buttonType={"primary"}
88+ // onClick={handleSeeAllAssetsClick}
89+ // label={"See all assets"}
90+ // />
91+ // }
92+ // />
93+ // );
94+ // }
95+
96+ // return <InsightsPageEmptyState preset={"noDataYet"} />;
97+ // };
98+
99+ // return (
100+ // <s.Container>
101+ // <s.ContentContainer>
102+ // {isFetching ? (
103+ // <EmptyState preset={"loading"} />
104+ // ) : data ? (
105+ // data.data.insights.length > 0 ? (
106+ // <s.InsightsList ref={insightsListRef}>
107+ // {data.data.insights.map((insight) => (
108+ // <InsightCardRenderer
109+ // key={insight.id}
110+ // insight={insight}
111+ // isJiraHintEnabled={false}
112+ // isMarkAsReadButtonEnabled={false}
113+ // viewMode={"full"}
114+ // tooltipBoundaryRef={insightsListRef}
115+ // backendInfo={about ?? null}
116+ // onScopeChange={handleScopeChange}
117+ // />
118+ // ))}
119+ // </s.InsightsList>
120+ // ) : (
121+ // renderEmptyState()
122+ // )
123+ // ) : null}
124+ // </s.ContentContainer>
125+ // <s.Footer>
126+ // {totalCount > 0 && (
127+ // <>
128+ // <Pagination
129+ // itemsCount={totalCount}
130+ // page={page}
131+ // pageSize={pageSize}
132+ // onPageChange={handleChangePage}
133+ // extendedNavigation={true}
134+ // />
135+ // <s.FooterItemsCount>
136+ // Showing{" "}
137+ // <s.FooterPageItemsCount>
138+ // {pageStartItemNumber} - {pageEndItemNumber}
139+ // </s.FooterPageItemsCount>{" "}
140+ // of {totalCount}
141+ // </s.FooterItemsCount>
142+ // </>
143+ // )}
144+ // </s.Footer>
145+ // </s.Container>
146+ // );
99147
100148 return (
101- < s . Container >
102- < s . ContentContainer >
103- { isFetching ? (
104- < EmptyState preset = { "loading" } />
105- ) : data ? (
106- data . data . insights . length > 0 ? (
107- < s . InsightsList ref = { insightsListRef } >
108- { data . data . insights . map ( ( insight ) => (
109- < InsightCardRenderer
110- key = { insight . id }
111- insight = { insight }
112- isJiraHintEnabled = { false }
113- isMarkAsReadButtonEnabled = { false }
114- viewMode = { "full" }
115- tooltipBoundaryRef = { insightsListRef }
116- backendInfo = { about ?? null }
117- onScopeChange = { handleScopeChange }
118- />
119- ) ) }
120- </ s . InsightsList >
121- ) : (
122- renderEmptyState ( )
123- )
124- ) : null }
125- </ s . ContentContainer >
126- < s . Footer >
127- { totalCount > 0 && (
128- < >
129- < Pagination
130- itemsCount = { totalCount }
131- page = { page }
132- pageSize = { pageSize }
133- onPageChange = { handleChangePage }
134- extendedNavigation = { true }
135- />
136- < s . FooterItemsCount >
137- Showing{ " " }
138- < s . FooterPageItemsCount >
139- { pageStartItemNumber } - { pageEndItemNumber }
140- </ s . FooterPageItemsCount > { " " }
141- of { totalCount }
142- </ s . FooterItemsCount >
143- </ >
144- ) }
145- </ s . Footer >
146- </ s . Container >
149+ < s . Content
150+ insightViewType = { "Analytics" }
151+ data = { data ?. data ?? null }
152+ isLoading = { isFetching }
153+ onScopeChange = { onScopeChange }
154+ onGoToTab = { onGoToTab }
155+ backendInfo = { about ?? null }
156+ onRefresh = { handleRefresh }
157+ environments = { environments }
158+ />
147159 ) ;
148160} ;
0 commit comments