Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions apps/web/src/components/config/ApiKeysCardEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
usageServiceApi,
type ApiKeyAlias,
} from '@/services/api/usageService';
import { useAuthStore, useNotificationStore } from '@/stores';
import { useAuthStore, useConfigStore, useNotificationStore } from '@/stores';
import { usePanelFeatureAvailability } from '@/hooks/usePanelFeatureAvailability';
import { copyToClipboard } from '@/utils/clipboard';
import { maskApiKey } from '@/utils/format';
Expand All @@ -33,6 +33,7 @@ export const ApiKeysCardEditor = memo(function ApiKeysCardEditor({
const showNotification = useNotificationStore((state) => state.showNotification);
const showConfirmation = useNotificationStore((state) => state.showConfirmation);
const managementKey = useAuthStore((state) => state.managementKey);
const savedApiKeys = useConfigStore((state) => state.config?.apiKeys);
const featureAvailability = usePanelFeatureAvailability();
const apiKeys = useMemo(
() =>
Expand Down Expand Up @@ -459,7 +460,18 @@ export const ApiKeysCardEditor = memo(function ApiKeysCardEditor({
activeApiKeyHashes,
cleanupDecision.allowOrphanAliasCleanup
);
showNotification(t('config_management.visual.api_keys.alias_saved'), 'success');
const editingKeyHash = getApiKeyHash(editingKey);
const savedHashSet = new Set(
(savedApiKeys ?? []).map((k) => getApiKeyHash(k))
);
if (editingKeyHash && !savedHashSet.has(editingKeyHash)) {
showNotification(
t('config_management.visual.api_keys.alias_saved_key_not_in_cpa'),
'warning'
);
} else {
showNotification(t('config_management.visual.api_keys.alias_saved'), 'success');
}
closeAliasModal();
} catch (error) {
setAliasFormError(getAliasErrorMessage(error));
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -2559,6 +2559,7 @@
"alias_action": "Set Alias",
"alias_title": "Set API Key Alias",
"alias_saved": "API key alias saved",
"alias_saved_key_not_in_cpa": "Alias saved, but this key is not in the active CPA api-keys list yet. Add it to API Keys and save the configuration before clients can use it.",
"alias_deleted": "API key alias deleted",
"alias_delete": "Delete Alias",
"alias_delete_title": "Delete API Key Alias",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -2559,6 +2559,7 @@
"alias_action": "Задать псевдоним",
"alias_title": "Псевдоним API-ключа",
"alias_saved": "Псевдоним API-ключа сохранён",
"alias_saved_key_not_in_cpa": "Псевдоним сохранён, но этот ключ ещё не добавлен в список api-keys CPA. Добавьте ключ в API Keys и сохраните конфигурацию, чтобы клиенты могли его использовать.",
"alias_deleted": "Псевдоним API-ключа удалён",
"alias_delete": "Удалить псевдоним",
"alias_delete_title": "Удалить псевдоним API-ключа",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/i18n/locales/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -2559,6 +2559,7 @@
"alias_action": "设置别名",
"alias_title": "设置 API Key 别名",
"alias_saved": "API Key 别名已保存",
"alias_saved_key_not_in_cpa": "别名已保存,但此密钥尚未添加到 CPA 的 api-keys 列表中。请先将密钥添加到 API Keys 并保存配置,否则客户端无法使用。",
"alias_deleted": "API Key 别名已删除",
"alias_delete": "删除别名",
"alias_delete_title": "删除 API Key 别名",
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/i18n/locales/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -2559,6 +2559,7 @@
"alias_action": "設定別名",
"alias_title": "設定 API Key 別名",
"alias_saved": "API Key 別名已保存",
"alias_saved_key_not_in_cpa": "別名已儲存,但此金鑰尚未加入 CPA 的 api-keys 清單中。請先將金鑰加入 API Keys 並儲存設定,否則客戶端無法使用。",
"alias_deleted": "API Key 別名已刪除",
"alias_delete": "刪除別名",
"alias_delete_title": "刪除 API Key 別名",
Expand Down