Skip to content

Commit 36de8e0

Browse files
author
Antonio Contreras LEMONCODE
committed
Create onCancel and onSave function
1 parent b99e7e7 commit 36de8e0

7 files changed

Lines changed: 65 additions & 13 deletions

File tree

src/pods/project/components/data.component.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@ import React from 'react';
22
import { Formik, Form } from 'formik';
33
import { TextFieldComponent, CheckboxComponent } from 'common/components';
44
import { CommandFooterComponent } from '../../../common-app/command-footer';
5+
import { Project } from '../project.vm';
56

6-
export const DataComponent: React.FunctionComponent = () => {
7+
interface Props {
8+
project: Project;
9+
onSave: (project: Project) => void;
10+
onCancel: () => void;
11+
}
12+
13+
export const DataComponent: React.FunctionComponent<Props> = ({
14+
project,
15+
onSave,
16+
onCancel,
17+
}) => {
718
return (
8-
<Formik initialValues={{}} enableReinitialize={true} onSubmit={console.log}>
19+
<Formik initialValues={project} enableReinitialize={true} onSubmit={onSave}>
920
{() => (
1021
<Form>
1122
<TextFieldComponent
@@ -19,6 +30,7 @@ export const DataComponent: React.FunctionComponent = () => {
1930
<TextFieldComponent label="Id Externo" name="externalId" />
2031
<TextFieldComponent label="Comentarios" name="comments" multiline />
2132
<CheckboxComponent label="Activo" name="isActive" color="primary" />
33+
<CommandFooterComponent onCancel={onCancel} />
2234
</Form>
2335
)}
2436
</Formik>
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
import React from 'react';
2+
import { EmployeeSummary } from '../project.vm';
23

3-
export const EmployeeComponent: React.FunctionComponent = () => {
4+
interface Props {
5+
employeeSummaryList: EmployeeSummary[];
6+
onCancel: () => void;
7+
}
8+
9+
export const EmployeeComponent: React.FunctionComponent<Props> = ({
10+
employeeSummaryList,
11+
onCancel,
12+
}) => {
413
return <h1>Hello Employee Component</h1>;
514
};

src/pods/project/components/report.component.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ import { SelectComponent } from 'common/components';
44
import { monthList } from 'common/constants';
55
import { CommandFooterComponent } from 'common-app/command-footer';
66

7-
export const ReportComponent: React.FunctionComponent = () => {
7+
interface Props {
8+
onCancel: () => void;
9+
}
10+
11+
export const ReportComponent: React.FunctionComponent<Props> = ({
12+
onCancel,
13+
}) => {
814
return (
915
<Formik initialValues={{}} enableReinitialize={true} onSubmit={console.log}>
1016
{() => (
@@ -27,7 +33,7 @@ export const ReportComponent: React.FunctionComponent = () => {
2733
disabled
2834
/>
2935
<CommandFooterComponent
30-
onCancel={console.log}
36+
onCancel={onCancel}
3137
labels={{ saveButton: 'Generar', cancelButton: 'Cancelar' }}
3238
/>
3339
</Form>

src/pods/project/project.component.tsx

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,20 @@ import {
1010
EmployeeComponent,
1111
ReportComponent,
1212
} from './components';
13+
import { Project } from './project.vm';
1314

1415
interface Props {
1516
isEditMode: boolean;
17+
project: Project;
18+
onSave: (project: Project) => void;
19+
onCancel: () => void;
1620
}
1721

1822
export const ProjectComponent: React.FunctionComponent<Props> = ({
1923
isEditMode,
24+
project,
25+
onSave,
26+
onCancel,
2027
}) => {
2128
const [tab, setTab] = React.useState(0);
2229
return (
@@ -29,13 +36,16 @@ export const ProjectComponent: React.FunctionComponent<Props> = ({
2936
</TabListComponent>
3037
</AppBar>
3138
<TabPanelComponent value={tab} index={0}>
32-
<DataComponent />
39+
<DataComponent project={project} onCancel={onCancel} onSave={onSave} />
3340
</TabPanelComponent>
3441
<TabPanelComponent value={tab} index={1}>
35-
<EmployeeComponent />
42+
<EmployeeComponent
43+
employeeSummaryList={project.employees}
44+
onCancel={onCancel}
45+
/>
3646
</TabPanelComponent>
3747
<TabPanelComponent value={tab} index={2}>
38-
<ReportComponent />
48+
<ReportComponent onCancel={onCancel} />
3949
</TabPanelComponent>
4050
</>
4151
);

src/pods/project/project.container.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ export const ProjectContainer: React.FunctionComponent = () => {
2525
}
2626
};
2727

28+
const handleSave = (Project: Project) => {
29+
console.log('Guardado');
30+
};
31+
32+
const handleCancel = () => {
33+
history.back();
34+
};
35+
2836
React.useEffect(() => {
2937
const isEditMode = isEditModeHelper(id);
3038
setIsEditMode(isEditMode);
@@ -33,5 +41,12 @@ export const ProjectContainer: React.FunctionComponent = () => {
3341
}
3442
}, []);
3543

36-
return <ProjectComponent isEditMode={isEditMode} />;
44+
return (
45+
<ProjectComponent
46+
isEditMode={isEditMode}
47+
project={project}
48+
onSave={handleSave}
49+
onCancel={handleCancel}
50+
/>
51+
);
3752
};

src/pods/project/project.mapper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import * as viewModel from './project.vm';
44

55
const mapEmployeeSummaryFromApiToVm = (
66
employeeSummary: apiModel.EmployeeSummary
7-
): viewModel.ProloyeeSummary => ({
7+
): viewModel.EmployeeSummary => ({
88
...employeeSummary,
99
});
1010

1111
const mapEmployeeSummaryListFromApiToVm = (
1212
employeeSummary: apiModel.EmployeeSummary[]
13-
): viewModel.ProloyeeSummary[] =>
13+
): viewModel.EmployeeSummary[] =>
1414
mapToCollection(employeeSummary, es => mapEmployeeSummaryFromApiToVm(es));
1515

1616
export const mapProjectFromApiToVm = (

src/pods/project/project.vm.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ export interface Project {
44
externalId?: string;
55
comments?: string;
66
isActive: boolean;
7-
employees: ProloyeeSummary[];
7+
employees: EmployeeSummary[];
88
}
99

10-
export interface ProloyeeSummary {
10+
export interface EmployeeSummary {
1111
id: string;
1212
isAssigned?: boolean;
1313
employeeName: string;

0 commit comments

Comments
 (0)