@seamapi/react 2.1.3 → 2.1.4
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.
- package/README.md +1 -1
- package/dist/elements.js +173 -166
- package/dist/elements.js.map +1 -1
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +9 -3
- package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +23 -10
- package/src/lib/version.ts +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
2
3
|
import { SupportedDeviceFilterResultRow } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterResultRow.js';
|
|
3
4
|
import { SupportedDeviceManufacturerSection } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js';
|
|
4
5
|
import { useFilteredDeviceModels, } from '../../../../lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js';
|
|
@@ -10,6 +11,7 @@ export function SupportedDeviceContent({ resetFilterValue, filterValue, filters,
|
|
|
10
11
|
manufacturers,
|
|
11
12
|
excludedManufacturers,
|
|
12
13
|
});
|
|
14
|
+
const groupedDeviceModels = useMemo(() => groupDeviceModelsByManufacturer(deviceModels ?? []), [deviceModels]);
|
|
13
15
|
if (isLoading) {
|
|
14
16
|
return (_jsx("div", { className: 'seam-supported-device-table-content-state-block', children: _jsx("p", { children: t.loading }) }));
|
|
15
17
|
}
|
|
@@ -29,13 +31,17 @@ export function SupportedDeviceContent({ resetFilterValue, filterValue, filters,
|
|
|
29
31
|
if (hasFilters) {
|
|
30
32
|
return (_jsx("div", { className: 'seam-supported-device-table-content', children: deviceModels.map((deviceModel) => (_jsx(SupportedDeviceFilterResultRow, { deviceModel: deviceModel }, deviceModel.device_model_id))) }));
|
|
31
33
|
}
|
|
32
|
-
return (_jsx(_Fragment, { children: Object.entries(
|
|
34
|
+
return (_jsx(_Fragment, { children: Object.entries(groupedDeviceModels)
|
|
35
|
+
.sort((e1, e2) => e1[1][0]?.manufacturer.display_name.localeCompare(e2[1][0]?.manufacturer.display_name ?? '') ?? 0)
|
|
36
|
+
.map(([manufacturerId, models]) => {
|
|
37
|
+
return (_jsx(SupportedDeviceManufacturerSection, { manufacturerId: manufacturerId, deviceModels: models }, manufacturerId));
|
|
38
|
+
}) }));
|
|
33
39
|
}
|
|
34
40
|
function EmptyResult({ filterValue, resetFilterValue, }) {
|
|
35
41
|
const noMatchingRows = (_jsxs(_Fragment, { children: [_jsx("p", { children: t.noMatch }), _jsx(Button, { variant: 'outline', size: 'small', onClick: resetFilterValue, className: 'seam-supported-device-table-content-message-clear-search', children: t.clear })] }));
|
|
36
42
|
return (_jsx("div", { className: 'seam-supported-device-table-content-message-row', children: _jsx("div", { children: _jsx("div", { className: 'seam-supported-device-table-content-message', children: filterValue.length === 0 ? _jsx("p", { children: t.noneFound }) : noMatchingRows }) }) }));
|
|
37
43
|
}
|
|
38
|
-
|
|
44
|
+
const groupDeviceModelsByManufacturer = (deviceModels) => {
|
|
39
45
|
const result = {};
|
|
40
46
|
for (const model of deviceModels) {
|
|
41
47
|
const { manufacturer } = model;
|
|
@@ -43,7 +49,7 @@ function groupDeviceModelsByManufacturer(deviceModels) {
|
|
|
43
49
|
result[manufacturer.manufacturer_id] = [...list, model];
|
|
44
50
|
}
|
|
45
51
|
return result;
|
|
46
|
-
}
|
|
52
|
+
};
|
|
47
53
|
const t = {
|
|
48
54
|
loading: 'Loading device models...',
|
|
49
55
|
retry: 'Retry',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportedDeviceContent.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SupportedDeviceContent.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const seamapiReactVersion = "2.1.
|
|
1
|
+
declare const seamapiReactVersion = "2.1.4";
|
|
2
2
|
export default seamapiReactVersion;
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { DeviceModelV1 } from '@seamapi/types/devicedb'
|
|
2
|
+
import { useMemo } from 'react'
|
|
2
3
|
|
|
3
4
|
import { SupportedDeviceFilterResultRow } from 'lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterResultRow.js'
|
|
4
5
|
import { SupportedDeviceManufacturerSection } from 'lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js'
|
|
@@ -33,6 +34,11 @@ export function SupportedDeviceContent({
|
|
|
33
34
|
}
|
|
34
35
|
)
|
|
35
36
|
|
|
37
|
+
const groupedDeviceModels = useMemo(
|
|
38
|
+
() => groupDeviceModelsByManufacturer(deviceModels ?? []),
|
|
39
|
+
[deviceModels]
|
|
40
|
+
)
|
|
41
|
+
|
|
36
42
|
if (isLoading) {
|
|
37
43
|
return (
|
|
38
44
|
<div className='seam-supported-device-table-content-state-block'>
|
|
@@ -91,15 +97,22 @@ export function SupportedDeviceContent({
|
|
|
91
97
|
|
|
92
98
|
return (
|
|
93
99
|
<>
|
|
94
|
-
{Object.entries(
|
|
95
|
-
(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
/>
|
|
100
|
+
{Object.entries(groupedDeviceModels)
|
|
101
|
+
.sort(
|
|
102
|
+
(e1, e2) =>
|
|
103
|
+
e1[1][0]?.manufacturer.display_name.localeCompare(
|
|
104
|
+
e2[1][0]?.manufacturer.display_name ?? ''
|
|
105
|
+
) ?? 0
|
|
101
106
|
)
|
|
102
|
-
|
|
107
|
+
.map(([manufacturerId, models]) => {
|
|
108
|
+
return (
|
|
109
|
+
<SupportedDeviceManufacturerSection
|
|
110
|
+
key={manufacturerId}
|
|
111
|
+
manufacturerId={manufacturerId}
|
|
112
|
+
deviceModels={models}
|
|
113
|
+
/>
|
|
114
|
+
)
|
|
115
|
+
})}
|
|
103
116
|
</>
|
|
104
117
|
)
|
|
105
118
|
}
|
|
@@ -136,9 +149,9 @@ function EmptyResult({
|
|
|
136
149
|
)
|
|
137
150
|
}
|
|
138
151
|
|
|
139
|
-
|
|
152
|
+
const groupDeviceModelsByManufacturer = (
|
|
140
153
|
deviceModels: UseDeviceModelsData
|
|
141
|
-
): Record<string, DeviceModelV1[]> {
|
|
154
|
+
): Record<string, DeviceModelV1[]> => {
|
|
142
155
|
const result: Record<string, DeviceModelV1[]> = {}
|
|
143
156
|
|
|
144
157
|
for (const model of deviceModels) {
|
package/src/lib/version.ts
CHANGED