fallback to the first available backend when switching kcpp binaries and the current backend is unsupported

This commit is contained in:
Egor 2025-09-24 00:54:45 -07:00
parent 1f7bf6f6f5
commit f390fc5bd4

View file

@ -44,6 +44,21 @@ export const BackendSelector = () => {
return cleanup; return cleanup;
}, []); }, []);
useEffect(() => {
if (availableBackends.length > 0 && backend) {
const isBackendAvailable = availableBackends.some(
(b) => b.value === backend && !b.disabled
);
if (!isBackendAvailable) {
const fallbackBackend = availableBackends.find((b) => !b.disabled);
if (fallbackBackend) {
handleBackendChange(fallbackBackend.value);
}
}
}
}, [availableBackends, backend, handleBackendChange]);
return ( return (
<div> <div>
<Group justify="space-between" align="flex-start" mb="xs"> <Group justify="space-between" align="flex-start" mb="xs">
@ -58,7 +73,11 @@ export const BackendSelector = () => {
placeholder={ placeholder={
isLoadingBackends ? 'Loading backends...' : 'Select backend' isLoadingBackends ? 'Loading backends...' : 'Select backend'
} }
value={backend} value={
availableBackends.some((b) => b.value === backend && !b.disabled)
? backend
: null
}
onChange={(value) => { onChange={(value) => {
if (value) { if (value) {
handleBackendChange(value); handleBackendChange(value);