@@ -3,7 +3,6 @@ import Component from '@ember/component';
33import { action , computed } from '@ember/object' ;
44import { next } from '@ember/runloop' ;
55import config from 'ember-get-config' ;
6- import $ from 'jquery' ;
76
87import { layout } from 'ember-osf-web/decorators/component' ;
98
@@ -52,15 +51,25 @@ export default class FileRenderer extends Component {
5251 @computed ( 'download' , 'params' , 'version' )
5352 get downloadUrl ( ) : string {
5453 const { download, params, version } = this ;
55-
56- return `${ download } ?${ $ . param ( { ...params , ...( version ? { version } : { } ) } ) } ` ;
54+ if ( ! download ) {
55+ return '' ;
56+ }
57+ const downloadLink = new URL ( download ) ;
58+ downloadLink . searchParams . set ( 'direct' , params . direct || '' ) ;
59+ downloadLink . searchParams . set ( 'mode' , params . mode ) ;
60+ if ( version ) {
61+ downloadLink . searchParams . set ( 'version' , version . toString ( ) ) ;
62+ }
63+ return downloadLink . toString ( ) ;
5764 }
5865
5966 @computed ( 'downloadUrl' , 'isLoading' )
6067 get mfrUrl ( ) : string {
6168 // Waiting until the iframe is loaded then changing the URL avoids a race condition in the MFR iframe
6269 // This is most apparent in 3D files
63- return this . isLoading ? '' : `${ renderUrl } ?url=${ encodeURIComponent ( this . downloadUrl ) } ` ;
70+ const urlWithParams = new URL ( renderUrl ) ;
71+ urlWithParams . searchParams . set ( 'url' , this . downloadUrl ) ;
72+ return this . isLoading ? '' : urlWithParams . toString ( ) ;
6473 }
6574
6675 didReceiveAttrs ( ) : void {
0 commit comments