@dxos/react-ui-table 0.7.5-labs.e27f9b9 → 0.7.5-labs.f400bbc

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.
Files changed (66) hide show
  1. package/dist/lib/browser/index.mjs +24 -1
  2. package/dist/lib/browser/index.mjs.map +3 -3
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +24 -1
  5. package/dist/lib/node/index.cjs.map +3 -3
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +24 -1
  8. package/dist/lib/node-esm/index.mjs.map +3 -3
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/_deprecated/components/Cell/Cell.d.ts +2 -2
  11. package/dist/types/src/_deprecated/components/Cell/Cell.d.ts.map +1 -1
  12. package/dist/types/src/_deprecated/components/Cell/CellCombobox.d.ts +1 -2
  13. package/dist/types/src/_deprecated/components/Cell/CellCombobox.d.ts.map +1 -1
  14. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.d.ts +2 -3
  15. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.d.ts.map +1 -1
  16. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts +6 -7
  17. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnMenu.stories.d.ts.map +1 -1
  18. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.d.ts +1 -2
  19. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.d.ts.map +1 -1
  20. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts +6 -7
  21. package/dist/types/src/_deprecated/components/ColumnMenu/ColumnSettings.stories.d.ts.map +1 -1
  22. package/dist/types/src/_deprecated/components/Table/Table.d.ts +5 -5
  23. package/dist/types/src/_deprecated/components/Table/Table.d.ts.map +1 -1
  24. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts +8 -9
  25. package/dist/types/src/_deprecated/components/Table/Table.stories.d.ts.map +1 -1
  26. package/dist/types/src/_deprecated/components/Table/TableBody.d.ts +1 -2
  27. package/dist/types/src/_deprecated/components/Table/TableBody.d.ts.map +1 -1
  28. package/dist/types/src/_deprecated/components/Table/TableContext.d.ts +1 -1
  29. package/dist/types/src/_deprecated/components/Table/TableContext.d.ts.map +1 -1
  30. package/dist/types/src/_deprecated/components/Table/TableHead.d.ts +1 -2
  31. package/dist/types/src/_deprecated/components/Table/TableHead.d.ts.map +1 -1
  32. package/dist/types/src/_deprecated/schema/Schema.stories.d.ts +2 -3
  33. package/dist/types/src/_deprecated/schema/Schema.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +1 -2
  35. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  36. package/dist/types/src/components/Table/ColumnSettings.d.ts +1 -2
  37. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  38. package/dist/types/src/components/Table/CreateRefPanel.d.ts +1 -2
  39. package/dist/types/src/components/Table/CreateRefPanel.d.ts.map +1 -1
  40. package/dist/types/src/components/Table/RefPanel.d.ts +1 -2
  41. package/dist/types/src/components/Table/RefPanel.d.ts.map +1 -1
  42. package/dist/types/src/components/Table/RowActionsMenu.d.ts +1 -2
  43. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  44. package/dist/types/src/components/Table/Table.d.ts +1 -1
  45. package/dist/types/src/components/Table/Table.stories.d.ts +1 -4
  46. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +1 -2
  48. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  49. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts +1 -2
  50. package/dist/types/src/components/TableToolbar/TableToolbar.d.ts.map +1 -1
  51. package/dist/types/src/components/testing.d.ts +11 -10
  52. package/dist/types/src/components/testing.d.ts.map +1 -1
  53. package/dist/types/src/hooks/useTableModel.d.ts.map +1 -1
  54. package/dist/types/src/types/table.d.ts +17 -14
  55. package/dist/types/src/types/table.d.ts.map +1 -1
  56. package/package.json +31 -30
  57. package/src/_deprecated/schema/Schema.stories.tsx +1 -1
  58. package/src/components/Table/Table.stories.tsx +22 -23
  59. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +1 -1
  60. package/src/hooks/useTableModel.ts +21 -0
  61. package/src/model/table-model.ts +1 -1
  62. package/src/playwright/smoke.spec.ts +3 -3
  63. package/src/util/table.ts +1 -1
  64. package/dist/types/src/playwright/playwright.config.d.ts +0 -3
  65. package/dist/types/src/playwright/playwright.config.d.ts.map +0 -1
  66. /package/src/playwright/{playwright.config.ts → playwright.config.cts} +0 -0
@@ -2,10 +2,13 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { effect } from '@preact/signals-core';
5
6
  import { useEffect, useState } from 'react';
6
7
 
7
8
  import { type ReactiveObject } from '@dxos/react-client/echo';
9
+ import { useSelectionActions } from '@dxos/react-ui-attention';
8
10
  import { type ViewProjection } from '@dxos/schema';
11
+ import { isNonNullable } from '@dxos/util';
9
12
 
10
13
  import { type BaseTableRow, TableModel, type TableModelProps } from '../model';
11
14
  import { type TableType } from '../types';
@@ -48,5 +51,23 @@ export const useTableModel = <T extends BaseTableRow = { id: string }>({
48
51
  }
49
52
  }, [model, objects]);
50
53
 
54
+ const { select, clear } = useSelectionActions([table?.id, table?.view?.target?.query.type].filter(isNonNullable));
55
+
56
+ useEffect(() => {
57
+ if (!model) {
58
+ return;
59
+ }
60
+
61
+ const unsubscribe = effect(() => {
62
+ select([...model.selection.selection.value]);
63
+ });
64
+
65
+ // Maybe clear the selection here?
66
+ return () => {
67
+ clear();
68
+ unsubscribe();
69
+ };
70
+ }, [model]);
71
+
51
72
  return model;
52
73
  };
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright 2024 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
5
  import { computed, effect, signal, type ReadonlySignal } from '@preact/signals-core';
@@ -145,7 +145,7 @@ test.describe('Table', () => {
145
145
  await page.getByRole('option', { name: 'Anita Mayer' }).click();
146
146
 
147
147
  // Assert that the value is shown in the cell.
148
- await expect(page.getByRole('gridcell', { name: 'Anita Mayer' })).toBeVisible();
148
+ await expect(page.getByRole('gridcell', { name: 'Anita Mayer' }).first()).toBeVisible();
149
149
 
150
150
  // Create new object.
151
151
  await table.grid.cell(4, 1, 'grid').click();
@@ -157,7 +157,7 @@ test.describe('Table', () => {
157
157
  await page.getByTestId('save-button').click();
158
158
 
159
159
  // Scroll to the left.
160
- await page.getByRole('gridcell', { name: 'test' }).click();
160
+ await page.getByRole('gridcell', { name: 'test' }).first().click();
161
161
 
162
162
  await page.close();
163
163
  });
@@ -173,7 +173,7 @@ test.describe('Table', () => {
173
173
  await page.getByTestId('table-switch').nth(7).click();
174
174
 
175
175
  // Test that checks are durable in the data model by sorting.
176
- await table.sortColumn(1, 'descending');
176
+ await table.sortColumn(3, 'descending');
177
177
 
178
178
  // Assert the first two switch checkboxes are checked.
179
179
  await expect(page.getByTestId('table-switch').first()).toBeChecked();
package/src/util/table.ts CHANGED
@@ -46,7 +46,7 @@ export const initializeTable = async ({
46
46
  // We need to get the schema properties here. For now, only simple types and refs, not compound types
47
47
  // are going to be supported.
48
48
  const fields = getSchemaProperties(schema.ast)
49
- .filter((prop) => prop.type !== 'object' || prop.format === FormatEnum.Ref)
49
+ .filter((prop) => prop.format !== FormatEnum.Ref)
50
50
  .map((prop) => prop.name);
51
51
 
52
52
  table.view = makeRef(
@@ -1,3 +0,0 @@
1
- declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
2
- export default _default;
3
- //# sourceMappingURL=playwright.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"playwright.config.d.ts","sourceRoot":"","sources":["../../../../src/playwright/playwright.config.ts"],"names":[],"mappings":";AASA,wBAQG"}