@helpdice/ui 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ export type TableColumnProps<TableDataItem extends TableDataItemBase> = {
5
5
  label?: string;
6
6
  filter?: string;
7
7
  width?: number;
8
+ options?: any[];
8
9
  className?: string;
9
10
  render?: TableColumnRender<TableDataItem>;
10
11
  };
@@ -26,9 +26,10 @@ var TableBody = function TableBody(_ref) {
26
26
  setSelected = _useState2[1];
27
27
  var _useTableContext = useTableContext(),
28
28
  columns = _useTableContext.columns;
29
- var rowClickHandler = function rowClickHandler(row, index) {
30
- onRow && onRow(row, index);
31
- };
29
+ // const rowClickHandler = (row: TableDataItem, index: number) => {
30
+ // onRow && onRow(row, index)
31
+ // }
32
+
32
33
  var handleClick = function handleClick(_event, id) {
33
34
  if (readOnly) {
34
35
  return true;
@@ -72,15 +73,11 @@ var TableBody = function TableBody(_ref) {
72
73
  delete rw.table;
73
74
  delete rw.style;
74
75
  delete rw.onDragStart;
75
- var frow = Object.fromEntries(Object.entries(row).filter(function (_ref2) {
76
- var _ref3 = _slicedToArray(_ref2, 2),
77
- ky = _ref3[0],
78
- _ = _ref3[1];
79
- return ky !== '_id' && cols.map(function (col) {
80
- return col.id;
81
- }).includes(ky);
82
- }));
83
- console.log(frow);
76
+ // console.log(row);
77
+ // const frow = Object.fromEntries(
78
+ // Object.entries(row).filter(([ky, _]) => ky !== '_id' && cols.map((col: any) => col.id).includes(ky))
79
+ // ) as unknown as TableDataItem
80
+ // console.log(frow);
84
81
  var isRowSelected = selected.indexOf(row) !== -1;
85
82
  return /*#__PURE__*/React.createElement("tr", {
86
83
  draggable: rowDraggable,
@@ -98,8 +95,8 @@ var TableBody = function TableBody(_ref) {
98
95
  }, rowStyle),
99
96
  onClick: function onClick(e) {
100
97
  if (!rowDraggable) {
101
- if (rowClickHandler) {
102
- rowClickHandler(row, index);
98
+ if (onRow) {
99
+ onRow(row, index);
103
100
  } else {
104
101
  handleClick(e, row);
105
102
  }
@@ -107,7 +104,7 @@ var TableBody = function TableBody(_ref) {
107
104
  }
108
105
  }, /*#__PURE__*/React.createElement(TableCell, {
109
106
  columns: cols,
110
- row: frow,
107
+ row: rw,
111
108
  rowIndex: index,
112
109
  emptyText: emptyText,
113
110
  onCellClick: onCell
@@ -5,6 +5,7 @@ export type TableColumnProps<TableDataItem extends TableDataItemBase> = {
5
5
  label?: string;
6
6
  filter?: string;
7
7
  width?: number;
8
+ options?: any[];
8
9
  className?: string;
9
10
  render?: TableColumnRender<TableDataItem>;
10
11
  };
@@ -10,6 +10,7 @@ var TableColumn = function TableColumn(columnProps) {
10
10
  label = _ref.label,
11
11
  width = _ref.width,
12
12
  filter = _ref.filter,
13
+ options = _ref.options,
13
14
  _ref$className = _ref.className,
14
15
  className = _ref$className === void 0 ? '' : _ref$className,
15
16
  renderHandler = _ref.render;
@@ -23,12 +24,13 @@ var TableColumn = function TableColumn(columnProps) {
23
24
  updateColumn({
24
25
  label: children || label,
25
26
  filter: filter,
27
+ options: options,
26
28
  prop: safeProp,
27
29
  width: width,
28
30
  className: className,
29
31
  renderHandler: function renderHandler() {}
30
32
  });
31
- }, [children, filter, label, prop, width, className, renderHandler]);
33
+ }, [children, filter, options, label, prop, width, className, renderHandler]);
32
34
  return null;
33
35
  };
34
36
  TableColumn.displayName = 'TableColumn';
@@ -6,6 +6,7 @@ import React, { useMemo } from 'react';
6
6
  import useTheme from '../use-theme';
7
7
  import Input from '../input';
8
8
  import _ from 'lodash';
9
+ import Select from '../select';
9
10
  var makeColgroup = function makeColgroup(width, columns) {
10
11
  var unsetWidthCount = columns.filter(function (c) {
11
12
  return !c.width;
@@ -41,10 +42,7 @@ var TableHead = function TableHead(props) {
41
42
  if (!isScalableWidth) return /*#__PURE__*/React.createElement("colgroup", null);
42
43
  return makeColgroup(width, columns);
43
44
  }, [isScalableWidth, width]);
44
- var handleFilterChange = function handleFilterChange(e) {
45
- var _e$target = e.target,
46
- name = _e$target.name,
47
- value = _e$target.value;
45
+ var handleFilterChange = function handleFilterChange(name, value) {
48
46
  setFilters(function (prevFilters) {
49
47
  var updatedFilters = _extends({}, prevFilters, _defineProperty({}, name, value));
50
48
  // Call onFiltersChange to propagate filter changes to the parent
@@ -63,16 +61,19 @@ var TableHead = function TableHead(props) {
63
61
  var filterName = (_String = String(col === null || col === void 0 ? void 0 : col.label)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
64
62
  var unq_accessor = _.uniqueId(filterName);
65
63
  if (accessor === 'fixed') {
64
+ var _filters$filterName;
66
65
  // Dropdown filter for categorical data (category, status)
67
- return /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("select", {
66
+ return /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement(Select, {
68
67
  key: unq_accessor,
69
68
  name: filterName,
70
- value: filters[filterName],
71
- onChange: handleFilterChange
72
- }, /*#__PURE__*/React.createElement("option", {
73
- value: ""
69
+ value: (_filters$filterName = filters[filterName]) !== null && _filters$filterName !== void 0 ? _filters$filterName : 'All',
70
+ onChange: function onChange(newValue) {
71
+ return handleFilterChange(filterName, newValue);
72
+ }
73
+ }, /*#__PURE__*/React.createElement(Select.Option, {
74
+ value: "All"
74
75
  }, "All ", Header), options ? options.map(function (option) {
75
- return /*#__PURE__*/React.createElement("option", {
76
+ return /*#__PURE__*/React.createElement(Select.Option, {
76
77
  value: option.value
77
78
  }, option.name);
78
79
  }) : null));
@@ -81,30 +82,35 @@ var TableHead = function TableHead(props) {
81
82
  // Date filter
82
83
  return /*#__PURE__*/React.createElement("th", {
83
84
  key: unq_accessor
84
- }, /*#__PURE__*/React.createElement("input", {
85
- type: "date",
85
+ }, /*#__PURE__*/React.createElement(Input, {
86
+ htmlType: "date",
87
+ name: filterName,
88
+ value: filters[filterName],
89
+ onChange: function onChange(e) {
90
+ return handleFilterChange(filterName, e.target.value);
91
+ }
92
+ }));
93
+ }
94
+ if (accessor === 'search') {
95
+ // Text search filter
96
+ return /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement(Input, {
97
+ id: "filter-search-".concat(filterName),
98
+ htmlType: "text"
99
+ // ref={filterRefs.current[filterName]} // Dynamically set ref}
100
+ ,
86
101
  name: filterName,
102
+ style: {
103
+ height: 30,
104
+ minWidth: 160
105
+ },
87
106
  value: filters[filterName],
88
- onChange: handleFilterChange
107
+ onChange: function onChange(e) {
108
+ return handleFilterChange(filterName, e.target.value);
109
+ },
110
+ placeholder: "Search...",
111
+ fullWidth: true
89
112
  }));
90
113
  }
91
-
92
- // Text search filter for other fields (like name)
93
- return /*#__PURE__*/React.createElement("th", null, /*#__PURE__*/React.createElement(Input, {
94
- id: "filter-search-".concat(filterName),
95
- htmlType: "text"
96
- // ref={filterRefs.current[filterName]} // Dynamically set ref}
97
- ,
98
- name: filterName,
99
- style: {
100
- height: 30,
101
- minWidth: 160
102
- },
103
- value: filters[filterName],
104
- onChange: handleFilterChange,
105
- placeholder: "Search...",
106
- fullWidth: true
107
- }));
108
114
  });
109
115
  };
110
116
  return /*#__PURE__*/React.createElement(React.Fragment, null, colgroup, /*#__PURE__*/React.createElement("thead", {
@@ -1,5 +1,3 @@
1
- 'use client';
2
-
3
1
  import React from 'react';
4
2
  export var defaultToastLayout = {
5
3
  padding: '12px 16px',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helpdice/ui",
3
- "version": "1.1.8",
3
+ "version": "1.2.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "esm/index.d.ts",
6
6
  "unpkg": "dist/index.min.js",