14
14
* limitations under the License.
15
15
*/
16
16
17
- import { lazy , Suspense , useEffect , useState } from 'react'
17
+ import { lazy , Suspense , useEffect , useRef , useState } from 'react'
18
18
import { Switch , Route , Redirect , useParams , useRouteMatch } from 'react-router-dom'
19
19
import {
20
20
showError ,
@@ -35,6 +35,7 @@ import { MultiValue } from 'react-select'
35
35
import {
36
36
ErrorBoundary ,
37
37
getAndSetAppGroupFilters ,
38
+ importComponentFromFELibrary ,
38
39
setAppGroupFilterInLocalStorage ,
39
40
sortOptionsByLabel ,
40
41
} from '../../common'
@@ -59,6 +60,8 @@ const CIDetails = lazy(() => import('./cIDetails/CIDetails'))
59
60
const AppDetails = lazy ( ( ) => import ( './appDetails/AppDetails' ) )
60
61
const CDDetails = lazy ( ( ) => import ( './cdDetails/CDDetails' ) )
61
62
63
+ const AIChat = importComponentFromFELibrary ( 'AIChat' , null , 'function' )
64
+
62
65
export default function AppDetailsPage ( ) {
63
66
const { path } = useRouteMatch ( )
64
67
const { appId } = useParams < { appId } > ( )
@@ -81,6 +84,8 @@ export default function AppDetailsPage() {
81
84
const [ apiError , setApiError ] = useState ( null )
82
85
const [ initLoading , setInitLoading ] = useState < boolean > ( false )
83
86
87
+ const parentRef = useRef < HTMLDivElement > ( null )
88
+
84
89
const { fetchRecentlyVisitedParsedApps } = useUserPreferences ( { } )
85
90
86
91
const getAppMetaInfoRes = async ( shouldResetAppName : boolean = false ) : Promise < AppMetaInfo > => {
@@ -344,7 +349,7 @@ export default function AppDetailsPage() {
344
349
const _filteredEnvIds = selectedAppList . length > 0 ? selectedAppList . map ( ( app ) => + app . value ) . join ( ',' ) : null
345
350
346
351
return (
347
- < div className = "app-details-page flexbox-col w-100 h-100 dc__overflow-auto" >
352
+ < div ref = { parentRef } className = "app-details-page flexbox-col w-100 h-100 dc__overflow-auto" >
348
353
< AppHeader
349
354
appName = { appName }
350
355
appMetaInfo = { appMetaInfo }
@@ -380,6 +385,8 @@ export default function AppDetailsPage() {
380
385
/>
381
386
) }
382
387
388
+ { AIChat && window . _env_ ?. FEATURE_AI_APP_DETAILS_ENABLE && ( < AIChat parentRef = { parentRef } /> ) }
389
+
383
390
< ErrorBoundary >
384
391
< Suspense fallback = { < Progressing pageLoader /> } >
385
392
< Switch >
0 commit comments