diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskForm.schema.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.schema.tsx similarity index 73% rename from src/containers/Projects/containers/TaskFormDialog/TaskForm.schema.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.schema.tsx index 1586c993d..83b19c7bb 100644 --- a/src/containers/Projects/containers/TaskFormDialog/TaskForm.schema.tsx +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.schema.tsx @@ -7,8 +7,10 @@ const Schema = Yup.object().shape({ .label(intl.get('task.schema.label.task_name')) .required(), taskHouse: Yup.string().label(intl.get('task.schema.label.task_house')), - taskCharge: Yup.string().label(intl.get('task.schema.label.charge')).required(), + taskCharge: Yup.string() + .label(intl.get('task.schema.label.charge')) + .required(), taskamount: Yup.number().label(intl.get('task.schema.label.amount')), }); -export const CreateTaskFormSchema = Schema; +export const CreateProjectTaskFormSchema = Schema; diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskForm.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.tsx similarity index 66% rename from src/containers/Projects/containers/TaskFormDialog/TaskForm.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.tsx index 4f196de0f..60c390254 100644 --- a/src/containers/Projects/containers/TaskFormDialog/TaskForm.tsx +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskForm.tsx @@ -1,10 +1,10 @@ //@ts-nocheck import React from 'react'; import { Formik } from 'formik'; -import { CreateTaskFormSchema } from './TaskForm.schema'; -import { useTaskFormContext } from './TaskFormProvider'; +import { CreateProjectTaskFormSchema } from './ProjectTaskForm.schema'; +import { useProjectTaskFormContext } from './ProjectTaskFormProvider'; import { AppToaster } from 'components'; -import TaskFormContent from './TaskFormContent'; +import ProjectTaskFormContent from './ProjectTaskFormContent'; import withDialogActions from 'containers/Dialog/withDialogActions'; import { compose } from 'utils'; @@ -12,20 +12,20 @@ import { compose } from 'utils'; const defaultInitialValues = { taskName: '', taskHouse: '00:00', - taskCharge: 'Hourly rate', + taskCharge: 'hourly_rate', taskamount: '', }; /** - * Task form. + * Project task form. * @returns */ -function TaskForm({ +function ProjectTaskForm({ // #withDialogActions closeDialog, }) { // task form dialog context. - const { dialogName } = useTaskFormContext(); + const { dialogName } = useProjectTaskFormContext(); // Initial form values const initialValues = { @@ -51,12 +51,12 @@ function TaskForm({ return ( ); } -export default compose(withDialogActions)(TaskForm); +export default compose(withDialogActions)(ProjectTaskForm); diff --git a/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormContent.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormContent.tsx new file mode 100644 index 000000000..b720b2837 --- /dev/null +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormContent.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Form } from 'formik'; +import ProjectTaskFormFields from './ProjectTaskFormFields'; +import ProjectTaskFormFloatingActions from './ProjectTaskFormFloatingActions'; + +/** + * Task form content. + * @returns + */ +export default function TaskFormContent() { + return ( +
+ + + + ); +} diff --git a/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormDialogContent.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormDialogContent.tsx new file mode 100644 index 000000000..a72bff479 --- /dev/null +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormDialogContent.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { ProjectTaskFormProvider } from './ProjectTaskFormProvider'; +import ProjectTaskForm from './ProjectTaskForm'; + +/** + * Project task form dialog content. + */ +export default function ProjectTaskFormDialogContent({ + // #ownProps + dialogName, + task, +}) { + return ( + + + + ); +} diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskFormFields.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFields.tsx similarity index 77% rename from src/containers/Projects/containers/TaskFormDialog/TaskFormFields.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFields.tsx index c27a9e2ed..f42f359fb 100644 --- a/src/containers/Projects/containers/TaskFormDialog/TaskFormFields.tsx +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFields.tsx @@ -10,28 +10,28 @@ import { Row, FormattedMessage as T, } from 'components'; -import { taskChargeOptions } from 'common/modalChargeOptions'; -import { ChargeSelect } from '../../components'; +import { taskChargeOptions } from 'containers/Projects/containers/common/modalChargeOptions'; +import { ChangeTypesSelect } from '../../components'; /** - * Task form fields. + * Project task form fields. * @returns */ -function TaskFormFields() { +function ProjectTaskFormFields() { // Formik context. const { values } = useFormikContext(); return (
{/*------------ Task Name -----------*/} - } name={'taskName'}> + } name={'taskName'}> {/*------------ Estimated Hours -----------*/} } + label={} name={'taskHouse'} > @@ -42,10 +42,10 @@ function TaskFormFields() { } + label={} > - - + 0.00 @@ -70,7 +70,7 @@ function TaskFormFields() { ); } -export default TaskFormFields; +export default ProjectTaskFormFields; const EstimatedAmountBase = styled.div` display: flex; diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskFormFloatingActions.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFloatingActions.tsx similarity index 81% rename from src/containers/Projects/containers/TaskFormDialog/TaskFormFloatingActions.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFloatingActions.tsx index c9c30a6a9..f500f11ed 100644 --- a/src/containers/Projects/containers/TaskFormDialog/TaskFormFloatingActions.tsx +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormFloatingActions.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { useFormikContext } from 'formik'; import { Intent, Button, Classes } from '@blueprintjs/core'; import { FormattedMessage as T } from 'components'; -import { useTaskFormContext } from './TaskFormProvider'; +import { useProjectTaskFormContext } from './ProjectTaskFormProvider'; import withDialogActions from 'containers/Dialog/withDialogActions'; import { compose } from 'utils'; @@ -11,7 +11,7 @@ import { compose } from 'utils'; * Task form floating actions. * @returns */ -function TaskFormFloatingActions({ +function ProjectTaskFormFloatingActions({ // #withDialogActions closeDialog, }) { @@ -19,7 +19,7 @@ function TaskFormFloatingActions({ const { isSubmitting } = useFormikContext(); // Task form dialog context. - const { dialogName } = useTaskFormContext(); + const { dialogName } = useProjectTaskFormContext(); // Handle close button click. const handleCancelBtnClick = () => { @@ -45,4 +45,4 @@ function TaskFormFloatingActions({ ); } -export default compose(withDialogActions)(TaskFormFloatingActions); +export default compose(withDialogActions)(ProjectTaskFormFloatingActions); diff --git a/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormProvider.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormProvider.tsx new file mode 100644 index 000000000..256ef65cd --- /dev/null +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/ProjectTaskFormProvider.tsx @@ -0,0 +1,32 @@ +//@ts-nocheck +import React from 'react'; +import { DialogContent } from 'components'; + +const ProjectTaskFormContext = React.createContext(); + +/** + * Project task form provider. + * @returns + */ +function ProjectTaskFormProvider({ + // #ownProps + dialogName, + taskId, + ...props +}) { + // State provider. + const provider = { + dialogName, + }; + + return ( + + + + ); +} + +const useProjectTaskFormContext = () => + React.useContext(ProjectTaskFormContext); + +export { ProjectTaskFormProvider, useProjectTaskFormContext }; diff --git a/src/containers/Projects/containers/TaskFormDialog/components.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/components.tsx similarity index 100% rename from src/containers/Projects/containers/TaskFormDialog/components.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/components.tsx diff --git a/src/containers/Projects/containers/TaskFormDialog/index.tsx b/src/containers/Projects/containers/ProjectTaskFormDialog/index.tsx similarity index 55% rename from src/containers/Projects/containers/TaskFormDialog/index.tsx rename to src/containers/Projects/containers/ProjectTaskFormDialog/index.tsx index ee74f4719..841f2d3c5 100644 --- a/src/containers/Projects/containers/TaskFormDialog/index.tsx +++ b/src/containers/Projects/containers/ProjectTaskFormDialog/index.tsx @@ -5,30 +5,32 @@ import { Dialog, DialogSuspense, FormattedMessage as T } from 'components'; import withDialogRedux from 'components/DialogReduxConnect'; import { compose } from 'utils'; -const TaskFormDialogContent = React.lazy( - () => import('./TaskFormDialogContent'), +const ProjectTaskFormDialogContent = React.lazy( + () => import('./ProjectTaskFormDialogContent'), ); /** - * Task form dialog. + * Project task form dialog. * @returns */ -function TaskFormDialog({ dialogName, payload: { taskId = null }, isOpen }) { +function ProjectTaskFormDialog({ + dialogName, + payload: { taskId = null }, + isOpen, +}) { return ( - + ); } -export default compose(withDialogRedux())(TaskFormDialog); - -const TaskFormDialogRoot = styled(Dialog)``; +export default compose(withDialogRedux())(ProjectTaskFormDialog); diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskFormContent.tsx b/src/containers/Projects/containers/TaskFormDialog/TaskFormContent.tsx deleted file mode 100644 index 1d1f371f5..000000000 --- a/src/containers/Projects/containers/TaskFormDialog/TaskFormContent.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { Form } from 'formik'; -import TaskFormFields from './TaskFormFields'; -import TaskFormFloatingActions from './TaskFormFloatingActions'; - -/** - * Task form content. - * @returns - */ -export default function TaskFormContent() { - return ( -
- - - - ); -} diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskFormDialogContent.tsx b/src/containers/Projects/containers/TaskFormDialog/TaskFormDialogContent.tsx deleted file mode 100644 index 441356e65..000000000 --- a/src/containers/Projects/containers/TaskFormDialog/TaskFormDialogContent.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { TaskFormProvider } from './TaskFormProvider'; -import TaskForm from './TaskForm'; - -/** - * Task form dialog content. - */ -export default function TaskFormDialogContent({ - // #ownProps - dialogName, - task, -}) { - return ( - - - - ); -} diff --git a/src/containers/Projects/containers/TaskFormDialog/TaskFormProvider.tsx b/src/containers/Projects/containers/TaskFormDialog/TaskFormProvider.tsx deleted file mode 100644 index ea9bf5be3..000000000 --- a/src/containers/Projects/containers/TaskFormDialog/TaskFormProvider.tsx +++ /dev/null @@ -1,31 +0,0 @@ -//@ts-nocheck -import React from 'react'; -import { DialogContent } from 'components'; - -const TaskFormContext = React.createContext(); - -/** - * Task form provider. - * @returns - */ -function TaskFormProvider({ - // #ownProps - dialogName, - taskId, - ...props -}) { - // State provider. - const provider = { - dialogName, - }; - - return ( - - - - ); -} - -const useTaskFormContext = () => React.useContext(TaskFormContext); - -export { TaskFormProvider, useTaskFormContext }; diff --git a/src/containers/Projects/containers/TimeEntryFormDialog/index.tsx b/src/containers/Projects/containers/TimeEntryFormDialog/index.tsx deleted file mode 100644 index f0cdcd654..000000000 --- a/src/containers/Projects/containers/TimeEntryFormDialog/index.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; -import { Dialog, DialogSuspense, FormattedMessage as T } from 'components'; -import withDialogRedux from 'components/DialogReduxConnect'; -import { compose } from 'utils'; - -const TimeEntryFormDialogContent = React.lazy( - () => import('./TimeEntryFormDialogContent'), -); - -/** - * Time entry form dialog. - * @returns - */ -function TimeEntryFormDialog({ - dialogName, - isOpen, - payload: { projectId = null, timeEntryId = null }, -}) { - return ( - } - isOpen={isOpen} - autoFocus={true} - canEscapeKeyClose={true} - style={{ width: '400px' }} - > - - - - - ); -} - -export default compose(withDialogRedux())(TimeEntryFormDialog); - -const TimeEntryFormDialogRoot = styled(Dialog)` - .bp3-dialog-body { - .bp3-form-group { - margin-bottom: 15px; - - label.bp3-label { - margin-bottom: 3px; - font-size: 13px; - } - } - .form-group { - &--description { - .bp3-form-content { - textarea { - width: 100%; - min-width: 100%; - font-size: 14px; - } - } - } - } - } - .bp3-dialog-footer { - padding-top: 10px; - } -`;