From 87c619accda528b2da733dba25093f47a11e06b6 Mon Sep 17 00:00:00 2001 From: Antonio Contreras LEMONCODE Date: Thu, 14 May 2020 09:40:20 +0200 Subject: [PATCH 1/6] Create data validations and implement it --- .../project/components/data.component.tsx | 8 ++++++- .../project/components/data.validations.ts | 21 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/pods/project/components/data.validations.ts diff --git a/src/pods/project/components/data.component.tsx b/src/pods/project/components/data.component.tsx index df68d1c..f09dadb 100644 --- a/src/pods/project/components/data.component.tsx +++ b/src/pods/project/components/data.component.tsx @@ -3,6 +3,7 @@ import { Formik, Form } from 'formik'; import { TextFieldComponent, CheckboxComponent } from 'common/components'; import { CommandFooterComponent } from '../../../common-app/command-footer'; import { Project } from '../project.vm'; +import { formValidation } from './data.validations'; interface Props { project: Project; @@ -18,7 +19,12 @@ export const DataComponent: React.FunctionComponent = ({ className, }) => { return ( - + {() => (
Date: Thu, 14 May 2020 10:10:36 +0200 Subject: [PATCH 2/6] Create report validation to project and implement it --- .../project/components/report.component.tsx | 15 ++++++++++--- .../project/components/report.validations.ts | 21 +++++++++++++++++++ src/pods/project/project.component.tsx | 11 +++++++++- src/pods/project/project.container.tsx | 15 ++++++++++++- src/pods/project/project.vm.ts | 10 +++++++++ 5 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 src/pods/project/components/report.validations.ts diff --git a/src/pods/project/components/report.component.tsx b/src/pods/project/components/report.component.tsx index 263945b..71415cb 100644 --- a/src/pods/project/components/report.component.tsx +++ b/src/pods/project/components/report.component.tsx @@ -5,25 +5,35 @@ import { monthList } from 'common/constants'; import { CommandFooterComponent } from 'common-app/command-footer'; import { cx } from 'emotion'; import * as classes from './report.styles'; +import { formValidation } from './report.validations'; +import { Report } from '../project.vm'; interface Props { + report: Report; onCancel: () => void; className: string; + onGenerateExcel: (report: Report) => void; } export const ReportComponent: React.FunctionComponent = ({ + report, + onGenerateExcel, onCancel, className, }) => { return ( - + {() => ( = ({ name: '2020', }, ]} - disabled className={classes.year} /> void; onSave: (project: Project) => void; onCancel: () => void; } @@ -23,6 +25,8 @@ interface Props { export const ProjectComponent: React.FunctionComponent = ({ isEditMode, project, + report, + onGenerateExcel, onSave, onCancel, }) => { @@ -52,7 +56,12 @@ export const ProjectComponent: React.FunctionComponent = ({ /> - + ); diff --git a/src/pods/project/project.container.tsx b/src/pods/project/project.container.tsx index 18d9ee7..4a5f417 100644 --- a/src/pods/project/project.container.tsx +++ b/src/pods/project/project.container.tsx @@ -5,13 +5,19 @@ import { useSnackbarContext } from 'common/components'; import { getProjectById } from './api'; import { trackPromise } from 'react-promise-tracker'; import { mapProjectFromApiToVm } from './project.mapper'; -import { Project, createEmptyProject } from './project.vm'; +import { + Project, + createEmptyProject, + Report, + createEmptyReport, +} from './project.vm'; import { isEditModeHelper } from 'common/helpers'; export const ProjectContainer: React.FunctionComponent = () => { const { id } = useParams(); const [project, setProject] = React.useState(createEmptyProject()); const [isEditMode, setIsEditMode] = React.useState(false); + const [report, setReport] = React.useState(createEmptyReport()); const { showMessage } = useSnackbarContext(); const onLoadProject = async () => { @@ -33,6 +39,11 @@ export const ProjectContainer: React.FunctionComponent = () => { history.back(); }; + const handleGenerateExcel = (report: Report) => { + // Pending to create real implementation + console.log('Excel creado'); + }; + React.useEffect(() => { const isEditMode = isEditModeHelper(id); setIsEditMode(isEditMode); @@ -45,8 +56,10 @@ export const ProjectContainer: React.FunctionComponent = () => { ); }; diff --git a/src/pods/project/project.vm.ts b/src/pods/project/project.vm.ts index 1ffb7ef..6cfc458 100644 --- a/src/pods/project/project.vm.ts +++ b/src/pods/project/project.vm.ts @@ -13,6 +13,11 @@ export interface EmployeeSummary { employeeName: string; } +export interface Report { + month: string; + year: string; +} + export const createEmptyProject = (): Project => ({ id: '', name: '', @@ -21,3 +26,8 @@ export const createEmptyProject = (): Project => ({ isActive: false, employees: [], }); + +export const createEmptyReport = (): Report => ({ + month: '', + year: '', +}); From 5f47d80422d4b058e91448550de993bbbdbe60aa Mon Sep 17 00:00:00 2001 From: Antonio Contreras LEMONCODE Date: Mon, 18 May 2020 17:25:32 +0200 Subject: [PATCH 3/6] Refactor name externalId validation --- src/pods/project/components/data.validations.ts | 14 ++------------ src/pods/project/components/report.validations.ts | 14 ++------------ 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/pods/project/components/data.validations.ts b/src/pods/project/components/data.validations.ts index 64acdda..476d2f7 100644 --- a/src/pods/project/components/data.validations.ts +++ b/src/pods/project/components/data.validations.ts @@ -3,18 +3,8 @@ import { createFormikValidation } from '@lemoncode/fonk-formik'; const validationSchema: ValidationSchema = { field: { - name: [ - { - validator: Validators.required, - message: 'Campo obligatorio', - }, - ], - externalId: [ - { - validator: Validators.required, - message: 'Campo obligatorio', - }, - ], + name: [Validators.required], + externalId: [Validators.required], }, }; diff --git a/src/pods/project/components/report.validations.ts b/src/pods/project/components/report.validations.ts index bc8a922..c85a33b 100644 --- a/src/pods/project/components/report.validations.ts +++ b/src/pods/project/components/report.validations.ts @@ -3,18 +3,8 @@ import { createFormikValidation } from '@lemoncode/fonk-formik'; const validationSchema: ValidationSchema = { field: { - month: [ - { - validator: Validators.required, - message: 'Campo obligatorio', - }, - ], - year: [ - { - validator: Validators.required, - message: 'Campo obligatorio', - }, - ], + month: [Validators.required], + year: [Validators.required], }, }; From 52b9b9d258c70b0121cd880368e4605dc6acbce4 Mon Sep 17 00:00:00 2001 From: Antonio Contreras LEMONCODE Date: Wed, 17 Jun 2020 14:17:58 +0200 Subject: [PATCH 4/6] Remove externalId validation --- src/pods/project/components/data.validations.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pods/project/components/data.validations.ts b/src/pods/project/components/data.validations.ts index 476d2f7..ecc27bb 100644 --- a/src/pods/project/components/data.validations.ts +++ b/src/pods/project/components/data.validations.ts @@ -4,7 +4,6 @@ import { createFormikValidation } from '@lemoncode/fonk-formik'; const validationSchema: ValidationSchema = { field: { name: [Validators.required], - externalId: [Validators.required], }, }; From ce3a4c39066051b29cd3f8ce51b169002f3b35b5 Mon Sep 17 00:00:00 2001 From: Antonio Contreras LEMONCODE Date: Thu, 25 Jun 2020 19:30:11 +0200 Subject: [PATCH 5/6] Fix a import --- src/pods/project/project.component.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pods/project/project.component.tsx b/src/pods/project/project.component.tsx index 6d040ed..335a2c0 100644 --- a/src/pods/project/project.component.tsx +++ b/src/pods/project/project.component.tsx @@ -10,7 +10,7 @@ import { EmployeeComponent, ReportComponent, } from './components'; -import { Project } from './project.vm'; +import { Project, Report } from './project.vm'; import * as classes from './project.styles'; interface Props { From facc4fe80b0f3887591451d73a5f11706389afb1 Mon Sep 17 00:00:00 2001 From: Antonio Contreras LEMONCODE Date: Fri, 26 Jun 2020 09:12:36 +0200 Subject: [PATCH 6/6] fix name, from Project to project --- src/pods/project/project.container.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pods/project/project.container.tsx b/src/pods/project/project.container.tsx index 4a5f417..ec278d1 100644 --- a/src/pods/project/project.container.tsx +++ b/src/pods/project/project.container.tsx @@ -31,7 +31,7 @@ export const ProjectContainer: React.FunctionComponent = () => { } }; - const handleSave = (Project: Project) => { + const handleSave = (project: Project) => { console.log('Guardado'); };