aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/OverlayView.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/OverlayView.tsx')
-rw-r--r--src/client/views/OverlayView.tsx29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/client/views/OverlayView.tsx b/src/client/views/OverlayView.tsx
index a7907a565..5e9677b45 100644
--- a/src/client/views/OverlayView.tsx
+++ b/src/client/views/OverlayView.tsx
@@ -3,9 +3,10 @@ import { observer } from 'mobx-react';
import { computedFn } from 'mobx-utils';
import * as React from 'react';
import ReactLoading from 'react-loading';
-import { returnEmptyDoclist, returnEmptyFilter, returnTrue, setupMoveUpEvents } from '../../ClientUtils';
+import ResizeObserver from 'resize-observer-polyfill';
+import { returnEmptyFilter, returnTrue, setupMoveUpEvents } from '../../ClientUtils';
import { Utils, emptyFunction } from '../../Utils';
-import { Doc } from '../../fields/Doc';
+import { Doc, returnEmptyDoclist } from '../../fields/Doc';
import { Height, Width } from '../../fields/DocSymbols';
import { Id } from '../../fields/FieldSymbols';
import { NumCast, toList } from '../../fields/Types';
@@ -15,11 +16,9 @@ import { dropActionType } from '../util/DropActionTypes';
import { Transform } from '../util/Transform';
import { ObservableReactComponent } from './ObservableReactComponent';
import './OverlayView.scss';
-import { DefaultStyleProvider } from './StyleProvider';
+import { DefaultStyleProvider, returnEmptyDocViewList } from './StyleProvider';
import { DocumentView, DocumentViewInternal } from './nodes/DocumentView';
-const _global = (window /* browser */ || global) /* node */ as any;
-
export type OverlayDisposer = () => void;
export type OverlayElementOptions = {
@@ -109,19 +108,19 @@ export class OverlayWindow extends ObservableReactComponent<OverlayWindowProps>
}
@observer
-export class OverlayView extends ObservableReactComponent<{}> {
+export class OverlayView extends ObservableReactComponent<object> {
// eslint-disable-next-line no-use-before-define
public static Instance: OverlayView;
@observable.shallow _elements: JSX.Element[] = [];
- constructor(props: any) {
+ constructor(props: object) {
super(props);
makeObservable(this);
if (!OverlayView.Instance) {
OverlayView.Instance = this;
- new _global.ResizeObserver(
- action((entries: any) => {
- Array.from(entries).forEach((entry: any) => {
+ new ResizeObserver(
+ action(entries => {
+ Array.from(entries).forEach(entry => {
Doc.MyOverlayDocs.forEach(docIn => {
const doc = docIn;
if (NumCast(doc.overlayX) > entry.contentRect.width - 10) {
@@ -162,17 +161,17 @@ export class OverlayView extends ObservableReactComponent<{}> {
@action
addWindow(contents: JSX.Element, options: OverlayElementOptions): OverlayDisposer {
- const remove = action(() => {
- const index = this._elements.indexOf(contents);
+ const remove = action((wincontents: JSX.Element) => {
+ const index = this._elements.indexOf(wincontents);
if (index !== -1) this._elements.splice(index, 1);
});
const wincontents = (
- <OverlayWindow onClick={remove} key={Utils.GenerateGuid()} overlayOptions={options}>
+ <OverlayWindow onClick={() => remove(wincontents)} key={Utils.GenerateGuid()} overlayOptions={options}>
{contents}
</OverlayWindow>
);
this._elements.push(wincontents);
- return remove;
+ return () => remove(wincontents);
}
removeOverlayDoc = (docs: Doc | Doc[]) => toList(docs).every(Doc.RemFromMyOverlay);
@@ -227,7 +226,7 @@ export class OverlayView extends ObservableReactComponent<{}> {
whenChildContentsActiveChanged={emptyFunction}
focus={emptyFunction}
styleProvider={DefaultStyleProvider}
- containerViewPath={returnEmptyDoclist}
+ containerViewPath={returnEmptyDocViewList}
addDocTab={DocumentViewInternal.addDocTabFunc}
pinToPres={emptyFunction}
childFilters={returnEmptyFilter}