diff --git a/src/features/runtime-provider-management/renderer/ui/RuntimeProviderManagementPanelView.tsx b/src/features/runtime-provider-management/renderer/ui/RuntimeProviderManagementPanelView.tsx
index 3b9347e2..11361880 100644
--- a/src/features/runtime-provider-management/renderer/ui/RuntimeProviderManagementPanelView.tsx
+++ b/src/features/runtime-provider-management/renderer/ui/RuntimeProviderManagementPanelView.tsx
@@ -1100,6 +1100,8 @@ export function RuntimeProviderManagementPanelView({
)
? state.selectedProviderId
: (filteredProviders[0]?.providerId ?? state.selectedProviderId ?? null);
+ const canSearchDirectory =
+ state.directorySupported && providerQuery.length >= 2 && filteredProviders.length === 0;
return (
@@ -1138,7 +1140,32 @@ export function RuntimeProviderManagementPanelView({
) : null}
- {state.providers.length > 0 ? (
+ {state.directoryOpen ? (
+
+ ) : null}
+
+ {!state.directoryOpen && state.directorySupported ? (
+
+ ) : null}
+
+ {!state.directoryOpen && state.providers.length > 0 ? (
actions.setProviderQuery(event.target.value)}
+ onKeyDown={(event) => {
+ if (event.key === 'Enter' && state.providerQuery.trim().length >= 2) {
+ actions.searchAllProviders(state.providerQuery.trim());
+ }
+ }}
placeholder="Search providers"
className="h-9 pr-3 text-sm"
style={{ paddingLeft: 40 }}
@@ -1153,26 +1185,45 @@ export function RuntimeProviderManagementPanelView({
) : null}
-
- {state.loading && state.providers.length === 0 ? (
-
- ) : null}
- {filteredProviders.map((provider) => (
-
- ))}
-
+ {!state.directoryOpen && canSearchDirectory ? (
+
+ ) : null}
- {!state.loading && state.providers.length > 0 && filteredProviders.length === 0 ? (
+ {!state.directoryOpen ? (
+
+ {state.loading && state.providers.length === 0 ? (
+
+ ) : null}
+ {filteredProviders.map((provider) => (
+
+ ))}
+
+ ) : null}
+
+ {!state.directoryOpen &&
+ !state.loading &&
+ state.providers.length > 0 &&
+ filteredProviders.length === 0 ? (
) : null}
- {!state.loading && state.providers.length === 0 ? (
+ {!state.directoryOpen && !state.loading && state.providers.length === 0 ? (