Deploy document editor component for mobile in React Document editor component

29 Aug 20232 minutes to read

Document editor component for Mobile

At present, Document editor component is not responsive for mobile, and we haven’t ensured the editing functionalities in mobile browsers. Whereas it works properly as a document viewer in mobile browsers.

Hence, it is recommended to switch the Document editor component as read-only in mobile browsers. Also, invoke fitPage method with FitPageWidth parameter in document change event, such as to display one full page by adjusting the zoom factor.

The following example code illustrates how to deploy Document Editor component for Mobile.

//Initialize Document Editor Container component.
import { DocumentEditorContainer, Toolbar, DocumentEditorContainerComponent } from '@syncfusion/ej2-react-documenteditor';
import * as ReactDOM from 'react-dom';
import * as React from 'react';

DocumentEditorContainerComponent.Inject(Toolbar);
function App() {
    let container: DocumentEditorContainerComponent;
    let hosturl = 'https://ej2services.syncfusion.com/production/web-services/api/documenteditor/';

    function onDocumentChange() {
        let proxy = container;
        //To detect the device
        let isMobileDevice = /Android|Windows Phone|webOS/i.test(navigator.userAgent);

        if (isMobileDevice) {
            proxy.restrictEditing = true;
            setTimeout(() => {
                proxy.documentEditor.fitPage("FitPageWidth");
            }, 50);
        }
        else {
            proxy.restrictEditing = false;
        }
    }
    return (
        <div className="App">
            <DocumentEditorContainerComponent id="container" ref={(scope) => { container = scope; }} style={{ 'height': '590px' }} enableToolbar={true} documentChange={onDocumentChange} serviceUrl={hosturl} height={'590px'} />
        </div>
    );
}
export default App;
ReactDOM.render(<App />, document.getElementById('sample'));

You can download the complete working example from this GitHub location

Note: You can use the restrictEditing in DocumentEditorContainer and isReadOnly in DocumentEditor based on your requirement to change component to read only mode.