@sphereon/ui-components.ssi-react 0.4.1-unstable.150 → 0.4.1-unstable.156

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.
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { JsonForms } from '@jsonforms/react';
4
4
  import { materialCells } from '@jsonforms/material-renderers';
5
5
  import Ajv from 'ajv';
@@ -27,8 +27,13 @@ defaultAjv.addKeyword({
27
27
  }
28
28
  });
29
29
  const FormView = (props) => {
30
- const { schema, uiSchema, validationMode = 'ValidateAndShow', renderers = jsonFormsMaterialRenderers, cells = materialCells, style, middleware, ajv = createFormViewAjv(), onFormStateChange, readonly = false, config, } = props;
30
+ const { schema, uiSchema, validationMode = 'ValidateAndShow', renderers = jsonFormsMaterialRenderers, cells = materialCells, style, middleware, onFormStateChange, readonly = false, config, } = props;
31
31
  const [data, setData] = useState(props.data);
32
+ const ajvRef = useRef(null);
33
+ if (!ajvRef.current) {
34
+ ajvRef.current = props.ajv ?? createFormViewAjv();
35
+ }
36
+ const ajv = ajvRef.current;
32
37
  useEffect(() => {
33
38
  const validate = ajv.compile(schema);
34
39
  const data = props.data;
@@ -6,6 +6,7 @@ type Props<T> = {
6
6
  data: Array<T>;
7
7
  columns: Array<ColumnHeader<T>>;
8
8
  onRowClick?: (data: Row<T>) => Promise<void>;
9
+ onRowDoubleClick?: (data: Row<T>) => Promise<void>;
9
10
  onDelete?: (rows: Array<T>) => Promise<void>;
10
11
  enableRowSelection?: boolean;
11
12
  enableRowHover?: boolean;
@@ -64,7 +64,7 @@ const toRowSelectionObject = (rows) => {
64
64
  return rowSelectionObject;
65
65
  };
66
66
  const SSITableView = (props) => {
67
- const { columns, data, enableRowSelection = false, enableRowHover = true, enableFiltering = false, enableMostRecent = false, enableResultCount = false, columnResizeMode = 'onChange', actions = [], onRowClick, onDelete, pagination, } = props;
67
+ const { columns, data, enableRowSelection = false, enableRowHover = true, enableFiltering = false, enableMostRecent = false, enableResultCount = false, columnResizeMode = 'onChange', actions = [], onRowClick, onRowDoubleClick, onDelete, pagination, } = props;
68
68
  const [rowSelection, setRowSelection] = React.useState([]);
69
69
  const [focusedRowId, setFocusedRowId] = React.useState();
70
70
  const columnHelper = createColumnHelper();
@@ -125,6 +125,9 @@ const SSITableView = (props) => {
125
125
  const onRowClicked = async (row) => {
126
126
  await onRowClick?.(row);
127
127
  };
128
+ const onRowDoubleClicked = async (row) => {
129
+ await onRowDoubleClick?.(row);
130
+ };
128
131
  const onDeleteClicked = async () => {
129
132
  await onDelete?.(rowSelection.map((row) => row.rowData));
130
133
  };
@@ -139,7 +142,7 @@ const SSITableView = (props) => {
139
142
  transform: columnResizeMode === 'onEnd' && header.column.getIsResizing()
140
143
  ? `translateX(${table.getState().columnSizingInfo.deltaOffset}px)`
141
144
  : '',
142
- } })] }, header.id))) }, headerGroup.id))) }), _jsx("tbody", { children: table.getRowModel().rows.map((row) => (_jsx(RowContainer, { enableHover: enableRowHover, onClick: () => onRowClicked(row), onMouseEnter: () => onFocusRow(row.id), onMouseLeave: () => onFocusRow(), style: { ...(row.getIsSelected() && { backgroundColor: selectionElementColors.selectedRow }) }, children: row.getVisibleCells().map((cell) => (_jsx(CellContainer, { style: {
145
+ } })] }, header.id))) }, headerGroup.id))) }), _jsx("tbody", { children: table.getRowModel().rows.map((row) => (_jsx(RowContainer, { enableHover: enableRowHover, onClick: () => onRowClicked(row), onDoubleClick: () => onRowDoubleClicked(row), onMouseEnter: () => onFocusRow(row.id), onMouseLeave: () => onFocusRow(), style: { ...(row.getIsSelected() && { backgroundColor: selectionElementColors.selectedRow }) }, children: row.getVisibleCells().map((cell) => (_jsx(CellContainer, { style: {
143
146
  ...(cell.column.columnDef.minSize && { minWidth: cell.column.columnDef.minSize }),
144
147
  ...(cell.column.columnDef.maxSize && { maxWidth: cell.column.columnDef.maxSize }),
145
148
  ...(cell.column.columnDef.size !== 0 && { width: cell.column.columnDef.size }),
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ui-components.ssi-react",
3
3
  "private": false,
4
- "version": "0.4.1-unstable.150+e27c532",
4
+ "version": "0.4.1-unstable.156+d6b27ae",
5
5
  "description": "SSI UI components for React",
6
6
  "repository": "git@github.com:Sphereon-Opensource/UI-Components.git",
7
7
  "author": "Sphereon <dev@sphereon.com>",
@@ -50,7 +50,7 @@
50
50
  "@mui/x-date-pickers": "^8.18.0",
51
51
  "@sphereon/ssi-sdk.data-store": "0.34.1-feature.SSISDK.45.94",
52
52
  "@sphereon/ssi-types": "0.34.1-feature.SSISDK.45.94",
53
- "@sphereon/ui-components.core": "0.4.1-unstable.150+e27c532",
53
+ "@sphereon/ui-components.core": "0.4.1-unstable.156+d6b27ae",
54
54
  "@tanstack/react-table": "^8.9.3",
55
55
  "ajv": "^8.17.1",
56
56
  "ajv-formats": "^3.0.1",
@@ -72,5 +72,5 @@
72
72
  "peerDependencies": {
73
73
  "react": ">= 18"
74
74
  },
75
- "gitHead": "e27c53203d953d818206ce6f82569a5c2f7302e1"
75
+ "gitHead": "d6b27ae43b9848ce42f6ac5b26a3c6f7e2faf02e"
76
76
  }