diff --git a/src/components/data-table/sort-filter-worker.ts b/src/components/data-table/sort-filter-worker.ts index b34ec899ff..3436993249 100644 --- a/src/components/data-table/sort-filter-worker.ts +++ b/src/components/data-table/sort-filter-worker.ts @@ -1,5 +1,5 @@ import { expose } from "comlink"; -import { stringCompare } from "../../common/string/compare"; +import { stringCompare, ipCompare } from "../../common/string/compare"; import { stripDiacritics } from "../../common/string/strip-diacritics"; import type { ClonedDataTableColumnData, @@ -57,7 +57,9 @@ const sortData = ( if (column.type === "numeric") { valA = isNaN(valA) ? undefined : Number(valA); valB = isNaN(valB) ? undefined : Number(valB); - } else if (typeof valA === "string" && typeof valB === "string") { + } else if (column.type === "ip") { + return sort * ipCompare(valA, valB); + } else if (typeof valA === "string" && typeof valB === "string") { return sort * stringCompare(valA, valB, language); } diff --git a/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts b/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts index 683719ee43..fdf8768c6f 100644 --- a/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/dhcp/dhcp-config-panel.ts @@ -60,6 +60,7 @@ export class DHCPConfigPanel extends SubscribeMixin(LitElement) { title: localize("ui.panel.config.dhcp.ip_address"), filterable: true, sortable: true, + type: "ip", }, };