diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index 9dce8982..1cd1be1a 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -1195,35 +1195,48 @@
}
},
getSubGroupClients(dbInbounds, currentClient) {
- const response = {
- inbounds: [],
- clients: [],
- editIds: []
+ const response = {
+ inbounds: [],
+ clients: [],
+ editIds: [],
+ };
+
+ if (!Array.isArray(dbInbounds) || dbInbounds.length === 0) {
+ return response;
+ }
+ if (!currentClient || !currentClient.subId) {
+ return response;
+ }
+
+ dbInbounds.forEach((dbInboundItem) => {
+ try {
+ const dbInbound = new DBInbound(dbInboundItem);
+ if (!dbInbound) {
+ return;
}
- if (dbInbounds && dbInbounds.length > 0 && currentClient) {
- dbInbounds.forEach((dbInboundItem) => {
- const dbInbound = new DBInbound(dbInboundItem);
- if (dbInbound) {
- const inbound = dbInbound.toInbound();
- if (inbound) {
- const clients = inbound.clients;
- if (clients.length > 0) {
- clients.forEach((client) => {
- if (client['subId'] === currentClient['subId']) {
- client['inboundId'] = dbInboundItem.id
- client['clientId'] = this.getClientId(dbInbound.protocol, client)
- response.inbounds.push(dbInboundItem.id)
- response.clients.push(client)
- response.editIds.push(client['clientId'])
- }
- })
- }
- }
- }
- })
+
+ const inbound = dbInbound.toInbound();
+ if (!inbound || !Array.isArray(inbound.clients)) {
+ return;
}
- return response;
- },
+
+ inbound.clients.forEach((client) => {
+ if (client.subId === currentClient.subId) {
+ client.inboundId = dbInboundItem.id;
+ client.clientId = this.getClientId(dbInbound.protocol, client);
+
+ response.inbounds.push(dbInboundItem.id);
+ response.clients.push(client);
+ response.editIds.push(client.clientId);
+ }
+ });
+ } catch (error) {
+ console.error("Error processing dbInboundItem:", dbInboundItem, error);
+ }
+ });
+
+ return response;
+ },
getClientId(protocol, client) {
switch (protocol) {
case Protocols.TROJAN: return client.password;