imbric-theme 0.3.8 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@ import Paragraph from '../Paragraph'
10
10
  export const LinkItem = ({ children, size, color, getStyles, isHref }) => {
11
11
  return (
12
12
  <Link href={isHref} passHref>
13
- <a className={getStyles('link', ['color'])}>
13
+ <a target="_blank" className={getStyles('link', ['color'])}>
14
14
  <Paragraph size={size} color={color} weight="semibold" isInline>
15
15
  {children}
16
16
  </Paragraph>
@@ -78,7 +78,7 @@ export const Modal = ({
78
78
  {titleModal}
79
79
  </Heading>
80
80
  </div>
81
- <Container>{children}</Container>
81
+ <Container><div className={getStyles('container')}>{children}</div></Container>
82
82
  </div>
83
83
  </div>
84
84
  )
@@ -57,11 +57,19 @@
57
57
  max-width: 465px;
58
58
  height: auto;
59
59
  border-radius: var(--border-radius-sm);
60
+ /* max-height: 100%;
61
+ overflow: auto; */
60
62
  }
61
63
 
62
64
  .heading {
63
65
  flex-direction: row-reverse;
64
66
  }
67
+
68
+ .container {
69
+ max-height: 600px;
70
+ overflow: auto;
71
+ min-width: 100%;
72
+ }
65
73
  }
66
74
 
67
75
  @keyframes fadeInModal {
package/hook/useTable.js CHANGED
@@ -1,45 +1,54 @@
1
- import { useState, useEffect } from "react";
2
-
3
- const calculateRange = (data, rowsPerPage) => {
4
- const range = []
5
- if (!data) {
6
- var num = Math.ceil(1);
7
- } else {
8
- num = Math.ceil(data.length / rowsPerPage);
9
-
10
- }
11
-
12
- // const num = Math.ceil(data.length / rowsPerPage);
13
-
14
- // let i = 1;
15
- for (let i = 1; i <= num; i++) {
16
- range.push(i);
17
- }
18
- return range;
19
- };
20
-
21
- const sliceData = (data, page, rowsPerPage) => {
22
-
23
- if (!data) {
24
- return data = [];
25
- } else {
26
- return data.slice((page - 1) * rowsPerPage, page * rowsPerPage);
27
- }
28
- };
29
-
30
- const useTable = (data, page, rowsPerPage) => {
31
- const [tableRange, setTableRange] = useState([]);
32
- const [slice, setSlice] = useState([]);
33
-
34
- useEffect(() => {
35
- const range = calculateRange(data, rowsPerPage);
36
- setTableRange([...range]);
37
-
38
- const slice = sliceData(data, page, rowsPerPage);
39
- setSlice([...slice]);
40
- }, [data, setTableRange, page, setSlice, rowsPerPage]);
41
-
42
- return { slice, range: tableRange };
43
- };
44
-
45
- export default useTable;
1
+ import { useState, useEffect } from 'react'
2
+
3
+ const calculateRange = (dataTotalQueryCount, data, rowsPerPage) => {
4
+ const range = []
5
+ if (!data) {
6
+ var num = Math.ceil(1)
7
+ } else {
8
+ // num = Math.ceil(data.length / rowsPerPage)
9
+ num = Math.ceil(dataTotalQueryCount / rowsPerPage)
10
+ }
11
+
12
+ // const num = Math.ceil(data.length / rowsPerPage);
13
+
14
+ // let i = 1;
15
+ for (let i = 1; i <= num; i++) {
16
+ range.push(i)
17
+ }
18
+ return range
19
+ }
20
+
21
+ // const sliceData = (data, page, rowsPerPage) => {
22
+ // if (!data) {
23
+ // return (data = [])
24
+ // } else {
25
+ // // return data.slice((page - 1) * rowsPerPage, page * rowsPerPage)
26
+ // return data
27
+ // }
28
+ // }
29
+
30
+ const sliceData = (data) => {
31
+ if (!data) {
32
+ return (data = [])
33
+ } else {
34
+ // return data.slice((page - 1) * rowsPerPage, page * rowsPerPage)
35
+ return data
36
+ }
37
+ }
38
+
39
+ const useTable = (dataTotalQueryCount, data, page, rowsPerPage) => {
40
+ const [tableRange, setTableRange] = useState([])
41
+ const [slice, setSlice] = useState([])
42
+
43
+ useEffect(() => {
44
+ const range = calculateRange(dataTotalQueryCount, data, rowsPerPage)
45
+ setTableRange([...range])
46
+
47
+ const slice = sliceData(data, page, rowsPerPage)
48
+ setSlice([...slice])
49
+ }, [dataTotalQueryCount, data, setTableRange, page, setSlice, rowsPerPage])
50
+
51
+ return { slice, range: tableRange }
52
+ }
53
+
54
+ export default useTable
@@ -16,7 +16,7 @@ import LoadingError from '../../molecules/LoadingError'
16
16
  // import useStateDate from '../../hook/useStateDate';
17
17
 
18
18
 
19
- export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isLayoutDate, isViewRange, isViewAddColumn, isViewDownloadDoc, handleAddColumn, handleSelectRange, handleDownloadExcel }) => {
19
+ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns, isLayoutDate, isViewRange, isViewAddColumn, isViewDownloadDoc, handleAddColumn, handleSelectRange, handleDownloadExcel, labelDinamicSelect, placeholderDinamicSelect, labelSinceDateRange, labelTillDateRange }) => {
20
20
 
21
21
  const [tableData, setTableData] = useState(optionsData);
22
22
  const [columnsData, setColumnsData] = useState(opColumns);
@@ -94,6 +94,8 @@ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns,
94
94
  <DatePicker
95
95
  isLayoutDate={isLayoutDate}
96
96
  onChangeRange={handleSelectRange}
97
+ sinceDateRange={labelSinceDateRange}
98
+ tillDateRange={labelTillDateRange}
97
99
  />
98
100
  </div>
99
101
  ) : null}
@@ -102,13 +104,13 @@ export const DynamicTable = ({ getStyles, optionsData, opColumns, opAddColumns,
102
104
 
103
105
  {isViewAddColumn ? (
104
106
  <div className={getStyles('opFunctionBox3')}>
105
- <Label>Mostrar u ocultar columnas</Label>
107
+ <Label>{labelDinamicSelect}</Label>
106
108
  <DynamicSelect
107
109
  isMulti
108
110
  isInline
109
111
  onChange={handleAddColumn}
110
112
  optionsSelect={addColumsData}
111
- placeholder='Seleccionar columnas'
113
+ placeholder={placeholderDinamicSelect}
112
114
  />
113
115
  </div>
114
116
  ) : null}
@@ -156,6 +158,10 @@ DynamicTable.propTypes = {
156
158
  isLayoutDate: PropTypes.string,
157
159
  handleSelectRange: PropTypes.func,
158
160
  handleDownloadExcel: PropTypes.func,
161
+ labelDinamicSelect: PropTypes.string,
162
+ placeholderDinamicSelect: PropTypes.string,
163
+ labelSinceDateRange: PropTypes.string,
164
+ labelTillDateRange: PropTypes.string,
159
165
  }
160
166
 
161
167
  DynamicTable.defaultProps = {
@@ -167,6 +173,10 @@ DynamicTable.defaultProps = {
167
173
  isLayoutDate: 'Calendar',
168
174
  handleSelectRange: () => { },
169
175
  handleDownloadExcel: () => { },
176
+ labelDinamicSelect: 'Mostrar u ocultar columnas',
177
+ placeholderDinamicSelect: 'Seleccionar columnas',
178
+ labelSinceDateRange: 'Desde',
179
+ labelTillDateRange: 'Hasta',
170
180
  }
171
181
 
172
182
  export default withStyles(styles)(DynamicTable)
@@ -27,6 +27,8 @@ export default {
27
27
  isViewRange: true,
28
28
  isViewAddColumn: true,
29
29
  isViewDownloadDoc: true,
30
+ labelDinamicSelect: 'Mostrar u ocultar columnas',
31
+ placeholderDinamicSelect: 'Seleccionar columnas',
30
32
  },
31
33
  argTypes: {
32
34
  // types: getOptionsArgTypes(options.types),
@@ -2,11 +2,32 @@ import React from 'react'
2
2
  import PropTypes from 'prop-types'
3
3
  import styles from './Navbar.module.css'
4
4
  import withStyles from '../../hocs/withStyles'
5
+ import { useRouter } from "next/router";
6
+ import Link from 'next/link'
7
+ import DynamicSelect from '../../molecules/DynamicSelect'
5
8
 
6
9
  import Heading from '../../atoms/Heading/Heading'
7
10
  import Tabs from '../../molecules/Tabs/Tabs'
11
+ import Icon from '../../atoms/Icon'
12
+ import { options } from './constants'
13
+
14
+ export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkLogout, defaultValueLanguage, optionsSelectLanguage, handleChangeLanguage }) => {
15
+
16
+
17
+ const router = useRouter();
18
+
19
+ const handleClick = (e, path) => {
20
+
21
+ console.log("I clicked on the About Page" + path);
22
+
23
+ router.push({
24
+ pathname: path,
25
+ })
26
+
27
+
28
+ };
29
+
8
30
 
9
- export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkLogout }) => {
10
31
  return (
11
32
  <>
12
33
  <header className={getStyles('navbar')}>
@@ -52,16 +73,61 @@ export const Navbar = ({ getStyles, viewTabsNav, viewOptionsNav, children, linkL
52
73
  />
53
74
 
54
75
 
55
- {/* <div className={getStyles('navbar__title', 'navbar__item')}>Taksee</div> */}
56
- {/* <div className={getStyles('navbar__item')}>Legal</div>
57
- <div className={getStyles('navbar__item')}>User Guide</div> */}
58
-
59
76
  {viewOptionsNav ? (
60
- <div onClick={linkLogout} className={getStyles('navbar__item', { 'is-playground': viewTabsNav })}>
61
- Logout
77
+ <div className={getStyles('navbar__actions')}>
78
+ {/* <div className={getStyles('navbar__item')}>Legal</div>
79
+ <div className={getStyles('navbar__item')}>User Guide</div> */}
80
+
81
+ {options.map((item, index) => (
82
+ <Icon
83
+ key={index}
84
+ size='lg'
85
+ name={item.icon}
86
+ color='highlight'
87
+ background='transparent'
88
+ onClick={(e) => handleClick(e, item.href)}
89
+ />
90
+ ))}
91
+
92
+ <DynamicSelect
93
+ isClearable={false}
94
+ // defaultValue={{
95
+ // label: 'ES',
96
+ // value: 'es'
97
+ // }}
98
+ defaultValue={defaultValueLanguage}
99
+ onChange={handleChangeLanguage}
100
+ optionsSelect={optionsSelectLanguage}
101
+ // optionsSelect={[
102
+ // {
103
+ // label: 'ES',
104
+ // value: 'es'
105
+ // },
106
+ // {
107
+ // label: 'EN',
108
+ // value: 'en'
109
+ // }
110
+ // ]}
111
+ />
112
+
113
+ <Icon
114
+ size='lg'
115
+ name='logout'
116
+ color='highlight'
117
+ background='transparent'
118
+ onClick={linkLogout}
119
+ />
120
+
62
121
  </div>
122
+
63
123
  ) : null}
64
124
 
125
+ {/* {viewOptionsNav ? (
126
+ <div onClick={linkLogout} className={getStyles('navbar__item')}>
127
+ Logout
128
+ </div>
129
+ ) : null} */}
130
+
65
131
 
66
132
  </header>
67
133
 
@@ -76,6 +142,7 @@ Navbar.propTypes = {
76
142
  viewTabsNav: PropTypes.bool,
77
143
  viewOptionsNav: PropTypes.bool,
78
144
  linkLogout: PropTypes.func,
145
+ handleChange: PropTypes.func,
79
146
  }
80
147
 
81
148
  Navbar.defaultProps = {
@@ -27,4 +27,9 @@
27
27
  padding: 0.67em 1.5em;
28
28
  cursor: pointer;
29
29
  vertical-align: middle;
30
+ }
31
+
32
+ .navbar__actions {
33
+ display: flex;
34
+ align-items: center;
30
35
  }
@@ -0,0 +1,35 @@
1
+ export const options = [
2
+ {
3
+ active: false,
4
+ href: '#',
5
+ icon: 'legal',
6
+ text: 'Legal',
7
+ view: true,
8
+ viewSubMenu: true,
9
+ },
10
+ {
11
+ active: false,
12
+ href: '/home',
13
+ icon: 'info',
14
+ text: 'User Guide',
15
+ view: true,
16
+ viewSubMenu: false,
17
+ },
18
+ {
19
+ active: false,
20
+ href: '/home',
21
+ icon: 'profile',
22
+ text: 'My profile',
23
+ view: true,
24
+ viewSubMenu: false,
25
+ },
26
+ // {
27
+ // active: false,
28
+ // href: '/home',
29
+ // icon: 'logout',
30
+ // text: 'Salir',
31
+ // view: true,
32
+ // viewSubMenu: false,
33
+ // },
34
+
35
+ ]
@@ -7,16 +7,20 @@ import withStyles from '../../hocs/withStyles'
7
7
  import Paragraph from '../../atoms/Paragraph'
8
8
  import Input from '../../atoms/Input'
9
9
  import Icon from '../../atoms/Icon'
10
+ import DynamicSelect from '../../molecules/DynamicSelect'
10
11
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
11
12
 
12
13
 
13
- export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChangeInput, columnsData }) => {
14
+ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChangeInput, onChangeSelect, columnsData, opSelect }) => {
14
15
 
15
16
  const [sortable, setSortable] = useState(true);
16
17
  const [accessor, setAccessor] = useState("");
17
18
  const [sortField, setSortField] = useState("");
18
19
  const [order, setOrder] = useState("asc");
19
20
 
21
+ // const [optionsSelect, setOptionsSelect] = useState(opSelect);
22
+
23
+
20
24
  const handleSortingChange = (accessor) => {
21
25
  const sortOrder =
22
26
  accessor === sortField && order === "asc" ? "desc" : "asc";
@@ -63,24 +67,24 @@ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChang
63
67
 
64
68
  {item.sortable ?
65
69
 
66
- cl === "default" ?
67
- <Icon
68
- name="angleUpDown"
69
- size="xs"
70
- />
71
- : cl === "" ? null
72
-
73
- : cl === "angleDown"
74
- ? <Icon
75
- name="angleDown"
76
- size="xs"
77
- />
78
-
79
- : <Icon
80
- name="angleUp"
81
- size="xs"
82
- />
83
- : null
70
+ cl === "default" ?
71
+ <Icon
72
+ name="angleUpDown"
73
+ size="xs"
74
+ />
75
+ : cl === "" ? null
76
+
77
+ : cl === "angleDown"
78
+ ? <Icon
79
+ name="angleDown"
80
+ size="xs"
81
+ />
82
+
83
+ : <Icon
84
+ name="angleUp"
85
+ size="xs"
86
+ />
87
+ : null
84
88
  }
85
89
  </span>
86
90
 
@@ -89,14 +93,25 @@ export const ColumnTable = ({ getStyles, handleSorting, columnUppercase, onChang
89
93
 
90
94
  {item.viewIsFilter ? (
91
95
 
92
- <Input
93
- isInputFilter
94
- id={item.idInput}
95
- type={item.typeFilter}
96
- name={item.nameInput}
97
- onChange={onChangeInput}
98
- placeholder={item.placeholder}
99
- />) : null
96
+ item.typeFilter === 'select' ?
97
+ <DynamicSelect
98
+ isInline
99
+ onChange={onChangeSelect}
100
+ optionsSelect={opSelect}
101
+ placeholder={item.placeholder}
102
+ />
103
+ :
104
+ <Input
105
+ isInputFilter
106
+ id={item.idInput}
107
+ type={item.typeFilter}
108
+ name={item.nameInput}
109
+ onChange={onChangeInput}
110
+ placeholder={item.placeholder}
111
+ />
112
+ )
113
+
114
+ : null
100
115
  }
101
116
 
102
117
  </th>
@@ -116,6 +131,7 @@ ColumnTable.propTypes = {
116
131
  getStyles: PropTypes.func.isRequired,
117
132
  columnUppercase: PropTypes.bool,
118
133
  onChangeInput: PropTypes.func,
134
+ onChangeSelect: PropTypes.func,
119
135
  }
120
136
 
121
137
  ColumnTable.defaultProps = {
@@ -123,6 +139,7 @@ ColumnTable.defaultProps = {
123
139
  handleSorting: () => { },
124
140
  columnUppercase: false,
125
141
  onChangeInput: () => { },
142
+ onChangeSelect: () => { },
126
143
  }
127
144
 
128
145
  export default withStyles(styles)(ColumnTable)
@@ -2,6 +2,8 @@
2
2
  padding: 12px 15px;
3
3
  text-align: left;
4
4
  color: var(--color-font-base);
5
+ display: table-cell;
6
+ vertical-align: top;
5
7
  }
6
8
 
7
9
  .column-uppercase {
@@ -108,4 +108,10 @@ export const options = {
108
108
  },
109
109
  ],
110
110
 
111
+ opSelect: [
112
+ { value: 'chocolate', label: 'Chocolate' },
113
+ { value: 'strawberry', label: 'Strawberry' },
114
+ { value: 'vanilla', label: 'Vanilla' }
115
+ ]
116
+
111
117
  }
@@ -33,7 +33,7 @@ import {
33
33
 
34
34
 
35
35
 
36
- export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
36
+ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange, sinceDateRange, tillDateRange }) => {
37
37
 
38
38
  const [isShowCalendar, setShowCalendar] = useState(false);
39
39
 
@@ -96,7 +96,7 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
96
96
  !isShowCalendar ?
97
97
  <div className={getStyles('date-picker-input')}>
98
98
  <div>
99
- <Label>Desde</Label>
99
+ <Label>{sinceDateRange}</Label>
100
100
  <Input
101
101
  isInline
102
102
  id="startDate"
@@ -108,7 +108,7 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
108
108
  </div>
109
109
 
110
110
  <div>
111
- <Label>Hasta</Label>
111
+ <Label>{tillDateRange}</Label>
112
112
  <Input
113
113
  isInline
114
114
  id="endDate"
@@ -224,13 +224,17 @@ export const DatePicker = ({ getStyles, isLayoutDate, onChangeRange }) => {
224
224
  DatePicker.propTypes = {
225
225
  getStyles: PropTypes.func.isRequired,
226
226
  isLayoutDate: PropTypes.oneOf(options.typeLayoutDate),
227
- onChangeRange: PropTypes.func
227
+ onChangeRange: PropTypes.func,
228
+ sinceDateRange: PropTypes.string,
229
+ tillDateRange: PropTypes.string,
228
230
  }
229
231
 
230
232
  DatePicker.defaultProps = {
231
233
  getStyles: () => { },
232
234
  isLayoutDate: 'Calendar',
233
235
  onChangeRange: () => { },
236
+ sinceDateRange: 'Desde',
237
+ tillDateRange: 'Hasta',
234
238
  }
235
239
 
236
240
  export default withStyles(styles)(DatePicker)
@@ -89,7 +89,7 @@ export const DynamicSelect = ({ getStyles, optionsSelect, defaultValue, placehol
89
89
 
90
90
  DynamicSelect.propTypes = {
91
91
  getStyles: PropTypes.func.isRequired,
92
- defaultValue: PropTypes.string,
92
+ defaultValue: PropTypes.object,
93
93
  placeholder: PropTypes.string,
94
94
  isMulti: PropTypes.bool,
95
95
  isClearable: PropTypes.bool,
@@ -103,7 +103,6 @@ DynamicSelect.propTypes = {
103
103
 
104
104
  DynamicSelect.defaultProps = {
105
105
  getStyles: () => { },
106
- defaultValue: '',
107
106
  placeholder: 'seleccionar',
108
107
  isMulti: false,
109
108
  isClearable: true,
@@ -14,7 +14,7 @@ export default {
14
14
  component: DynamicSelect,
15
15
  args: {
16
16
  optionsSelect: options.optionsSelect,
17
- defaultValue: '',
17
+ defaultValue: options.optionsSelect[0],
18
18
  placeholder: 'seleccionar',
19
19
  isMulti: false,
20
20
  isClearable: true,
@@ -4,30 +4,51 @@ import PropTypes from 'prop-types'
4
4
  import styles from './FooterTable.module.css'
5
5
  import { options } from './constants'
6
6
  import withStyles from '../../hocs/withStyles'
7
+ import DynamicSelect from '../../molecules/DynamicSelect'
7
8
 
8
- export const FooterTable = ({ getStyles, range, setPage, page, slice }) => {
9
+
10
+ export const FooterTable = ({ getStyles, range, setPage, setDataPage, page, slice, placeholderDinamicSelect, handleResultsForPage }) => {
9
11
  useEffect(() => {
10
12
  if (slice.length < 1 && page !== 1) {
11
13
  setPage(page - 1);
12
14
  }
13
15
  }, [slice, page, setPage]);
14
16
 
17
+
15
18
  return (
16
19
  <div className={getStyles('footer-table')}>
17
20
 
18
21
  <div className={styles.tableFooter}>
19
22
  {range.map((el, index) => (
20
- <button
21
- key={index}
22
- className={`${styles.button} ${page === el ? styles.activeButton : styles.inactiveButton
23
- }`}
24
- onClick={() => setPage(el)}
25
- >
26
- {el}
27
- </button>
23
+
24
+ <>
25
+ <button
26
+ key={index}
27
+ className={`${styles.button} ${page === el ? styles.activeButton : styles.inactiveButton
28
+ }`}
29
+ onClick={() => { setPage(el); setDataPage(el) }}
30
+
31
+ onChange={item => { handleSelectRange(item); onChangeRange(item); }}
32
+
33
+ >
34
+ {el}
35
+ </button>
36
+
37
+
38
+ </>
39
+
28
40
  ))}
29
41
  </div>
30
42
 
43
+ <DynamicSelect
44
+ isInline
45
+ onChange={handleResultsForPage}
46
+ optionsSelect={options.opResultsForPage}
47
+ placeholder={placeholderDinamicSelect}
48
+ isClearable={false}
49
+ defaultValue= { {value: 10, label: '10'} }
50
+ />
51
+
31
52
  </div>
32
53
 
33
54
 
@@ -37,11 +58,17 @@ export const FooterTable = ({ getStyles, range, setPage, page, slice }) => {
37
58
  FooterTable.propTypes = {
38
59
  // children: PropTypes.node.isRequired,
39
60
  getStyles: PropTypes.func.isRequired,
61
+ setDataPage: PropTypes.func,
62
+ placeholderDinamicSelect: PropTypes.string,
63
+ handleResultsForPage: PropTypes.func
40
64
  // type: PropTypes.oneOf(options.types),
41
65
  }
42
66
 
43
67
  FooterTable.defaultProps = {
44
68
  getStyles: () => { },
69
+ setDataPage: () => { },
70
+ handleResultsForPage: () => { },
71
+ placeholderDinamicSelect: 'resultados por pagina'
45
72
  }
46
73
 
47
74
  export default withStyles(styles)(FooterTable)
@@ -4,14 +4,14 @@
4
4
 
5
5
  .tableFooter {
6
6
  background-color: #f1f1f1;
7
- padding: 8px 0px;
7
+ padding: 4px 0px;
8
8
  width: 100%;
9
9
  font-weight: 500;
10
10
  text-align: left;
11
11
  font-size: 16px;
12
12
  color: #2c3e50;
13
- border-bottom-left-radius: 15px;
14
- border-bottom-right-radius: 15px;
13
+ border-bottom-left-radius: 5px;
14
+ border-bottom-right-radius: 0px;
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: center;
@@ -19,7 +19,7 @@
19
19
 
20
20
  .button {
21
21
  border: none;
22
- padding: 7px 14px;
22
+ padding: 6px 12px;
23
23
  border-radius: 10px;
24
24
  cursor: pointer;
25
25
  margin-right: 4px;
@@ -28,7 +28,7 @@
28
28
 
29
29
  .activeButton {
30
30
  color: white;
31
- background: #185adb;
31
+ background: #00A3FF;
32
32
  }
33
33
 
34
34
  .inactiveButton {
@@ -1 +1,9 @@
1
- export const options = { types: [] }
1
+ export const options =
2
+ {
3
+ opResultsForPage: [
4
+ { value: 5, label: '5' },
5
+ { value: 10, label: '10' },
6
+ { value: 20, label: '20' },
7
+ { value: 50, label: '50' },
8
+ ]
9
+ }
@@ -9,7 +9,17 @@ import Moment from 'react-moment'
9
9
  import Icon from '../../atoms/Icon'
10
10
  import { Horizontal, Vertical } from '../../layout/Spacer/components'
11
11
 
12
- export const RowTable = ({ getStyles, slice, columnsData }) => {
12
+ export const RowTable = ({ getStyles, slice, columnsData, onClickActionEdit, onClickActionSendEmail, onClickActionDelete }) => {
13
+
14
+
15
+
16
+
17
+ // const handleEditStaff = (e, item) => {
18
+ // console.log(item)
19
+ // console.log(e)
20
+ // }
21
+
22
+
13
23
  return (
14
24
  <div className={getStyles('tbl-content')}>
15
25
  <table className={getStyles('table')} cellPadding="0" cellSpacing="0" border="0">
@@ -22,28 +32,46 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
22
32
  (
23
33
 
24
34
 
25
- itemTd.subAccessor === 'action' ?
35
+ itemTd.subAccessor === 'action'
36
+
37
+ ?
26
38
 
27
39
  <td className={getStyles('td')} key={[itemTd.accessor]}>
28
40
 
29
41
  <Icon
30
42
  background="base"
31
43
  name="settings"
32
- onClick={function noRefCheck() { }}
44
+ onClick={(e) => { onClickActionEdit(e, item) }}
45
+ />
46
+ <Horizontal size="xs" />
47
+ <Icon
48
+ background="base"
49
+ name="arrowUp"
50
+ // onClick={(e) => onClickEdit(e, item)}
51
+ onClick={e => { onClickActionSendEmail(e, item) }}
33
52
  />
34
53
  <Horizontal size="xs" />
35
54
  <Icon
36
55
  background="base"
37
56
  name="trash"
38
- onClick={function noRefCheck() { }}
57
+ // onClick={(e) => onClickEdit(e, item)}
58
+ onClick={e => { onClickActionDelete(e, item) }}
39
59
  />
40
- </td> :
60
+ </td>
61
+
62
+ :
63
+
64
+ itemTd.subAccessor !== ''
65
+
66
+ ?
41
67
 
42
- itemTd.subAccessor !== '' ?
68
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td>
43
69
 
44
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor][itemTd.subAccessor]}</td> :
70
+ :
45
71
 
46
- itemTd.typeFilter === 'date' ?
72
+ itemTd.typeFilter === 'date'
73
+
74
+ ?
47
75
 
48
76
  <td className={getStyles('td')} key={[itemTd.accessor]}>
49
77
  <Moment format="DD/MM/YYYY hh:mm:ss">
@@ -51,19 +79,52 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
51
79
  </Moment>
52
80
  </td>
53
81
 
54
- : itemTd.typeFilter === 'number' ?
82
+ :
55
83
 
56
- itemTd.subTypeFilter ?
84
+ itemTd.typeFilter === 'select'
57
85
 
58
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} €</td>
59
- :
60
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
86
+ ?
87
+
88
+ itemTd.optionsSelect.map((itemSelect) => (
89
+
90
+
91
+ item[itemTd.accessor] === itemSelect.value ?
92
+
93
+ <td className={getStyles('td')} key={[itemTd.accessor]}>
94
+ {itemSelect.label}
95
+ </td>
96
+
97
+ :
98
+
99
+ null
100
+ ))
61
101
 
62
- : itemTd.subTypeFilter ?
102
+ :
103
+
104
+ itemTd.typeFilter === 'number'
105
+
106
+ ?
107
+
108
+ itemTd.subTypeFilter
109
+
110
+ ?
111
+
112
+ itemTd.characterExtra === 'km'
113
+ ?
114
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{(item[itemTd.accessor]/1000).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
115
+ :
116
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toFixed(2).toString().replace(/\./g, ',')} {itemTd.characterExtra}</td>
117
+ :
118
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
63
119
 
64
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} €</td>
65
120
  :
66
- <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
121
+
122
+ itemTd.subTypeFilter
123
+
124
+ ?
125
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor].toString().replace(/\./g, ',').slice(0, 5)} {itemTd.characterExtra}</td>
126
+ :
127
+ <td className={getStyles('td')} key={[itemTd.accessor]}>{item[itemTd.accessor]}</td>
67
128
 
68
129
  ) : null
69
130
  ))}
@@ -79,10 +140,14 @@ export const RowTable = ({ getStyles, slice, columnsData }) => {
79
140
  RowTable.propTypes = {
80
141
  getStyles: PropTypes.func.isRequired,
81
142
  type: PropTypes.oneOf(options.types),
143
+ onClickActionEdit: PropTypes.func,
144
+ onClickActionSendEmail: PropTypes.func,
145
+ onClickActionDelete: PropTypes.func
82
146
  }
83
147
 
84
148
  RowTable.defaultProps = {
85
149
  getStyles: () => { },
150
+ onClickActionEdit: () => { },
86
151
  }
87
152
 
88
153
  export default withStyles(styles)(RowTable)
@@ -1,3 +1,9 @@
1
+ export const optionsSelect = [
2
+ { value: '', label: 'Todos' },
3
+ { value: 1, label: 'Activo' },
4
+ { value: -1, label: 'Dado de baja' }
5
+ ]
6
+
1
7
  export const options = {
2
8
 
3
9
  bookings: [
@@ -5,7 +11,7 @@ export const options = {
5
11
  id: 346248956,
6
12
  idUser: 146280,
7
13
  idAuthorization: 817457,
8
- status: 30,
14
+ status: 1,
9
15
  origin: {
10
16
  addressField: "Cines Embajadores, Glorieta Sta. María de la Cabeza, 5, 28045 Madrid",
11
17
  lat: 40.40068,
@@ -21,6 +27,7 @@ export const options = {
21
27
  paymentMethod: 50,
22
28
  entryChannel: 15,
23
29
  idSupplierFleet: 57,
30
+ distanceMeters: 22044,
24
31
  idSupplier: 57,
25
32
  distanceMeters: 10501,
26
33
  durationMinutes: 0,
@@ -69,7 +76,7 @@ export const options = {
69
76
  id: 346248955,
70
77
  idUser: 146280,
71
78
  idAuthorization: 817457,
72
- status: 30,
79
+ status: 1,
73
80
  origin: {
74
81
  addressField: "Estación de Chamartín, Madrid, España",
75
82
  lat: 40.47237,
@@ -83,6 +90,7 @@ export const options = {
83
90
  timeBookingStartRealTimestamp: 1653559749000,
84
91
  asap: true,
85
92
  paymentMethod: 50,
93
+ distanceMeters: 22044,
86
94
  entryChannel: 15,
87
95
  idSupplierFleet: 57,
88
96
  idSupplier: 57,
@@ -133,7 +141,7 @@ export const options = {
133
141
  id: 346248954,
134
142
  idUser: 146280,
135
143
  idAuthorization: 817457,
136
- status: 30,
144
+ status: -1,
137
145
  origin: {
138
146
  addressField: "Cines Embajadores, Glorieta Sta. María de la Cabeza, 5, 28045 Madrid",
139
147
  lat: 40.40068,
@@ -159,6 +167,7 @@ export const options = {
159
167
  idSupplierTaxi: "11",
160
168
  idSupplierService: "15826",
161
169
  cancelledWithCharge: false,
170
+ distanceMeters: 22044,
162
171
  priceCustomer: "23.00000",
163
172
  priceSupplier: "23.00000",
164
173
  phoneNumberSupplier: "676800672",
@@ -204,7 +213,7 @@ export const options = {
204
213
  title: 'Fecha',
205
214
  viewIsFilter: true,
206
215
  typeFilter: 'date',
207
- subTypeFilter: false,
216
+ subTypeFilter: true,
208
217
  idInput: 'fecha',
209
218
  nameInput: 'Fecha',
210
219
  placeholder: 'Fecha'
@@ -259,7 +268,36 @@ export const options = {
259
268
  subTypeFilter: true,
260
269
  idInput: 'precio',
261
270
  nameInput: 'Precio',
262
- placeholder: 'Precio'
271
+ placeholder: 'Precio',
272
+ characterExtra: '€'
273
+ },
274
+ {
275
+ accessor: 'distanceMeters',
276
+ subAccessor: '',
277
+ activeView: true,
278
+ idInput: 'distanceMeters',
279
+ nameInput: 'distanceMeters',
280
+ placeholder: 'Distancia (km)',
281
+ sortable: true,
282
+ subTypeFilter: false,
283
+ title: 'Distancia (km)',
284
+ typeFilter: 'number',
285
+ viewIsFilter: true,
286
+ characterExtra: 'km',
287
+ },
288
+ {
289
+ accessor: 'status',
290
+ subAccessor: '',
291
+ activeView: true,
292
+ idInput: 'status',
293
+ nameInput: 'Estado',
294
+ placeholder: 'Estado',
295
+ sortable: true,
296
+ subTypeFilter: false,
297
+ title: 'Estado',
298
+ typeFilter: 'select',
299
+ optionsSelect: optionsSelect,
300
+ viewIsFilter: true,
263
301
  },
264
302
  {
265
303
  activeView: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imbric-theme",
3
- "version": "0.3.8",
3
+ "version": "0.4.1",
4
4
  "description": "Components library IMBRIC",
5
5
  "private": false,
6
6
  "main": "index.js",