classroom beforeunload pagehide
This commit is contained in:
parent
55c9464c5e
commit
6eea5f8880
1 changed files with 10 additions and 50 deletions
|
|
@ -133,8 +133,6 @@ const RoomDetail: React.FC = () => {
|
|||
autoMuteNewParticipants: true,
|
||||
})
|
||||
|
||||
const hasTeacher = (list: ClassroomParticipantDto[]) => list.some((p) => p.isTeacher)
|
||||
|
||||
const signalRServiceRef = useRef<SignalRService>()
|
||||
const webRTCServiceRef = useRef<WebRTCService>()
|
||||
|
||||
|
|
@ -668,17 +666,6 @@ const RoomDetail: React.FC = () => {
|
|||
return `${mins}m`
|
||||
}
|
||||
|
||||
const getTimeSince = (timestamp: string) => {
|
||||
const now = new Date()
|
||||
const time = new Date(timestamp)
|
||||
const diffMinutes = Math.floor((now.getTime() - time.getTime()) / 60000)
|
||||
|
||||
if (diffMinutes < 1) return 'Az önce'
|
||||
if (diffMinutes < 60) return `${diffMinutes} dakika önce`
|
||||
const hours = Math.floor(diffMinutes / 60)
|
||||
return `${hours} saat önce`
|
||||
}
|
||||
|
||||
const getFileIcon = (type: string) => {
|
||||
if (type.includes('pdf')) return <FaFilePdf className="text-red-500" />
|
||||
if (
|
||||
|
|
@ -700,43 +687,6 @@ const RoomDetail: React.FC = () => {
|
|||
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]
|
||||
}
|
||||
|
||||
const handleDrop = (e: React.DragEvent) => {
|
||||
e.preventDefault()
|
||||
setDragOver(false)
|
||||
|
||||
if (user.role !== 'teacher' || !handleUploadDocument) return
|
||||
|
||||
const files = Array.from(e.dataTransfer.files)
|
||||
files.forEach((file) => handleUploadDocument(file))
|
||||
}
|
||||
|
||||
const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>) => {
|
||||
if (user.role !== 'teacher' || !handleUploadDocument) return
|
||||
|
||||
const files = Array.from(e.target.files || [])
|
||||
files.forEach((file) => handleUploadDocument(file))
|
||||
|
||||
// Reset input
|
||||
if (fileInputRef.current) {
|
||||
fileInputRef.current.value = ''
|
||||
}
|
||||
}
|
||||
|
||||
const getLayoutIcon = (type: string) => {
|
||||
switch (type) {
|
||||
case 'grid':
|
||||
return <FaTh size={24} />
|
||||
case 'speaker':
|
||||
return <FaExpand size={24} />
|
||||
case 'presentation':
|
||||
return <FaDesktop size={24} />
|
||||
case 'sidebar':
|
||||
return <FaUsers size={24} />
|
||||
default:
|
||||
return <FaTh size={24} />
|
||||
}
|
||||
}
|
||||
|
||||
const renderSidePanel = () => {
|
||||
if (!activeSidePanel) return null
|
||||
|
||||
|
|
@ -812,6 +762,16 @@ const RoomDetail: React.FC = () => {
|
|||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
window.addEventListener('beforeunload', handleLeaveCall)
|
||||
window.addEventListener('pagehide', handleLeaveCall)
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('beforeunload', handleLeaveCall)
|
||||
window.removeEventListener('pagehide', handleLeaveCall)
|
||||
}
|
||||
}, [classSession.id])
|
||||
|
||||
return (
|
||||
<>
|
||||
<Helmet
|
||||
|
|
|
|||
Loading…
Reference in a new issue