|
|
@@ -22,8 +22,10 @@ import {
|
|
|
} from '@/client/components/ui/dialog';
|
|
|
import { IMToggleMuteButton } from './IMToggleMuteButton';
|
|
|
import { RTCToggleMuteButton } from './RTCToggleMuteButton';
|
|
|
+import { useAuth } from '../../hooks/AuthProvider';
|
|
|
|
|
|
export const TeacherStudentManagementButton: React.FC = () => {
|
|
|
+ const { user } = useAuth();
|
|
|
const { students, kickStudent, onlineCount, pvCount } = useClassroomContext();
|
|
|
const [showPanel, setShowPanel] = useState(false);
|
|
|
const [confirmDialog, setConfirmDialog] = useState<{
|
|
|
@@ -79,7 +81,7 @@ export const TeacherStudentManagementButton: React.FC = () => {
|
|
|
<Button
|
|
|
type="button"
|
|
|
className="p-2 rounded-full bg-blue-500 text-white relative"
|
|
|
- title={`学生管理 (${students.length})`}
|
|
|
+ title={`人员管理 (${students.length})`}
|
|
|
size="icon"
|
|
|
variant="ghost"
|
|
|
>
|
|
|
@@ -96,7 +98,7 @@ export const TeacherStudentManagementButton: React.FC = () => {
|
|
|
<DialogHeader>
|
|
|
<DialogTitle className="flex items-center">
|
|
|
<UserGroupIcon className="w-4 h-4 mr-2 text-blue-500" />
|
|
|
- 学生管理 ({students.length})
|
|
|
+ 人员管理 ({students.length})
|
|
|
</DialogTitle>
|
|
|
</DialogHeader>
|
|
|
|
|
|
@@ -123,16 +125,20 @@ export const TeacherStudentManagementButton: React.FC = () => {
|
|
|
<div key={student.id} className="flex items-center justify-between p-2 border rounded text-sm">
|
|
|
<span>{student.name}</span>
|
|
|
<div className="flex gap-1 flex-wrap">
|
|
|
- <RTCToggleMuteButton userId={student.id} userName={student.name} />
|
|
|
- <IMToggleMuteButton userId={student.id} userName={student.name} />
|
|
|
- <Button
|
|
|
- onClick={() => openConfirmDialog('kick', student.id, student.name)}
|
|
|
- variant="outline"
|
|
|
- size="sm"
|
|
|
- className="text-xs bg-red-100 text-red-700 hover:bg-red-200 border-red-300"
|
|
|
- >
|
|
|
- 移出
|
|
|
- </Button>
|
|
|
+ {Number(student.id) !== user?.id && (
|
|
|
+ <>
|
|
|
+ <RTCToggleMuteButton userId={student.id} userName={student.name} />
|
|
|
+ <IMToggleMuteButton userId={student.id} userName={student.name} />
|
|
|
+ <Button
|
|
|
+ onClick={() => openConfirmDialog('kick', student.id, student.name)}
|
|
|
+ variant="outline"
|
|
|
+ size="sm"
|
|
|
+ className="text-xs bg-red-100 text-red-700 hover:bg-red-200 border-red-300"
|
|
|
+ >
|
|
|
+ 移出
|
|
|
+ </Button>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
</div>
|
|
|
</div>
|
|
|
))}
|