@@ -5,12 +5,10 @@ import {shallowEqual} from 'react-redux';
55
66import { ResponseError } from '../../../../components/Errors/ResponseError' ;
77import { Loader } from '../../../../components/Loader' ;
8- import {
9- overviewApi ,
10- selectPreparedPathOverview ,
11- } from '../../../../store/reducers/overview/overview' ;
8+ import { overviewApi } from '../../../../store/reducers/overview/overview' ;
129import { selectSchemaMergedChildrenPaths } from '../../../../store/reducers/schema/schema' ;
1310import type { EPathType } from '../../../../types/api/schema' ;
11+ import type { IDescribeData } from '../../../../types/store/describe' ;
1412import { cn } from '../../../../utils/cn' ;
1513import { useAutoRefreshInterval , useTypedSelector } from '../../../../utils/hooks' ;
1614import { isEntityWithMergedImplementation } from '../../utils/schema' ;
@@ -28,6 +26,8 @@ interface IDescribeProps {
2826 type ?: EPathType ;
2927}
3028
29+ const emptyObject : IDescribeData = { } ;
30+
3131const Describe = ( { path, database, type} : IDescribeProps ) => {
3232 const [ autoRefreshInterval ] = useAutoRefreshInterval ( ) ;
3333
@@ -44,18 +44,30 @@ const Describe = ({path, database, type}: IDescribeProps) => {
4444 } else if ( mergedChildrenPaths ) {
4545 paths = [ path , ...mergedChildrenPaths ] ;
4646 }
47- const { currentData, isFetching, error} = overviewApi . useGetOverviewQuery (
47+ const { currentDescribe , currentData, isFetching, error} = overviewApi . useGetOverviewQuery (
4848 paths . length ? { paths, database} : skipToken ,
4949 {
5050 pollingInterval : autoRefreshInterval ,
51+ selectFromResult : ( props ) => {
52+ const { currentData} = props ;
53+ if ( ! currentData ) {
54+ return { currentDescribe : emptyObject , ...props } ;
55+ }
56+
57+ const mergedData = Object . values ( currentData ) . flat ( ) ;
58+
59+ const data = mergedData . reduce < IDescribeData > ( ( acc , item ) => {
60+ if ( item ?. Path ) {
61+ acc [ item . Path ] = item ;
62+ }
63+ return acc ;
64+ } , { } ) ;
65+ return { currentDescribe : data , ...props } ;
66+ } ,
5167 } ,
5268 ) ;
5369 const loading = isFetching && currentData === undefined ;
5470
55- const data = useTypedSelector ( ( state ) => selectPreparedPathOverview ( state , paths , database ) ) ;
56-
57- const currentDescribe = data ;
58-
5971 let preparedDescribeData : Object | undefined ;
6072 if ( currentDescribe ) {
6173 const paths = Object . keys ( currentDescribe ) ;
0 commit comments