import { Box, Sheet } from '@mui/joy'
import { useMediaQuery } from '@mui/material'
import { useEffect, useState } from 'react'
import { useChoresHistory } from '../../queries/ChoreQueries'
import { ChoresGrouper } from '../../utils/Chores'
import { getSidepanelConfig } from '../../utils/SidepanelConfig'
import CalendarCard from '../components/CalendarCard'
import ActivitiesCard from './ActivitesCard'
import SmartInsightsCard from './SmartInsightsCard'
import TasksByAssigneeCard from './TasksByAssigneeCard'
import UserSwitcher from './UserSwitcher'
const Sidepanel = ({
allChores,
applyTempFilter,
chores,
clearTempFilter,
tempFilter,
}) => {
const isLargeScreen = useMediaQuery(theme => theme.breakpoints.up('lg'))
const [dueDatePieChartData, setDueDatePieChartData] = useState([])
const [sidepanelConfig, setSidepanelConfig] = useState([])
const {
data: choresHistory,
handleLimitChange: refetchHistory,
isChoresHistoryLoading,
} = useChoresHistory(7, true)
useEffect(() => {
setDueDatePieChartData(generateChoreDuePieChartData(chores))
setSidepanelConfig(getSidepanelConfig())
}, [])
useEffect(() => {
const handleConfigChange = () => {
setSidepanelConfig(getSidepanelConfig())
}
window.addEventListener('sidepanelConfigChanged', handleConfigChange)
return () => {
window.removeEventListener('sidepanelConfigChanged', handleConfigChange)
}
}, [])
const generateChoreDuePieChartData = chores => {
const groups = ChoresGrouper('due_date', chores, null)
return groups
.map(group => {
return {
label: group.name,
value: group.content.length,
color: group.color,
id: group.name,
}
})
.filter(item => item.value > 0)
}
const renderCard = cardConfig => {
if (!cardConfig.enabled) return null
switch (cardConfig.id) {
case 'welcome':
return
case 'smartInsights':
return (
)
case 'assignees':
return
case 'calendar':
return (
)
case 'activities':
return (
)
default:
return null
}
}
if (!isLargeScreen) {
return null
}
const sortedCards = [...sidepanelConfig].sort((a, b) => a.order - b.order)
return {sortedCards.map(cardConfig => renderCard(cardConfig))}
}
export default Sidepanel