Skip to content

Commit ecc0266

Browse files
authored
fix: Sort manufacturer groups by display_name (#557)
1 parent df5932e commit ecc0266

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { DeviceModelV1 } from '@seamapi/types/devicedb'
2+
import { useMemo } from 'react'
23

34
import { SupportedDeviceFilterResultRow } from 'lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterResultRow.js'
45
import { SupportedDeviceManufacturerSection } from 'lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js'
@@ -33,6 +34,11 @@ export function SupportedDeviceContent({
3334
}
3435
)
3536

37+
const groupedDeviceModels = useMemo(
38+
() => groupDeviceModelsByManufacturer(deviceModels ?? []),
39+
[deviceModels]
40+
)
41+
3642
if (isLoading) {
3743
return (
3844
<div className='seam-supported-device-table-content-state-block'>
@@ -91,15 +97,22 @@ export function SupportedDeviceContent({
9197

9298
return (
9399
<>
94-
{Object.entries(groupDeviceModelsByManufacturer(deviceModels)).map(
95-
([manufacturerId, models]) => (
96-
<SupportedDeviceManufacturerSection
97-
key={manufacturerId}
98-
manufacturerId={manufacturerId}
99-
deviceModels={models}
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
101106
)
102-
)}
107+
.map(([manufacturerId, models]) => {
108+
return (
109+
<SupportedDeviceManufacturerSection
110+
key={manufacturerId}
111+
manufacturerId={manufacturerId}
112+
deviceModels={models}
113+
/>
114+
)
115+
})}
103116
</>
104117
)
105118
}
@@ -136,9 +149,9 @@ function EmptyResult({
136149
)
137150
}
138151

139-
function groupDeviceModelsByManufacturer(
152+
const groupDeviceModelsByManufacturer = (
140153
deviceModels: UseDeviceModelsData
141-
): Record<string, DeviceModelV1[]> {
154+
): Record<string, DeviceModelV1[]> => {
142155
const result: Record<string, DeviceModelV1[]> = {}
143156

144157
for (const model of deviceModels) {

0 commit comments

Comments
 (0)