diff --git a/src/pages/client/MyProjects.jsx b/src/pages/client/MyProjects.jsx
index 0c2ef7d..8ef3a47 100755
--- a/src/pages/client/MyProjects.jsx
+++ b/src/pages/client/MyProjects.jsx
@@ -9,7 +9,7 @@ import { withTimeout } from '../../lib/withTimeout';
const rLabel = (v) => 'R' + String(v || 0).padStart(2, '0');
function ProjectGroup({ project, tasks, submissions, currentUserId, filter }) {
- const [open, setOpen] = useState(true);
+ const [open, setOpen] = useState(false);
const filteredTasks = filter === 'mine'
? tasks.filter(task => {
@@ -115,6 +115,8 @@ export default function MyProjects() {
const [submissions, setSubmissions] = useState([]);
const [loading, setLoading] = useState(true);
const [filter, setFilter] = useState('all'); // 'all' | 'mine'
+ const companies = currentUser.companies?.length ? currentUser.companies : (currentUser.company ? [currentUser.company] : []);
+ const [activeCompanyId, setActiveCompanyId] = useState(() => companies[0]?.id || null);
useEffect(() => {
async function load() {
@@ -187,6 +189,27 @@ export default function MyProjects() {
+ {companies.length > 1 && (
+
+ {companies.map((company, index) => (
+
+ {index > 0 && |}
+
+
+ ))}
+
+ )}
+
{projects.length === 0 ? (
No projects yet
@@ -194,47 +217,26 @@ export default function MyProjects() {
+ New Project
) : (() => {
- const companies = currentUser.companies || (currentUser.company ? [currentUser.company] : []);
- const multiCompany = companies.length > 1;
- const companyMap = Object.fromEntries(companies.map(c => [c.id, c.name]));
- const grouped = companies
- .map(c => ({ company: c, projects: projects.filter(p => p.company_id === c.id) }))
- .filter(g => g.projects.length > 0);
- const ungrouped = projects.filter(p => !companies.some(c => c.id === p.company_id));
+ const visibleProjects = companies.length > 1
+ ? projects.filter(p => p.company_id === activeCompanyId)
+ : projects;
- return (
- <>
- {grouped.map(({ company, projects: groupProjects }) => (
-
- {multiCompany && (
-
- {company.name}
-
- )}
- {groupProjects.map(project => (
-
t.project_id === project.id)}
- submissions={submissions}
- currentUserId={currentUser.id}
- filter={filter}
- />
- ))}
-
- ))}
- {ungrouped.map(project => (
- t.project_id === project.id)}
- submissions={submissions}
- currentUserId={currentUser.id}
- filter={filter}
- />
- ))}
- >
+ if (visibleProjects.length === 0) return (
+
+
No projects for this company
+
);
+
+ return visibleProjects.map(project => (
+ t.project_id === project.id)}
+ submissions={submissions}
+ currentUserId={currentUser.id}
+ filter={filter}
+ />
+ ));
})()}
);