@@ -19,6 +19,7 @@ import { useTranslation } from 'react-i18next';
1919import ProjectMenuToggle from './ProjectMenuToggle' ;
2020import { alphanumericCompare } from './utils' ;
2121import { usePerses } from '../hooks/usePerses' ;
22+ import { useEditableProjects } from '../hooks/useEditableProjects' ;
2223import { useCallback , useMemo , useRef , useState } from 'react' ;
2324
2425export const NoResults : React . FC < {
@@ -111,14 +112,13 @@ const ProjectMenu: React.FC<{
111112
112113 const [ filterText , setFilterText ] = useState ( '' ) ;
113114
114- const { persesProjects } = usePerses ( ) ;
115+ const { allProjects } = useEditableProjects ( ) ;
115116
116117 const optionItems = useMemo ( ( ) => {
117- const items = persesProjects . map ( ( item ) => {
118- const { name } = item . metadata ;
119- const title = item ?. spec ?. display ?. name ?? name ?? '' ;
120- return { title, key : name ?? '' } ;
121- } ) ;
118+ const items =
119+ allProjects ?. map ( ( projectName ) => {
120+ return { title : projectName , key : projectName } ;
121+ } ) || [ ] ;
122122
123123 if ( selected && ! items . some ( ( option ) => option . key === selected ) ) {
124124 items . push ( { title : selected , key : selected } ) ; // Add current project if it isn't included
@@ -127,7 +127,7 @@ const ProjectMenu: React.FC<{
127127 items . unshift ( { title : 'All Projects' , key : '' } ) ;
128128
129129 return items ;
130- } , [ persesProjects , selected ] ) ;
130+ } , [ allProjects , selected ] ) ;
131131
132132 const isOptionShown = useCallback (
133133 ( option ) => {
@@ -191,7 +191,7 @@ const ProjectDropdown: React.FC<ProjectDropdownProps> = ({
191191 const { t } = useTranslation ( process . env . I18N_NAMESPACE ) ;
192192 const menuRef = useRef ( null ) ;
193193 const [ isOpen , setOpen ] = useState ( false ) ;
194- const { persesProjectsError , persesProjectsLoading , persesProjects } = usePerses ( ) ;
194+ const { allProjects , permissionsLoading , permissionsError } = useEditableProjects ( ) ;
195195
196196 // const title = selected === LEGACY_DASHBOARDS_KEY ? legacyDashboardsTitle : selected;
197197
@@ -202,14 +202,11 @@ const ProjectDropdown: React.FC<ProjectDropdownProps> = ({
202202 menuRef,
203203 } ;
204204
205- if ( persesProjectsLoading || persesProjectsError || persesProjects . length === 0 ) {
205+ if ( permissionsLoading || permissionsError || ! allProjects || allProjects . length === 0 ) {
206206 return null ;
207207 }
208208
209- const selectedProject = persesProjects . find (
210- ( persesProject ) => persesProject . metadata . name === selected ,
211- ) ;
212- const title = selectedProject ?. spec ?. display ?. name ?? t ( 'All Projects' ) ;
209+ const title = selected && allProjects . includes ( selected ) ? selected : t ( 'All Projects' ) ;
213210
214211 return (
215212 < div className = "co-namespace-dropdown" >
0 commit comments