Skip to content

Commit 66fdb25

Browse files
author
Antonio Contreras LEMONCODE
committed
Added feature to create and edit employees
1 parent 289b4de commit 66fdb25

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

src/pods/employee-list/employee-list.component.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@ import { EmployeeRowComponent } from './components';
1010

1111
interface Props {
1212
employeeList: Employee[];
13+
onCreate: () => void;
14+
onEdit: (id: string) => void;
1315
}
1416

1517
export const EmployeeListComponent: React.FunctionComponent<Props> = ({
1618
employeeList,
19+
onCreate,
20+
onEdit,
1721
}) => {
1822
const { filteredList, onSearch, search } = useSearchBar(employeeList, [
1923
'name',
@@ -26,7 +30,8 @@ export const EmployeeListComponent: React.FunctionComponent<Props> = ({
2630
rowRenderer={(rowProps: RowRendererProps<Employee>) => (
2731
<EmployeeRowComponent {...rowProps} />
2832
)}
29-
onCreate={() => console.log}
33+
onCreate={onCreate}
34+
onEdit={onEdit}
3035
labels={{
3136
searchPlaceholder: 'Buscar empleados',
3237
createButton: 'Nuevo empleado',

src/pods/employee-list/employee-list.container.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@ import { Employee } from './employee-list.vm';
55
import { useSnackbarContext } from 'common/components';
66
import { trackPromise } from 'react-promise-tracker';
77
import { mapEmployeeListFromApiToVm } from './employee-list.mappers';
8+
import { useHistory } from 'react-router-dom';
9+
import { routes } from 'core/router';
810

911
export const EmployeeListContainer: React.FunctionComponent = () => {
1012
const [employees, setEmployees] = React.useState<Employee[]>([]);
1113
const { showMessage } = useSnackbarContext();
14+
const history = useHistory();
1215

1316
const onLoadEmployeeList = async () => {
1417
try {
@@ -21,9 +24,23 @@ export const EmployeeListContainer: React.FunctionComponent = () => {
2124
}
2225
};
2326

27+
const handleCreate = () => {
28+
history.push(routes.editEmployee('0'));
29+
};
30+
31+
const handleEdit = (id: string) => {
32+
history.push(routes.editEmployee(id));
33+
};
34+
2435
React.useEffect(() => {
2536
onLoadEmployeeList();
2637
}, []);
2738

28-
return <EmployeeListComponent employeeList={employees} />;
39+
return (
40+
<EmployeeListComponent
41+
employeeList={employees}
42+
onCreate={handleCreate}
43+
onEdit={handleEdit}
44+
/>
45+
);
2946
};

0 commit comments

Comments
 (0)