Skip to content

Commit

Permalink
feat(SupportedDeviceTable): Include devices with beta support by default
Browse files Browse the repository at this point in the history
  • Loading branch information
razor-x committed Dec 21, 2023
1 parent c536021 commit f4efdd5
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import type { Dispatch, SetStateAction } from 'react'

import { FilterCategoryMenu } from 'lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js'
import type { DeviceModelFilters } from 'lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js'
import {
type DeviceModelFilters,
supportedIntegrationSupportLevels,
} from 'lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js'
import { Button } from 'lib/ui/Button.js'
import { Menu } from 'lib/ui/Menu/Menu.js'
import { SearchTextField } from 'lib/ui/TextField/SearchTextField.js'
Expand All @@ -28,6 +31,9 @@ export function SupportedDeviceFilterArea({
const appliedFiltersCount = getAppliedFilterCount(filters)

const { manufacturers: manufacturersData } = useFilteredManufacturers({
integrationSupportLevels: filters.supportedOnly
? supportedIntegrationSupportLevels
: null,
manufacturers,
excludedManufacturers,
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'

import {
useDeviceModels,
type UseDeviceModelsParams,
Expand All @@ -10,6 +12,9 @@ export interface DeviceModelFilters {
manufacturer: string | null
}

export const supportedIntegrationSupportLevels: ManufacturerIntegrationSupportLevel[] =
['stable', 'beta']

export const useFilteredDeviceModels = ({
filterValue,
filters,
Expand All @@ -24,7 +29,12 @@ export const useFilteredDeviceModels = ({
includeIf: string[] | null
excludeIf: string[]
}): ReturnType<typeof useDeviceModels> => {
const { manufacturers } = useFilteredManufacturers(manufacturersParams)
const { manufacturers } = useFilteredManufacturers({
...manufacturersParams,
integrationSupportLevels: filters.supportedOnly
? supportedIntegrationSupportLevels
: null,
})

const params: UseDeviceModelsParams = {}

Expand All @@ -42,7 +52,7 @@ export const useFilteredDeviceModels = ({
}

if (filters.supportedOnly) {
params.integration_status = 'stable'
params.integration_support_levels = supportedIntegrationSupportLevels
}

if (filters.manufacturer !== null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'

import { useManufacturers } from 'lib/seam/components/SupportedDeviceTable/use-manufacturers.js'

interface Params {
manufacturers: string[] | null
excludedManufacturers: string[]
integrationSupportLevels: ManufacturerIntegrationSupportLevel[] | null
}
export const useFilteredManufacturers = (
params: Params
): ReturnType<typeof useManufacturers> => {

export const useFilteredManufacturers = ({
integrationSupportLevels,
...params
}: Params): ReturnType<typeof useManufacturers> => {
const { manufacturers, ...rest } = useManufacturers({
integration_support_levels: integrationSupportLevels ?? undefined,
liqe_query: createLiqeQuery(params),
})

Expand All @@ -22,7 +28,9 @@ export const useFilteredManufacturers = (
export const createLiqeQuery = ({
manufacturers,
excludedManufacturers,
}: Params): string | undefined => {
}: Pick<Params, 'manufacturers' | 'excludedManufacturers'>):
| string
| undefined => {
if (
(manufacturers?.some(isInvalidInput) ?? false) ||
excludedManufacturers.some(isInvalidInput)
Expand Down

0 comments on commit f4efdd5

Please sign in to comment.