Refactor Dashboard components: add createdAt prop to Project interfaces, implement ProjectSocketRes for socket event handling, and remove unused handleDuplicateProjects function.
This commit is contained in:
@@ -7,7 +7,7 @@ import { useSocketStore } from "../../store/builder/store";
|
||||
import { recentlyViewed } from "../../services/dashboard/recentlyViewed";
|
||||
import { searchProject } from "../../services/dashboard/searchProjects";
|
||||
import { deleteProject } from "../../services/dashboard/deleteProject";
|
||||
import { handleDuplicateProjects } from "./functions/handleDuplicateProject";
|
||||
import ProjectSocketRes from "./socket/projectSocketRes.dev";
|
||||
|
||||
interface Project {
|
||||
_id: string;
|
||||
@@ -15,6 +15,7 @@ interface Project {
|
||||
thumbnail: string;
|
||||
createdBy: string;
|
||||
projectUuid?: string;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
interface RecentProjectsData {
|
||||
@@ -26,11 +27,13 @@ const DashboardHome: React.FC = () => {
|
||||
const [isSearchActive, setIsSearchActive] = useState<boolean>(false);
|
||||
const { userId, organization } = getUserData();
|
||||
const { projectSocket } = useSocketStore();
|
||||
const [recentDuplicateData, setRecentDuplicateData] = useState<Object>({});
|
||||
console.log("duplicateData: ", recentDuplicateData);
|
||||
|
||||
const fetchRecentProjects = async () => {
|
||||
try {
|
||||
const projects = await recentlyViewed(organization, userId);
|
||||
console.log('RecentlyViewed: ', projects);
|
||||
console.log("RecentlyViewed: ", projects);
|
||||
|
||||
if (JSON.stringify(projects) !== JSON.stringify(recentProjects)) {
|
||||
setRecentProjects(projects);
|
||||
@@ -50,13 +53,12 @@ const DashboardHome: React.FC = () => {
|
||||
userId,
|
||||
inputValue
|
||||
);
|
||||
console.log('filterRecentProcess: ', filterRecentProcess);
|
||||
setIsSearchActive(true);
|
||||
setRecentProjects(filterRecentProcess.message ? {} : filterRecentProcess);
|
||||
};
|
||||
|
||||
const handleDeleteProject = async (projectId: any) => {
|
||||
console.log('projectId:delete ', projectId);
|
||||
console.log("projectId:delete ", projectId);
|
||||
try {
|
||||
//API for delete project
|
||||
// const deletedProject = await deleteProject(
|
||||
@@ -74,12 +76,6 @@ const DashboardHome: React.FC = () => {
|
||||
};
|
||||
|
||||
if (projectSocket) {
|
||||
const handleResponse = (data: any) => {
|
||||
console.log("Project add response:", data);
|
||||
projectSocket.off("v1-project:response:delete", handleResponse);
|
||||
};
|
||||
|
||||
projectSocket.on("v1-project:response:delete", handleResponse);
|
||||
projectSocket.emit("v1:project:delete", deleteProject);
|
||||
}
|
||||
|
||||
@@ -101,20 +97,20 @@ const DashboardHome: React.FC = () => {
|
||||
}
|
||||
};
|
||||
|
||||
const handleDuplicateRecentProject = async (projectId: string, projectName: string, thumbnail: string) => {
|
||||
|
||||
await handleDuplicateProjects({
|
||||
const handleDuplicateRecentProject = async (
|
||||
projectId: string,
|
||||
projectName: string,
|
||||
thumbnail: string
|
||||
) => {
|
||||
const duplicateRecentProjectData = {
|
||||
userId,
|
||||
organization,
|
||||
projectId,
|
||||
projectName,
|
||||
projectSocket,
|
||||
thumbnail,
|
||||
setRecentProjects,
|
||||
setIsSearchActive
|
||||
});
|
||||
|
||||
}
|
||||
organization,
|
||||
projectUuid: projectId,
|
||||
projectName,
|
||||
};
|
||||
projectSocket.emit("v1:project:Duplicate", duplicateRecentProjectData);
|
||||
};
|
||||
|
||||
const renderProjects = () => {
|
||||
const projectList = recentProjects[Object.keys(recentProjects)[0]];
|
||||
@@ -123,16 +119,21 @@ const DashboardHome: React.FC = () => {
|
||||
return <div className="empty-state">No recent projects found</div>;
|
||||
}
|
||||
|
||||
return projectList && projectList.map((project) => (
|
||||
<DashboardCard
|
||||
key={project._id}
|
||||
projectName={project.projectName}
|
||||
thumbnail={project.thumbnail}
|
||||
projectId={project._id}
|
||||
handleDeleteProject={handleDeleteProject}
|
||||
handleDuplicateRecentProject={handleDuplicateRecentProject}
|
||||
/>
|
||||
));
|
||||
return (
|
||||
projectList &&
|
||||
projectList.map((project) => (
|
||||
<DashboardCard
|
||||
key={project._id}
|
||||
projectName={project.projectName}
|
||||
thumbnail={project.thumbnail}
|
||||
projectId={project._id}
|
||||
createdAt={project.createdAt}
|
||||
handleDeleteProject={handleDeleteProject}
|
||||
handleDuplicateRecentProject={handleDuplicateRecentProject}
|
||||
setRecentDuplicateData={setRecentDuplicateData}
|
||||
/>
|
||||
))
|
||||
);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
@@ -147,17 +148,19 @@ const DashboardHome: React.FC = () => {
|
||||
page="home"
|
||||
handleRecentProjectSearch={handleRecentProjectSearch}
|
||||
/>
|
||||
|
||||
<MarketPlaceBanner />
|
||||
|
||||
<div className="container">
|
||||
<h2 className="section-header">Recents</h2>
|
||||
<div className="cards-container">{renderProjects()}</div>
|
||||
</div>
|
||||
{recentDuplicateData && Object.keys(recentDuplicateData).length > 0 && (
|
||||
<ProjectSocketRes
|
||||
setIsSearchActive={setIsSearchActive}
|
||||
setRecentProjects={setRecentProjects}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default DashboardHome;
|
||||
|
||||
|
||||
export default DashboardHome;
|
||||
Reference in New Issue
Block a user