feat(project-drawer): enhance project data fetching and error handling

- Updated project data fetching logic in the project drawer and related components to ensure the drawer opens only after successful data retrieval.
- Added detailed logging for successful and failed fetch attempts to improve debugging and user feedback.
- Introduced error handling to maintain user experience by allowing the drawer to open even if data fetching fails, displaying an error state.
- Refactored project list and project view components to optimize search functionality and improve loading states.
- Removed deprecated components related to task management to streamline the project view.
This commit is contained in:
chamikaJ
2025-07-07 17:07:45 +05:30
parent 978d9158c0
commit b0253135e5
12 changed files with 450 additions and 984 deletions

View File

@@ -124,10 +124,25 @@ const ProjectGroupList: React.FC<ProjectGroupListProps> = ({
// Action handlers
const handleSettingsClick = (e: React.MouseEvent, projectId: string) => {
e.stopPropagation();
console.log('Opening project drawer from project group for project:', projectId);
trackMixpanelEvent(evt_projects_settings_click);
// Set project ID first
dispatch(setProjectId(projectId));
dispatch(fetchProjectData(projectId));
dispatch(toggleProjectDrawer());
// Then fetch project data
dispatch(fetchProjectData(projectId))
.unwrap()
.then((projectData) => {
console.log('Project data fetched successfully from project group:', projectData);
// Open drawer after data is fetched
dispatch(toggleProjectDrawer());
})
.catch((error) => {
console.error('Failed to fetch project data from project group:', error);
// Still open drawer even if fetch fails, so user can see error state
dispatch(toggleProjectDrawer());
});
};
const handleArchiveClick = async (

View File

@@ -46,10 +46,25 @@ export const ActionButtons: React.FC<ActionButtonsProps> = ({
const handleSettingsClick = () => {
if (record.id) {
console.log('Opening project drawer for project:', record.id);
trackMixpanelEvent(evt_projects_settings_click);
// Set project ID first
dispatch(setProjectId(record.id));
dispatch(fetchProjectData(record.id));
dispatch(toggleProjectDrawer());
// Then fetch project data
dispatch(fetchProjectData(record.id))
.unwrap()
.then((projectData) => {
console.log('Project data fetched successfully:', projectData);
// Open drawer after data is fetched
dispatch(toggleProjectDrawer());
})
.catch((error) => {
console.error('Failed to fetch project data:', error);
// Still open drawer even if fetch fails, so user can see error state
dispatch(toggleProjectDrawer());
});
}
};