fix: resolve response format mismatches causing data loading failures in Dashboard, ImBots, Promotion, Knowledge pages
This commit is contained in:
1 parent
839be8f97f
commit
e9ec429d21
4 files changed
+385
-461
No files matched your search
@@ -97,9 +97,9 @@ const ImBots: React.FC = () => {
|
||||
// Load agents for dropdowns
|
||||
const loadAgents = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getAIApps('?type=agent&page_size=100');
|
||||
if (res.data?.success) {
|
||||
setAgents(res.data.data?.items || []);
|
||||
const res = await adminAPI.getAIApps('?type=agent&page_size=100') as any;
|
||||
if (res?.data) {
|
||||
setAgents(res.data?.items || []);
|
||||
}
|
||||
} catch (e) {
|
||||
// silently fail
|
||||
@@ -110,7 +110,7 @@ const ImBots: React.FC = () => {
|
||||
const loadStats = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotStats();
|
||||
if (res.data?.success) setStats(res.data.data);
|
||||
if ((res as any)?.success) setStats(res.data);
|
||||
} catch (e) {
|
||||
console.error('Stats error:', e);
|
||||
}
|
||||
@@ -120,7 +120,7 @@ const ImBots: React.FC = () => {
|
||||
const loadDashboard = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotDashboard();
|
||||
if (res.data?.success) setDashboard(res.data.data);
|
||||
if ((res as any)?.success) setDashboard(res.data);
|
||||
} catch (e) {
|
||||
console.error('Dashboard error:', e);
|
||||
}
|
||||
@@ -134,9 +134,9 @@ const ImBots: React.FC = () => {
|
||||
if (filterPlatform) endpoint += `&platform=${filterPlatform}`;
|
||||
if (filterStatus) endpoint += `&status=${filterStatus}`;
|
||||
const res = await adminAPI.getImBotChannels(endpoint);
|
||||
if (res.data?.success) {
|
||||
setChannels(res.data.data?.items || []);
|
||||
setChannelsTotal(res.data.data?.total || 0);
|
||||
if ((res as any)?.success) {
|
||||
setChannels(res.data?.items || []);
|
||||
setChannelsTotal(res.data?.total || 0);
|
||||
}
|
||||
} catch (e) {
|
||||
showToast('Failed to load channels', 'error');
|
||||
@@ -149,7 +149,7 @@ const ImBots: React.FC = () => {
|
||||
const loadRoutes = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotRoutes();
|
||||
if (res.data?.success) setRoutes(res.data.data || []);
|
||||
if ((res as any)?.success) setRoutes(res.data || []);
|
||||
} catch (e) {
|
||||
showToast('Failed to load routes', 'error');
|
||||
}
|
||||
@@ -159,8 +159,8 @@ const ImBots: React.FC = () => {
|
||||
const loadLangbot = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getLangbotConfig();
|
||||
if (res.data?.success) {
|
||||
const configs = res.data.data || [];
|
||||
if ((res as any)?.success) {
|
||||
const configs = res.data || [];
|
||||
setLangbotConfig(configs);
|
||||
if (configs.length > 0) {
|
||||
setLangbotForm({ ...langbotForm, ...configs[0] });
|
||||
@@ -175,9 +175,9 @@ const ImBots: React.FC = () => {
|
||||
const loadMessages = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotMessages(`?page=${messagesPage}&page_size=50`);
|
||||
if (res.data?.success) {
|
||||
setMessages(res.data.data?.items || []);
|
||||
setMessagesTotal(res.data.data?.total || 0);
|
||||
if ((res as any)?.success) {
|
||||
setMessages(res.data?.items || []);
|
||||
setMessagesTotal(res.data?.total || 0);
|
||||
}
|
||||
} catch (e) {
|
||||
showToast('Failed to load messages', 'error');
|
||||
@@ -188,7 +188,7 @@ const ImBots: React.FC = () => {
|
||||
const loadPlatforms = useCallback(async () => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotPlatforms();
|
||||
if (res.data?.success) setPlatforms(res.data.data || []);
|
||||
if ((res as any)?.success) setPlatforms(res.data || []);
|
||||
} catch (e) {
|
||||
// silently fail
|
||||
}
|
||||
@@ -222,8 +222,8 @@ const ImBots: React.FC = () => {
|
||||
const handleTestChannel = async (channelId: string) => {
|
||||
try {
|
||||
const res = await adminAPI.testImBotChannel(channelId);
|
||||
if (res.data?.success) {
|
||||
const data = res.data.data;
|
||||
if ((res as any)?.success) {
|
||||
const data = res.data;
|
||||
if (data.passed) {
|
||||
showToast('Channel test passed!');
|
||||
} else {
|
||||
@@ -256,8 +256,8 @@ const ImBots: React.FC = () => {
|
||||
const handleViewChannel = async (channelId: string) => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotChannelDetail(channelId);
|
||||
if (res.data?.success) {
|
||||
setSelectedChannel(res.data.data);
|
||||
if ((res as any)?.success) {
|
||||
setSelectedChannel(res.data);
|
||||
setShowChannelDetail(true);
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -269,8 +269,8 @@ const ImBots: React.FC = () => {
|
||||
const handleGetWebhookUrl = async (platform: string) => {
|
||||
try {
|
||||
const res = await adminAPI.getImBotWebhookUrl(platform);
|
||||
if (res.data?.success) {
|
||||
setWebhookInfo(res.data.data);
|
||||
if ((res as any)?.success) {
|
||||
setWebhookInfo(res.data);
|
||||
setShowWebhookModal(true);
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -328,8 +328,8 @@ const ImBots: React.FC = () => {
|
||||
if (setupForm.agent_id) params.append('agent_id', setupForm.agent_id);
|
||||
if (setupForm.credentials) params.append('credentials', setupForm.credentials);
|
||||
const res = await adminAPI.imBotQuickSetup('?' + params.toString());
|
||||
if (res.data?.success) {
|
||||
const data = res.data.data;
|
||||
if ((res as any)?.success) {
|
||||
const data = res.data;
|
||||
setWebhookInfo({
|
||||
platform: data.platform,
|
||||
platform_name: data.platform_name,
|
||||
@@ -381,8 +381,8 @@ const ImBots: React.FC = () => {
|
||||
});
|
||||
if (langbotForm.api_key) params.append('api_key', langbotForm.api_key);
|
||||
const res = await adminAPI.testLangbot('?' + params.toString());
|
||||
if (res.data?.success) {
|
||||
const data = res.data.data;
|
||||
if ((res as any)?.success) {
|
||||
const data = res.data;
|
||||
if (data.reachable) {
|
||||
showToast(`LangBot reachable! Status: ${data.status_code}`);
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user