Skip to content

Commit 8ce2016

Browse files
committed
fix: OU-1195 ProjecDropdown update to utillize useEditableDashboard
1 parent 1383999 commit 8ce2016

1 file changed

Lines changed: 10 additions & 13 deletions

File tree

web/src/components/dashboards/perses/project/ProjectDropdown.tsx

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { useTranslation } from 'react-i18next';
1919
import ProjectMenuToggle from './ProjectMenuToggle';
2020
import { alphanumericCompare } from './utils';
2121
import { usePerses } from '../hooks/usePerses';
22+
import { useEditableProjects } from '../hooks/useEditableProjects';
2223
import { useCallback, useMemo, useRef, useState } from 'react';
2324

2425
export 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

Comments
 (0)