Sfoglia il codice sorgente

✨ feat(mobile): 新增公开和解盘室入口

- 修改教室导航链接结构,支持传递classId参数
- 添加公开解盘室和学员解盘室两个入口按钮
- 从全局配置获取聊天室ID并传递给导航函数
- 更新导航路径格式,包含classId参数

🔧 chore(config): 添加聊天室ID配置项

- 在全局配置中新增PUBLIC_CHATROOM_ID和PRIVATE_CHATROOM_ID
- 从环境变量读取聊天室ID配置,提供默认空值
- 更新GlobalConfig类型定义,包含新的配置字段
yourname 6 mesi fa
parent
commit
e37641de16

+ 12 - 5
src/client/mobile/pages/StockHomePage.tsx

@@ -1,16 +1,17 @@
 import { useNavigate } from "react-router";
 import { useNavigate } from "react-router";
 import { useAuth } from "@/client/mobile/hooks/AuthProvider";
 import { useAuth } from "@/client/mobile/hooks/AuthProvider";
 import { UserType } from "@/server/modules/users/user.enum";
 import { UserType } from "@/server/modules/users/user.enum";
+import { getGlobalConfig } from "@/client/utils/utils";
 
 
 export default function StockHomePage() {
 export default function StockHomePage() {
   const { user } = useAuth();
   const { user } = useAuth();
   const navigate = useNavigate();
   const navigate = useNavigate();
 
 
-  const handleClassroomClick = () => {
+  const handleClassroomClick = (classId = '') => {
     if (user?.userType === UserType.TEACHER) {
     if (user?.userType === UserType.TEACHER) {
-      navigate('/mobile/classroom/' + UserType.TEACHER);
+      navigate(`/mobile/classroom/${classId}/${UserType.TEACHER}`);
     } else {
     } else {
-      navigate('/mobile/classroom/' + UserType.STUDENT);
+      navigate(`/mobile/classroom/${classId}/${UserType.STUDENT}`);
     }
     }
   };
   };
 
 
@@ -56,10 +57,16 @@ export default function StockHomePage() {
         
         
         <div className="flex flex-col gap-4 max-w-md mx-auto">
         <div className="flex flex-col gap-4 max-w-md mx-auto">
           <button
           <button
-            onClick={handleClassroomClick}
+            onClick={() => handleClassroomClick(getGlobalConfig('PUBLIC_CHATROOM_ID'))}
             className="bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg shadow-md transition-colors duration-200 text-center"
             className="bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg shadow-md transition-colors duration-200 text-center"
           >
           >
-            解盘室
+            公开解盘室
+          </button>
+          <button
+            onClick={() => handleClassroomClick(getGlobalConfig('PRIVATE_CHATROOM_ID'))}
+            className="bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg shadow-md transition-colors duration-200 text-center"
+          >
+            学员解盘室
           </button>
           </button>
           <button
           <button
             onClick={() => navigate('/mobile/exam')}
             onClick={() => navigate('/mobile/exam')}

+ 2 - 0
src/server/renderer.tsx

@@ -7,6 +7,8 @@ import process from 'node:process'
 const GLOBAL_CONFIG: GlobalConfig = {
 const GLOBAL_CONFIG: GlobalConfig = {
   OSS_BASE_URL: process.env.OSS_BASE_URL || 'https://oss.d8d.fun',
   OSS_BASE_URL: process.env.OSS_BASE_URL || 'https://oss.d8d.fun',
   APP_NAME: process.env.APP_NAME || '多八多Aider',
   APP_NAME: process.env.APP_NAME || '多八多Aider',
+  PUBLIC_CHATROOM_ID: process.env.PUBLIC_CHATROOM_ID || '',
+  PRIVATE_CHATROOM_ID: process.env.PRIVATE_CHATROOM_ID || '',
 }
 }
 
 
 // export const renderer = reactRenderer(({ children }) => {
 // export const renderer = reactRenderer(({ children }) => {

+ 2 - 0
src/share/types.ts

@@ -2,6 +2,8 @@
 export interface GlobalConfig {
 export interface GlobalConfig {
   OSS_BASE_URL: string;
   OSS_BASE_URL: string;
   APP_NAME: string;
   APP_NAME: string;
+  PUBLIC_CHATROOM_ID: string;
+  PRIVATE_CHATROOM_ID: string;
 }
 }
 
 
 // 认证上下文类型
 // 认证上下文类型