Browse Source

✨ feat(classroom): 增强禁言状态下的用户反馈

- 消息发送功能:检测禁言错误(442),显示"您已被禁言,无法发送消息"
- 举手提问功能:检测禁言错误(442),显示"您已被禁言,无法举手提问"
- 问题发送功能:检测禁言错误(442),显示"您已被禁言,无法发送问题"
- 通过错误码和消息内容双重判断禁言状态,提升识别准确性
yourname 6 months ago
parent
commit
1cd9454d8f
1 changed files with 18 additions and 3 deletions
  1. 18 3
      src/client/mobile/components/Classroom/useClassroom.ts

+ 18 - 3
src/client/mobile/components/Classroom/useClassroom.ts

@@ -637,7 +637,12 @@ export const useClassroom = ({ user }:{ user : User }) => {
       setMsgText('');
       setErrorMessage('');
     } catch (err: any) {
-      showToast('error', `消息发送失败: ${err.message}`);
+      // 检查是否为禁言错误 (错误码442)
+      if (err.message?.includes('code:442') || err.message?.includes('not allowed to send message')) {
+        showToast('error', '您已被禁言,无法发送消息');
+      } else {
+        showToast('error', `消息发送失败: ${err.message}`);
+      }
     }
   };
 
@@ -929,7 +934,12 @@ export const useClassroom = ({ user }:{ user : User }) => {
         level: NORMAL,
       });
     } catch (err: any) {
-      setErrorMessage(`举手失败: ${err.message}`);
+      // 检查是否为禁言错误 (错误码442)
+      if (err.message?.includes('code:442') || err.message?.includes('not allowed to send message')) {
+        setErrorMessage('您已被禁言,无法举手提问');
+      } else {
+        setErrorMessage(`举手失败: ${err.message}`);
+      }
     }
   };
 
@@ -1070,7 +1080,12 @@ export const useClassroom = ({ user }:{ user : User }) => {
         level: NORMAL,
       });
     } catch (err: any) {
-      setErrorMessage(`问题发送失败: ${err.message}`);
+      // 检查是否为禁言错误 (错误码442)
+      if (err.message?.includes('code:442') || err.message?.includes('not allowed to send message')) {
+        setErrorMessage('您已被禁言,无法发送问题');
+      } else {
+        setErrorMessage(`问题发送失败: ${err.message}`);
+      }
     }
   };