aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/webcam
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2022-07-08 00:17:26 -0400
committerbobzel <zzzman@gmail.com>2022-07-08 00:17:26 -0400
commit146f8622d5bac2edc6b09f57c173bd057dfbcfad (patch)
treef871089c438a476543ca96bac163c0532b9557c7 /src/client/views/webcam
parentb7e66da6b23cdb41c127000dfe13843d35f7d0cc (diff)
restructured currentUserUtils to avoid having import cycles.
Diffstat (limited to 'src/client/views/webcam')
-rw-r--r--src/client/views/webcam/DashWebRTCVideo.tsx88
1 files changed, 43 insertions, 45 deletions
diff --git a/src/client/views/webcam/DashWebRTCVideo.tsx b/src/client/views/webcam/DashWebRTCVideo.tsx
index 6c0c9b301..02e44a793 100644
--- a/src/client/views/webcam/DashWebRTCVideo.tsx
+++ b/src/client/views/webcam/DashWebRTCVideo.tsx
@@ -1,86 +1,84 @@
-import { faPhoneSlash, faSync } from "@fortawesome/free-solid-svg-icons";
-import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { action, observable } from "mobx";
-import { observer } from "mobx-react";
-import { Doc } from "../../../fields/Doc";
-import { InkTool } from "../../../fields/InkField";
-import "../../views/nodes/WebBox.scss";
-import { DocumentDecorations } from "../DocumentDecorations";
-import { CollectionFreeFormDocumentViewProps } from "../nodes/CollectionFreeFormDocumentView";
-import { FieldView, FieldViewProps } from "../nodes/FieldView";
-import "./DashWebRTCVideo.scss";
-import { hangup, initialize, refreshVideos } from "./WebCamLogic";
-import React = require("react");
-import { CurrentUserUtils } from "../../util/CurrentUserUtils";
-import { IconLookup } from "@fortawesome/fontawesome-svg-core";
-
+import { IconLookup } from '@fortawesome/fontawesome-svg-core';
+import { faPhoneSlash, faSync } from '@fortawesome/free-solid-svg-icons';
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
+import { action, observable } from 'mobx';
+import { observer } from 'mobx-react';
+import { Doc } from '../../../fields/Doc';
+import { InkTool } from '../../../fields/InkField';
+import '../../views/nodes/WebBox.scss';
+import { DocumentDecorations } from '../DocumentDecorations';
+import { CollectionFreeFormDocumentViewProps } from '../nodes/CollectionFreeFormDocumentView';
+import { FieldView, FieldViewProps } from '../nodes/FieldView';
+import './DashWebRTCVideo.scss';
+import { hangup, initialize, refreshVideos } from './WebCamLogic';
+import React = require('react');
/**
* This models the component that will be rendered, that can be used as a doc that will reflect the video cams.
*/
@observer
export class DashWebRTCVideo extends React.Component<CollectionFreeFormDocumentViewProps & FieldViewProps> {
-
private roomText: HTMLInputElement | undefined;
@observable remoteVideoAdded: boolean = false;
@action
changeUILook = () => {
this.remoteVideoAdded = true;
- }
+ };
/**
- * Function that submits the title entered by user on enter press.
- */
+ * Function that submits the title entered by user on enter press.
+ */
private onEnterKeyDown = (e: React.KeyboardEvent) => {
if (e.keyCode === 13) {
const submittedTitle = this.roomText!.value;
- this.roomText!.value = "";
+ this.roomText!.value = '';
this.roomText!.blur();
initialize(submittedTitle, this.changeUILook);
}
- }
-
+ };
- public static LayoutString(fieldKey: string) { return FieldView.LayoutString(DashWebRTCVideo, fieldKey); }
+ public static LayoutString(fieldKey: string) {
+ return FieldView.LayoutString(DashWebRTCVideo, fieldKey);
+ }
@action
onClickRefresh = () => {
refreshVideos();
- }
+ };
onClickHangUp = () => {
hangup();
- }
+ };
render() {
- const content =
- <div className="webcam-cont" style={{ width: "100%", height: "100%" }}>
+ const content = (
+ <div className="webcam-cont" style={{ width: '100%', height: '100%' }}>
<div className="webcam-header">DashWebRTC</div>
- <input id="roomName" type="text" placeholder="Enter room name" ref={(e) => this.roomText = e!} onKeyDown={this.onEnterKeyDown} />
+ <input id="roomName" type="text" placeholder="Enter room name" ref={e => (this.roomText = e!)} onKeyDown={this.onEnterKeyDown} />
<div className="videoContainer">
- <video id="localVideo" className={"RTCVideo" + (this.remoteVideoAdded ? " side" : " main")} autoPlay playsInline muted ref={(e) => {
- }}></video>
- <video id="remoteVideo" className="RTCVideo main" autoPlay playsInline ref={(e) => {
- }}></video>
+ <video id="localVideo" className={'RTCVideo' + (this.remoteVideoAdded ? ' side' : ' main')} autoPlay playsInline muted ref={e => {}}></video>
+ <video id="remoteVideo" className="RTCVideo main" autoPlay playsInline ref={e => {}}></video>
</div>
<div className="buttonContainer">
- <div className="videoButtons" style={{ background: "red" }} onClick={this.onClickHangUp}><FontAwesomeIcon icon={faPhoneSlash as IconLookup} color="white" /></div>
- <div className="videoButtons" style={{ background: "green" }} onClick={this.onClickRefresh}><FontAwesomeIcon icon={faSync as IconLookup} color="white" /></div>
+ <div className="videoButtons" style={{ background: 'red' }} onClick={this.onClickHangUp}>
+ <FontAwesomeIcon icon={faPhoneSlash as IconLookup} color="white" />
+ </div>
+ <div className="videoButtons" style={{ background: 'green' }} onClick={this.onClickRefresh}>
+ <FontAwesomeIcon icon={faSync as IconLookup} color="white" />
+ </div>
</div>
- </div >;
+ </div>
+ );
const frozen = !this.props.isSelected() || DocumentDecorations.Instance.Interacting;
- const classname = "webBox-cont" + (this.props.isSelected() && CurrentUserUtils.ActiveTool === InkTool.None && !DocumentDecorations.Instance.Interacting ? "-interactive" : "");
+ const classname = 'webBox-cont' + (this.props.isSelected() && Doc.ActiveTool === InkTool.None && !DocumentDecorations.Instance.Interacting ? '-interactive' : '');
return (
<>
- <div className={classname} >
- {content}
- </div>
- {!frozen ? (null) : <div className="webBox-overlay" />}
- </>);
+ <div className={classname}>{content}</div>
+ {!frozen ? null : <div className="webBox-overlay" />}
+ </>
+ );
}
-
-
-} \ No newline at end of file
+}