feat: Enhance Signup and Chores functionality
- Added query invalidation on signup to refresh user profile data. - Improved MyChores component to ensure data is loaded before rendering. - Introduced dynamic sidepanel configuration with drag-and-drop functionality. - Created TasksByAssigneeCard to visualize tasks assigned to users. - Updated MFASettings and Settings components for better structure and usability. - Implemented SettingsOverview for a comprehensive settings navigation experience. - Added SidepanelSettings for customizing sidepanel card visibility and order. - Refactored NavBar to include user profile avatar and improved layout.
This commit is contained in:
65
src/utils/SidepanelConfig.js
Normal file
65
src/utils/SidepanelConfig.js
Normal file
@@ -0,0 +1,65 @@
|
||||
export const DEFAULT_SIDEPANEL_CONFIG = [
|
||||
{
|
||||
id: 'welcome',
|
||||
name: 'Welcome Card',
|
||||
description: 'Shows greeting and quick stats',
|
||||
iconName: 'WavingHand',
|
||||
enabled: true,
|
||||
order: 0,
|
||||
},
|
||||
{
|
||||
id: 'assignees',
|
||||
name: 'Tasks by Assignee',
|
||||
description: 'Groups tasks by who they are assigned to',
|
||||
iconName: 'Person',
|
||||
enabled: true,
|
||||
order: 1,
|
||||
},
|
||||
{
|
||||
id: 'calendar',
|
||||
name: 'Calendar View',
|
||||
description: 'Shows tasks in a calendar format',
|
||||
iconName: 'CalendarMonth',
|
||||
enabled: true,
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
id: 'activities',
|
||||
name: 'Recent Activities',
|
||||
description: 'Shows recent task completions and activities',
|
||||
iconName: 'History',
|
||||
enabled: true,
|
||||
order: 3,
|
||||
},
|
||||
{
|
||||
id: 'weeklyGoals',
|
||||
name: 'Weekly Goals',
|
||||
description: 'Shows weekly progress and family completion stats',
|
||||
iconName: 'EmojiEvents',
|
||||
enabled: true,
|
||||
order: 4,
|
||||
},
|
||||
]
|
||||
|
||||
export const getSidepanelConfig = () => {
|
||||
const saved = localStorage.getItem('sidepanelConfig')
|
||||
if (saved) {
|
||||
try {
|
||||
return JSON.parse(saved)
|
||||
} catch (error) {
|
||||
console.error('Error parsing sidepanel config:', error)
|
||||
return DEFAULT_SIDEPANEL_CONFIG
|
||||
}
|
||||
}
|
||||
return DEFAULT_SIDEPANEL_CONFIG
|
||||
}
|
||||
|
||||
export const saveSidepanelConfig = config => {
|
||||
localStorage.setItem('sidepanelConfig', JSON.stringify(config))
|
||||
window.dispatchEvent(new Event('sidepanelConfigChanged'))
|
||||
}
|
||||
|
||||
export const resetSidepanelConfig = () => {
|
||||
saveSidepanelConfig(DEFAULT_SIDEPANEL_CONFIG)
|
||||
return DEFAULT_SIDEPANEL_CONFIG
|
||||
}
|
||||
Reference in New Issue
Block a user