fix(plexpin): remove duplicate error handling and reset pin on submit

This commit is contained in:
0xsysr3ll
2025-04-24 21:57:56 +02:00
parent 46c871c3cf
commit 6ac0445f8b

View File

@@ -1,6 +1,5 @@
import Button from '@app/components/Common/Button';
import defineMessages from '@app/utils/defineMessages';
import { ApiErrorCode } from '@server/constants/error';
import { useState } from 'react';
import { useIntl } from 'react-intl';
@@ -33,34 +32,12 @@ const PlexPinEntry = ({
const handleSubmit = async () => {
if (!pin || isSubmitting) return;
setIsSubmitting(true);
try {
await onSubmit(pin);
setPin('');
} catch (err) {
const code = err?.response?.data?.error as string | undefined;
const httpStatus = err?.response?.status;
let msg: string;
switch (code) {
case ApiErrorCode.InvalidPin:
msg = intl.formatMessage(messages.invalidPin);
break;
case ApiErrorCode.NewPlexLoginDisabled:
msg = intl.formatMessage(messages.accessDenied);
break;
default:
if (httpStatus === 401) {
msg = intl.formatMessage(messages.invalidPin);
} else if (httpStatus === 403) {
msg = intl.formatMessage(messages.accessDenied);
} else {
msg =
err?.response?.data?.message ??
intl.formatMessage(messages.invalidPin);
}
}
setPin('');
} finally {
setIsSubmitting(false);
}