@@ -3,25 +3,46 @@ import { useRecoilValue, useSetRecoilState } from 'recoil';
33import { sessionIDState } from '../../../state/companion/sessionIDAtom' ;
44import { clusterState } from 'state/clusterAtom' ;
55import getPromptSuggestions from '../api/getPromptSuggestions' ;
6- import { currentResourceState } from 'state/companion/currentResourceAtom' ;
6+ import { ColumnLayoutState , columnLayoutState } from 'state/columnLayoutAtom' ;
7+ import { prettifyNameSingular } from 'shared/utils/helpers' ;
78
89export function usePromptSuggestions ( ) {
910 const [ suggestions , setSuggestions ] = useState < string [ ] > ( [ ] ) ;
1011 const setSessionID = useSetRecoilState ( sessionIDState ) ;
1112 const cluster = useRecoilValue ( clusterState ) ;
12- const currentResource = useRecoilValue ( currentResourceState ) ;
13+ const columnLayout = useRecoilValue ( columnLayoutState ) ;
14+
15+ const getResourceFromColumnnLayout = ( columnLayout : ColumnLayoutState ) => {
16+ return {
17+ namespace : columnLayout . midColumn ?. namespaceId ?? '' ,
18+ resourceType : prettifyNameSingular (
19+ columnLayout . midColumn ?. resourceType ?? '' ,
20+ ) ,
21+ apiGroup : columnLayout . midColumn ?. apiGroup ?? '' ,
22+ apiVersion : columnLayout . midColumn ?. apiVersion ?? '' ,
23+ resourceName : columnLayout . midColumn ?. resourceName ?? '' ,
24+ } ;
25+ } ;
1326
1427 useEffect ( ( ) => {
1528 const userAuth = cluster ?. currentContext . user . user ;
29+ const {
30+ namespace,
31+ resourceType,
32+ apiGroup,
33+ apiVersion,
34+ resourceName,
35+ } = getResourceFromColumnnLayout ( columnLayout ) ;
36+ const groupVersion = apiGroup ? `${ apiGroup } /${ apiVersion } ` : apiVersion ;
1637
1738 async function fetchSuggestions ( ) {
1839 const sessionID = '' ; // TODO
1940 setSessionID ( sessionID ) ;
2041 const promptSuggestions = await getPromptSuggestions ( {
21- namespace : currentResource . namespace ,
22- resourceType : currentResource . resourceType ,
23- groupVersion : currentResource . groupVersion ,
24- resourceName : currentResource . resourceName ,
42+ namespace : namespace ,
43+ resourceType : resourceType ,
44+ groupVersion : groupVersion ,
45+ resourceName : resourceName ,
2546 clusterUrl : cluster ?. currentContext . cluster . cluster . server ?? '' ,
2647 token : userAuth && 'token' in userAuth ? userAuth . token : '' , // TODO
2748 certificateAuthorityData :
@@ -34,15 +55,10 @@ export function usePromptSuggestions() {
3455 }
3556 }
3657
37- if (
38- cluster &&
39- currentResource . resourceType &&
40- currentResource . groupVersion &&
41- suggestions . length === 0
42- ) {
58+ if ( cluster && resourceType && groupVersion && suggestions . length === 0 ) {
4359 fetchSuggestions ( ) ;
4460 }
45- } , [ cluster , currentResource , suggestions , setSessionID ] ) ;
61+ } , [ cluster , columnLayout , suggestions , setSessionID ] ) ;
4662
4763 return suggestions ;
4864}
0 commit comments