feat: include restart notice in integration success toasts
This commit is contained in:
committed by
Cursor Agent
parent
10b928a786
commit
3ae8d3fe45
@@ -161,18 +161,17 @@ export const ThirdPartyIntegrationsSection: React.FC<ThirdPartyIntegrationsSecti
|
||||
}
|
||||
|
||||
setProviderUnavailable(plugin.id, false);
|
||||
if (action === 'install') {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.installed', { name: t(plugin.nameKey) }));
|
||||
} else if (action === 'update') {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.updated', { name: t(plugin.nameKey) }));
|
||||
} else {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.removed', { name: t(plugin.nameKey) }));
|
||||
}
|
||||
|
||||
const restartNeeded = requiresRestart(result);
|
||||
setRestartRequired(plugin.id, restartNeeded);
|
||||
if (restartNeeded) {
|
||||
toast.warning(t('settings.integrations.thirdParty.status.restartRequired'));
|
||||
const toastOptions = restartNeeded
|
||||
? { description: t('settings.integrations.thirdParty.toast.restartRequired') }
|
||||
: undefined;
|
||||
if (action === 'install') {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.installed', { name: t(plugin.nameKey) }), toastOptions);
|
||||
} else if (action === 'update') {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.updated', { name: t(plugin.nameKey) }), toastOptions);
|
||||
} else {
|
||||
toast.success(t('settings.integrations.thirdParty.toast.removed', { name: t(plugin.nameKey) }), toastOptions);
|
||||
}
|
||||
await refresh();
|
||||
} finally {
|
||||
|
||||
@@ -34,6 +34,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} removed',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Could not update the integration',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'The provider could not be opened yet',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Restart OpenCode for changes to take effect',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Use your Claude Pro/Max plan — no API keys, no Claude apps.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -75,6 +76,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} entfernt',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Die Integration konnte nicht aktualisiert werden',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Der Provider konnte noch nicht geöffnet werden',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Starte OpenCode neu, damit die Änderungen wirksam werden',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Nutze deinen Claude-Pro/Max-Plan — ohne API-Keys, ohne Claude-Apps.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -116,6 +118,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} supprimé',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Impossible de mettre à jour l’intégration',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Le fournisseur n’a pas encore pu être ouvert',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Redémarrez OpenCode pour que les modifications prennent effet',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Utilisez votre forfait Claude Pro/Max — sans clés API, sans apps Claude.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -157,6 +160,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} eliminado',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'No se pudo actualizar la integración',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Todavía no se pudo abrir el proveedor',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Reinicia OpenCode para que los cambios surtan efecto',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Usa tu plan Claude Pro/Max: sin claves API ni apps de Claude.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -198,6 +202,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} を削除しました',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': '連携を更新できませんでした',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'プロバイダーをまだ開けませんでした',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': '変更を反映するには OpenCode を再起動してください',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Claude Pro/Max プランを利用 — API キーも Claude アプリも不要。',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -239,6 +244,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} 제거됨',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': '통합을 업데이트하지 못했습니다',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': '프로바이더를 아직 열 수 없습니다',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': '변경 사항을 적용하려면 OpenCode를 다시 시작하세요',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Claude Pro/Max 요금제를 사용하세요. API 키와 Claude 앱은 필요 없습니다.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -280,6 +286,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': 'Usunięto {name}',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Nie udało się zaktualizować integracji',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Nie można jeszcze otworzyć dostawcy',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Uruchom ponownie OpenCode, aby zastosować zmiany',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Korzystaj z planu Claude Pro/Max — bez kluczy API i aplikacji Claude.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -321,6 +328,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} removido',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Não foi possível atualizar a integração',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Ainda não foi possível abrir o provedor',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Reinicie o OpenCode para que as alterações entrem em vigor',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Use seu plano Claude Pro/Max — sem chaves de API nem apps da Claude.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -362,6 +370,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '{name} видалено',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': 'Не вдалося оновити інтеграцію',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': 'Провайдера ще не вдалося відкрити',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': 'Перезапустіть OpenCode, щоб застосувати зміни',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': 'Claude Pro/Max за підпискою — без API-ключів і без додатків Claude.',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -403,6 +412,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '已移除 {name}',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': '无法更新集成',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': '暂时无法打开该提供商',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': '请重启 OpenCode 以使更改生效',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': '使用 Claude Pro/Max 套餐——无需 API 密钥,也无需 Claude 应用。',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
@@ -444,6 +454,7 @@ export const thirdPartyIntegrationI18n = {
|
||||
'settings.integrations.thirdParty.toast.removed': '已移除 {name}',
|
||||
'settings.integrations.thirdParty.toast.actionFailed': '無法更新整合',
|
||||
'settings.integrations.thirdParty.toast.providerUnavailable': '暫時無法開啟供應商',
|
||||
'settings.integrations.thirdParty.toast.restartRequired': '請重新啟動 OpenCode 以使變更生效',
|
||||
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||
'settings.integrations.thirdParty.opencodeClaude.description': '使用 Claude Pro/Max 方案——無需 API 金鑰,也無需 Claude 應用程式。',
|
||||
'settings.integrations.thirdParty.opencodeCommandcode.name': 'Command Code',
|
||||
|
||||
Reference in New Issue
Block a user