fix(app): keep push-to-talk release delays above 500 ms (#3453)

This commit is contained in:
Hampus authored and GitHub committed 2026-10-14 00:37:40 +02:00
1 parent 959b03b5f4
commit f509bef1fb
7 files changed
+78 -17

No files matched your search

@@ -13,7 +13,8 @@ import {getCachedNumberFormat} from '@app/features/i18n/utils/IntlCache';
import {Message as MessageModel} from '@app/features/messaging/models/MessagingMessage';
import {remFromPx} from '@app/features/theme/layout/RemFromPx';
import {Button} from '@app/features/ui/button/Button';
import {type ComboboxOption, resolveNearestNumericOption} from '@app/features/ui/components/form/FormCombobox';
import {resolveNearestNumericOption} from '@app/features/ui/components/form/ComboboxNumericInput';
import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox';
import {Switch} from '@app/features/ui/components/form/FormSwitch';
import {MockAvatar} from '@app/features/ui/components/MockAvatar';
import MobileLayout from '@app/features/ui/state/MobileLayout';
@@ -15,6 +15,7 @@ import NativePermission from '@app/features/permissions/system/state/NativePermi
import {Button} from '@app/features/ui/button/Button';
import * as ModalCommands from '@app/features/ui/commands/ModalCommands';
import {modal} from '@app/features/ui/commands/ModalCommands';
import {parseNumericInput} from '@app/features/ui/components/form/ComboboxNumericInput';
import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox';
import {Switch} from '@app/features/ui/components/form/FormSwitch';
import {RESET_SLIDER_TO_DEFAULT_VALUE_DESCRIPTOR, Slider} from '@app/features/ui/components/Slider';
@@ -161,10 +162,8 @@ const resolvePushToTalkReleaseDelayInput = (
options: ReadonlyArray<ComboboxOption<number>>,
): number | undefined => {
const normalized = inputValue.trim().toLowerCase();
const numericMatch = normalized.match(/([0-9]+(?:\.[0-9]+)?)/);
if (!numericMatch) return undefined;
const parsedValue = Number(numericMatch[1]);
if (!Number.isFinite(parsedValue)) return undefined;
const parsedValue = parseNumericInput(normalized);
if (parsedValue === undefined) return undefined;
const unitMatch = normalized.match(/[0-9.]\s*([a-z]+)/);
const unit = unitMatch?.[1] ?? 'ms';
const valueInMs = unit.startsWith('s') ? parsedValue * 1000 : parsedValue;
@@ -12,7 +12,8 @@ import Channels from '@app/features/channel/state/Channels';
import {getCachedNumberFormat} from '@app/features/i18n/utils/IntlCache';
import {Message as MessageModel} from '@app/features/messaging/models/MessagingMessage';
import {isNewMessageGroup} from '@app/features/messaging/utils/MessageGroupingUtils';
import {type ComboboxOption, resolveNearestNumericOption} from '@app/features/ui/components/form/FormCombobox';
import {resolveNearestNumericOption} from '@app/features/ui/components/form/ComboboxNumericInput';
import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox';
import {Switch} from '@app/features/ui/components/form/FormSwitch';
import {canResetSliderValue, SliderResetIconButton} from '@app/features/ui/components/slider/SliderResetIconButton';
import type {RadioOption} from '@app/features/ui/radio_group/RadioGroup';
@@ -8,7 +8,8 @@ import Accessibility, {
} from '@app/features/accessibility/state/Accessibility';
import {APP_ZOOM_LEVEL_DESCRIPTOR} from '@app/features/i18n/utils/CommonMessageDescriptors';
import {getCachedNumberFormat} from '@app/features/i18n/utils/IntlCache';
import {type ComboboxOption, resolveNearestNumericOption} from '@app/features/ui/components/form/FormCombobox';
import {resolveNearestNumericOption} from '@app/features/ui/components/form/ComboboxNumericInput';
import type {ComboboxOption} from '@app/features/ui/components/form/FormCombobox';
import {Slider} from '@app/features/ui/components/Slider';
import {canResetSliderValue, SliderResetIconButton} from '@app/features/ui/components/slider/SliderResetIconButton';
import {formatRoundedPercentage, roundPercentage} from '@app/features/ui/utils/PercentageFormatting';