refactor: Delete isPlainObject type guard and replace its usages with direct typeof checks.

This commit is contained in:
2025-11-24 21:22:38 +01:00
parent 63be4663ab
commit f5ca74b63c
8 changed files with 86 additions and 95 deletions
@@ -7,7 +7,7 @@ import {
} from 'react';
import type { JSX } from 'react';
import { CheckIcon, ChevronDownIcon } from '../../ui/icons';
import { isPlainObject } from '../../utils/typeGuards';
type CapabilityValue = string | number;
@@ -29,9 +29,7 @@ interface CapabilityDropdownProps {
summaryLabel?: string;
}
const isCapabilityOption = (
option: CapabilityDropdownOption | CapabilityValue | null,
): option is CapabilityDropdownOption => isPlainObject(option);
const resolveCapabilityValue = (
option: CapabilityDropdownOption | CapabilityValue | null,
@@ -39,8 +37,8 @@ const resolveCapabilityValue = (
if (option == null) {
return null;
}
if (!isCapabilityOption(option)) {
return option as CapabilityValue;
if (typeof option !== 'object') {
return option;
}
if (option.value != null) {
return option.value;
@@ -170,7 +168,7 @@ const CapabilityDropdown = ({
}
const label = formatLabel
? formatLabel(value)
: (isCapabilityOption(option) && option?.label) || String(value);
: (typeof option === 'object' && option?.label) || String(value);
const selected = selectedValues.includes(value);
return (
<button
@@ -8,7 +8,7 @@ import React, {
import type { SettingsSectionConfig } from '../SettingsModal';
import { IconX } from '../../ui/icons';
import CapabilityDropdown, { CapabilityDropdownOption } from '../components/CapabilityDropdown';
import { isPlainObject } from '../../utils/typeGuards';
type CapabilityValue = string | number;
type CapabilitySetId = string | number;
@@ -55,15 +55,14 @@ interface CapabilitySetsSectionProps {
type CapabilityOptionInput = CapabilityDropdownOption | CapabilityValue | null;
const isCapabilityOption = (option: CapabilityOptionInput): option is CapabilityDropdownOption =>
isPlainObject(option);
const resolveCapabilityValue = (option: CapabilityOptionInput): CapabilityValue | null => {
if (option == null) {
return null;
}
if (!isCapabilityOption(option)) {
return option as CapabilityValue;
if (typeof option === 'string' || typeof option === 'number') {
return option;
}
if (option.value != null) {
return option.value as CapabilityValue;