@@ -44,7 +44,8 @@ export default class extends Controller {
4444 connectionId : null , // Store our connection ID
4545 // File transfer
4646 fileSharing : false ,
47- pendingFile : null
47+ pendingFile : null ,
48+ fileSizeLimit : FILE_SIZE_LIMIT
4849 }
4950 this . sender = null
5051 this . receiver = null
@@ -174,6 +175,7 @@ export default class extends Controller {
174175 // Store our connection ID and initialize peer
175176 this . state . connectionId = data . connection_id
176177 this . state . fileSharing = data . file_sharing === true
178+ this . state . fileSizeLimit = Number ( data . file_size_limit ) > 0 ? Number ( data . file_size_limit ) : FILE_SIZE_LIMIT
177179 console . log ( "[Room] Got init message, initiator:" , data . initiator , "connection_id:" , data . connection_id , "file_sharing:" , this . state . fileSharing )
178180 this . initializePeer ( data . initiator )
179181 } else if ( data . type === "peer_ready" ) {
@@ -469,8 +471,8 @@ export default class extends Controller {
469471 */
470472 _requestFileTransfer ( file ) {
471473 if ( this . state . roomTerminated || ! this . state . p2p ) return
472- if ( file . size > FILE_SIZE_LIMIT ) {
473- this . showError ( " Files must be under 24 MB." )
474+ if ( file . size > this . state . fileSizeLimit ) {
475+ this . showError ( ` Files must be under ${ this . _fileSizeLimitLabel ( ) } .` )
474476 return
475477 }
476478 // Store the file and ask the server gate
@@ -493,6 +495,7 @@ export default class extends Controller {
493495 ( name , percent ) => this . updateFileProgress ( name , percent ) ,
494496 ( msg ) => this . showError ( msg )
495497 )
498+ this . sender . setFileSizeLimit ( this . state . fileSizeLimit )
496499
497500 this . receiver = new FileTransferReceiver (
498501 decryptFn ,
@@ -581,6 +584,11 @@ export default class extends Controller {
581584 return `${ ( bytes / 1_048_576 ) . toFixed ( 1 ) } MB`
582585 }
583586
587+ _fileSizeLimitLabel ( ) {
588+ const mebibytes = this . state . fileSizeLimit / ( 1024 * 1024 )
589+ return Number . isInteger ( mebibytes ) ? `${ mebibytes } MB` : `${ mebibytes . toFixed ( 1 ) } MB`
590+ }
591+
584592 // ── Utilities ─────────────────────────────────────────────────────────────
585593
586594 // Escape user-provided text before injecting into the DOM.
0 commit comments