diff --git a/src/containers/Projects/containers/ProjectFormDialog/ProjectForm.tsx b/src/containers/Projects/containers/ProjectFormDialog/ProjectForm.tsx index f23b74a09..f9b6e5a53 100644 --- a/src/containers/Projects/containers/ProjectFormDialog/ProjectForm.tsx +++ b/src/containers/Projects/containers/ProjectFormDialog/ProjectForm.tsx @@ -3,6 +3,7 @@ import React from 'react'; import moment from 'moment'; import intl from 'react-intl-universal'; import { Formik } from 'formik'; +import { Intent } from '@blueprintjs/core'; import { AppToaster } from 'components'; import ProjectFormContent from './ProjectFormContent'; import { CreateProjectFormSchema } from './ProjectForm.schema'; diff --git a/src/containers/Projects/containers/ProjectFormDialog/ProjectFormFields.tsx b/src/containers/Projects/containers/ProjectFormDialog/ProjectFormFields.tsx index ce28cd7dd..a0fe61fc5 100644 --- a/src/containers/Projects/containers/ProjectFormDialog/ProjectFormFields.tsx +++ b/src/containers/Projects/containers/ProjectFormDialog/ProjectFormFields.tsx @@ -65,6 +65,7 @@ function ProjectFormFields() { } > @@ -96,6 +97,7 @@ function ProjectFormFields() { } > diff --git a/src/containers/Projects/containers/ProjectsLanding/ProjectsDataTable.tsx b/src/containers/Projects/containers/ProjectsLanding/ProjectsDataTable.tsx index 1756178b8..bc33b374d 100644 --- a/src/containers/Projects/containers/ProjectsLanding/ProjectsDataTable.tsx +++ b/src/containers/Projects/containers/ProjectsLanding/ProjectsDataTable.tsx @@ -6,6 +6,7 @@ import { DataTable } from 'components'; import { TABLES } from 'common/tables'; import TableSkeletonRows from 'components/Datatable/TableSkeletonRows'; import TableSkeletonHeader from 'components/Datatable/TableHeaderSkeleton'; +import ProjectsEmptyStatus from './ProjectsEmptyStatus'; import { useProjectsListContext } from './ProjectsListProvider'; import { useMemorizedColumnsWidths } from 'hooks'; import { useProjectsListColumns, ActionsMenu } from './components'; @@ -76,6 +77,11 @@ function ProjectsDataTable({ }); }; + // Display project empty status instead of the table. + if (isEmptyStatus) { + return ; + } + return ( diff --git a/src/containers/Projects/containers/ProjectsLanding/ProjectsEmptyStatus.tsx b/src/containers/Projects/containers/ProjectsLanding/ProjectsEmptyStatus.tsx new file mode 100644 index 000000000..6d6110f5f --- /dev/null +++ b/src/containers/Projects/containers/ProjectsLanding/ProjectsEmptyStatus.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import { Button, Intent } from '@blueprintjs/core'; +import { EmptyStatus, FormattedMessage as T } from 'components'; +import withDialogActions from 'containers/Dialog/withDialogActions'; + +import { compose } from 'utils'; + +function ProjectsEmptyStatus({ + // #withDialogActions + openDialog, +}) { + // Handle new project button click. + const handleNewProjectClick = () => { + openDialog('project-form', {}); + }; + + return ( + } + description={ +

+ +

+ } + action={ + + + + + } + /> + ); +} + +export default compose(withDialogActions)(ProjectsEmptyStatus); diff --git a/src/containers/Projects/hooks/index.ts b/src/containers/Projects/hooks/index.ts index 2f2a22839..7ab8d7e0f 100644 --- a/src/containers/Projects/hooks/index.ts +++ b/src/containers/Projects/hooks/index.ts @@ -84,7 +84,7 @@ export function useProject(projectId, props, requestProps) { [t.PROJECT, projectId], { method: 'get', url: `projects/${projectId}`, ...requestProps }, { - select: (res) => res.data.projects, + select: (res) => res.data.project, defaultData: {}, ...props, }, diff --git a/src/lang/en/index.json b/src/lang/en/index.json index 50348fb3b..9a864db1f 100644 --- a/src/lang/en/index.json +++ b/src/lang/en/index.json @@ -2061,6 +2061,9 @@ "projects.dialog.edit_success_message": "The project has been edited successfully.", "projects.alert.delete_message": "The deleted project has been deleted successfully.", "projects.alert.once_delete_this_project": "Once you delete this project, you won't be able to restore it later. Are you sure you want to delete this project?", + "projects.empty_status.title":"", + "projects.empty_status.description":"", + "projects.empty_status.action":"New Project", "project_task.dialog.new_task": "New Task", "project_task.dialog.task_name": "Task Name", "project_task.dialog.estimated_hours": "Estimate Hours",