import React, { useEffect, useState } from 'react'; import { Workgroup } from '../../types/workgroup'; import { User } from '../../types/user'; import { Link } from 'react-router-dom'; import { useWorkgroupsQuery } from '../../gql/queries/workgroups'; import { useUserProfileQuery } from '../../gql/queries/profile'; import { WithLoader } from '../WithLoader'; export function WorkgroupsPanel() { const workgroupsQuery = useWorkgroupsQuery(); const userProfileQuery = useUserProfileQuery(); const [ state, setState ] = useState({ selectedTab: 0 }); const isLoading = userProfileQuery.loading || workgroupsQuery.loading; const { userProfile } = (userProfileQuery.data || {}); const { workgroups } = (workgroupsQuery.data || {}); const filterTabs = [ { label: "Mes groupes", filter: workgroups => workgroups.filter((wg: Workgroup) => { return wg.members.some((u: User) => u.id === (userProfile ? userProfile.id : '')); }) }, { label: "Ouverts", filter: workgroups => workgroups.filter((wg: Workgroup) => !wg.closedAt) }, { label: "Clôs", filter: workgroups => workgroups.filter((wg: Workgroup) => !!wg.closedAt) } ]; const selectTab = (tabIndex: number) => { setState(state => ({ ...state, selectedTab: tabIndex })); } let workgroupsItems = []; workgroupsItems = filterTabs[state.selectedTab].filter(workgroups || []).map((wg: Workgroup) => { return ( {wg.name} ); }); return ( ) }