Skip to content
Snippets Groups Projects
Commit 6ef09001 authored by Planoetscher Daniel (Student Com20)'s avatar Planoetscher Daniel (Student Com20)
Browse files

first connections to api of team page

parent 36cc7380
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ import './detail-grid.scss'; ...@@ -2,7 +2,7 @@ import './detail-grid.scss';
import DetailBox, { DetailProps } from 'components/ui/DetailBox'; import DetailBox, { DetailProps } from 'components/ui/DetailBox';
interface Props { interface Props {
details: DetailProps[] details?: DetailProps[]
} }
export default function DetailGrid({ details }: Props) { export default function DetailGrid({ details }: Props) {
...@@ -10,7 +10,7 @@ export default function DetailGrid({ details }: Props) { ...@@ -10,7 +10,7 @@ export default function DetailGrid({ details }: Props) {
return ( return (
<div className="detail-grid"> <div className="detail-grid">
{ {
details.map((detail) => ( details?.map((detail) => (
<div key={detail.title} className="box-container"> <div key={detail.title} className="box-container">
<DetailBox {...detail} /> <DetailBox {...detail} />
</div> </div>
......
...@@ -17,7 +17,7 @@ export default function DetailBox({ number, icon, title, label }: DetailProps) { ...@@ -17,7 +17,7 @@ export default function DetailBox({ number, icon, title, label }: DetailProps) {
</span> </span>
</div> </div>
<div className="text"> <div className="text">
{!label && number && <div className="number">{number}</div>} {!label && number !== undefined && <div className="number">{number}</div>}
<div className={'title' + (label ? ' bold' : '')}>{title}</div> <div className={'title' + (label ? ' bold' : '')}>{title}</div>
{label && <div className="label">{label}</div>} {label && <div className="label">{label}</div>}
</div> </div>
......
...@@ -5,17 +5,39 @@ import Tabs from 'components/navigation/Tabs'; ...@@ -5,17 +5,39 @@ import Tabs from 'components/navigation/Tabs';
import Dropdown from 'components/navigation/Dropdown'; import Dropdown from 'components/navigation/Dropdown';
import TeamsMembers from './TeamsMembers'; import TeamsMembers from './TeamsMembers';
import TeamsStats from './TeamsStats'; import TeamsStats from './TeamsStats';
import { useEffect, useState } from 'react';
import { getTeamMembers, getTeamProjects, getTeams, Team } from 'adapters/team';
import { DetailProps } from 'components/ui/DetailBox';
export default function Teams() { export default function Teams() {
const teamDetails = [{ const [allTeams, setTeams] = useState<Team[]>();
icon: 'group', const [currentTeam, setCurrentTeam] = useState<Team>();
title: 'Member', const [details, setDetails] = useState<DetailProps[]>([]);
number: 2
}, { useEffect(() => {
icon: 'folder', getTeams().then((teams) => {
title: 'Projects', setTeams(teams);
number: 3 setCurrentTeam(teams[0]);
}]; if (teams[0]) {
getTeamProjects(teams[0].id).then((projects) => {
console.log(projects);
setDetails((state) => [...state, {
icon: 'folder',
title: 'Projects',
number: projects.length
}]);
});
getTeamMembers(teams[0].id).then((members) => {
setDetails((state) => [...state, {
icon: 'group',
title: 'Members',
number: members.length
}]);
})
}
}).catch(() => { });
}, []);
const tabs = [{ const tabs = [{
path: '/teams', path: '/teams',
...@@ -27,6 +49,7 @@ export default function Teams() { ...@@ -27,6 +49,7 @@ export default function Teams() {
component: TeamsStats component: TeamsStats
}]; }];
//TODO dynamic
const teams = [{ const teams = [{
route: '/teams/members?team=someOther', route: '/teams/members?team=someOther',
label: 'Some other Team', label: 'Some other Team',
...@@ -35,14 +58,23 @@ export default function Teams() { ...@@ -35,14 +58,23 @@ export default function Teams() {
<div className="teams-page"> <div className="teams-page">
<div className="content-container"> <div className="content-container">
<h1 className="underlined">Teams</h1> <h1 className="underlined">Teams</h1>
<Dropdown items={teams}> {
<h2>Ryoko</h2> allTeams && allTeams?.length > 1 && (
<span className="material-icons icon"> <Dropdown items={teams}>
expand_more <h2>{currentTeam?.name}</h2>
</span> <span className="material-icons icon">
</Dropdown> expand_more
<DetailGrid details={teamDetails} /> </span>
<ButtonLink href="/teams/uuid/edit" className="expanded"> </Dropdown>
)
}
{
allTeams && allTeams?.length === 1 && (
<h2>{currentTeam?.name}</h2>
)
}
<DetailGrid details={details} />
<ButtonLink href={'/teams/' + currentTeam?.id + '/edit'} className="expanded">
Edit Edit
</ButtonLink> </ButtonLink>
<Tabs tabs={tabs} /> <Tabs tabs={tabs} />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment