feat: 更新ICE服务器配置,添加默认服务器标记,优化删除提示信息

This commit is contained in:
MatrixSeven
2025-09-10 15:05:28 +08:00
parent 07409abb3b
commit 343e7f1192
3 changed files with 56 additions and 15 deletions

View File

@@ -251,8 +251,6 @@ interface ServerItemProps {
}
function ServerItem({ server, onRemove, canRemove }: ServerItemProps) {
const isDefault = server.id.startsWith('google-') || server.id.startsWith('twilio-');
return (
<div className="border rounded-lg p-3 sm:p-4 bg-white">
<div className="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3">
@@ -261,8 +259,8 @@ function ServerItem({ server, onRemove, canRemove }: ServerItemProps) {
<span className="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded whitespace-nowrap">
{server.type?.toUpperCase() || 'STUN'}
</span>
{isDefault && (
<span className="text-xs bg-blue-100 text-blue-600 px-2 py-1 rounded whitespace-nowrap">
{server.isDefault && (
<span className="text-xs bg-green-100 text-green-600 px-2 py-1 rounded whitespace-nowrap">
</span>
)}
@@ -341,7 +339,8 @@ export default function WebRTCSettings() {
removeIceServer(serverToDelete);
showToast('ICE服务器删除成功', 'success');
} catch (error) {
showToast('至少需要保留一个ICE服务器', 'error');
const errorMessage = error instanceof Error ? error.message : '删除失败';
showToast(errorMessage, 'error');
} finally {
setServerToDelete(null);
setShowDeleteDialog(false);
@@ -518,6 +517,13 @@ export default function WebRTCSettings() {
<code className="bg-gray-100 px-1 py-0.5 rounded text-xs">turn:服务器地址:</code>
</p>
</div>
<div>
<h4 className="font-medium text-gray-900 mb-1">:</h4>
<p className="text-gray-600">
ICE服务器
</p>
</div>
</div>
</div>
</div>
@@ -537,7 +543,19 @@ export default function WebRTCSettings() {
onClose={cancelDeleteServer}
onConfirm={confirmDeleteServer}
title="删除ICE服务器"
message={`确定要删除这个ICE服务器吗删除后将无法恢复。${iceServers.length <= 1 ? '\n\n注意这是最后一个服务器删除后将无法建立WebRTC连接。' : ''}`}
message={(() => {
if (!serverToDelete) return "确定要删除这个ICE服务器吗";
const serverToDeleteInfo = iceServers.find(s => s.id === serverToDelete);
if (iceServers.length <= 1) {
return "这是最后一个ICE服务器删除后将无法建立WebRTC连接。确定要删除吗";
} else if (serverToDeleteInfo?.isDefault) {
return "这是一个默认ICE服务器删除后可能需要手动添加其他服务器。确定要删除吗";
} else {
return "确定要删除这个ICE服务器吗删除后将无法恢复。";
}
})()}
confirmText="删除"
cancelText="取消"
type="danger"