| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { ExcalidrawApp } from '@jitsi/excalidraw';
- import i18next from 'i18next';
- import React, { useCallback, useRef } from 'react';
-
- import { WHITEBOARD_UI_OPTIONS } from '../../constants';
-
- /**
- * Whiteboard wrapper for mobile.
- *
- * @returns {JSX.Element}
- */
- const WhiteboardWrapper = ({
- className,
- collabDetails,
- collabServerUrl,
- localParticipantName
- }: {
- className?: string;
- collabDetails: {
- roomId: string;
- roomKey: string;
- };
- collabServerUrl: string;
- localParticipantName: string;
- }) => {
- const excalidrawRef = useRef<any>(null);
- const excalidrawAPIRef = useRef<any>(null);
- const collabAPIRef = useRef<any>(null);
-
- const getExcalidrawAPI = useCallback(excalidrawAPI => {
- if (excalidrawAPIRef.current) {
- return;
- }
- excalidrawAPIRef.current = excalidrawAPI;
- }, []);
-
- const getCollabAPI = useCallback(collabAPI => {
- if (collabAPIRef.current) {
- return;
- }
- collabAPIRef.current = collabAPI;
- collabAPIRef.current.setUsername(localParticipantName);
- }, [ localParticipantName ]);
-
- return (
- <div className = { className }>
- <div className = 'excalidraw-wrapper'>
- <ExcalidrawApp
- collabDetails = { collabDetails }
- collabServerUrl = { collabServerUrl }
- detectScroll = { true }
- excalidraw = {{
- isCollaborating: true,
- langCode: i18next.language,
-
- // @ts-ignore
- ref: excalidrawRef,
- theme: 'light',
- UIOptions: WHITEBOARD_UI_OPTIONS
- }}
- getCollabAPI = { getCollabAPI }
- getExcalidrawAPI = { getExcalidrawAPI } />
- </div>
-
-
- </div>
- );
- };
-
- export default WhiteboardWrapper;
|