diff options
Diffstat (limited to 'src/client/views/Main.tsx')
-rw-r--r-- | src/client/views/Main.tsx | 50 |
1 files changed, 35 insertions, 15 deletions
diff --git a/src/client/views/Main.tsx b/src/client/views/Main.tsx index 0469211fa..d8e429ad1 100644 --- a/src/client/views/Main.tsx +++ b/src/client/views/Main.tsx @@ -12,7 +12,6 @@ import { Document } from '../../fields/Document'; import { Field, FieldWaiting, Opt, FIELD_WAITING } from '../../fields/Field'; import { KeyStore } from '../../fields/KeyStore'; import { ListField } from '../../fields/ListField'; -import { WorkspacesMenu } from '../../server/authentication/controllers/WorkspacesMenu'; import { CurrentUserUtils } from '../../server/authentication/models/current_user_utils'; import { MessageStore } from '../../server/Message'; import { RouteStore } from '../../server/RouteStore'; @@ -30,6 +29,8 @@ import { Server } from '../Server'; import { SetupDrag } from '../util/DragManager'; import { Transform } from '../util/Transform'; import { UndoManager } from '../util/UndoManager'; +import { PresentationView } from './PresentationView'; +import { WorkspacesMenu } from '../../server/authentication/controllers/WorkspacesMenu'; import { CollectionDockingView } from './collections/CollectionDockingView'; import { ContextMenu } from './ContextMenu'; import { DocumentDecorations } from './DocumentDecorations'; @@ -51,7 +52,10 @@ export class Main extends React.Component { return CurrentUserUtils.UserDocument.GetT(KeyStore.ActiveWorkspace, Document); } private set mainContainer(doc: Document | undefined | FIELD_WAITING) { - doc && CurrentUserUtils.UserDocument.Set(KeyStore.ActiveWorkspace, doc); + if (doc) { + doc.GetOrCreateAsync(KeyStore.PresentationView, Document, doc => { }); + CurrentUserUtils.UserDocument.Set(KeyStore.ActiveWorkspace, doc); + } } constructor(props: Readonly<{}>) { @@ -170,28 +174,44 @@ export class Main extends React.Component { } @computed + get presentationView() { + if (this.mainContainer) { + let presentation = this.mainContainer.GetT(KeyStore.PresentationView, Document); + return presentation ? <PresentationView Document={presentation} key="presentation" /> : (null); + } + return (null); + } + + @computed get mainContent() { let pwidthFunc = () => this.pwidth; let pheightFunc = () => this.pheight; let noScaling = () => 1; let mainCont = this.mainContainer; + let pcontent = this.presentationView; return <Measure onResize={action((r: any) => { this.pwidth = r.entry.width; this.pheight = r.entry.height; })}> {({ measureRef }) => <div ref={measureRef} id="mainContent-div"> {!mainCont ? (null) : - <DocumentView Document={mainCont} - addDocument={undefined} - removeDocument={undefined} - ScreenToLocalTransform={Transform.Identity} - ContentScaling={noScaling} - PanelWidth={pwidthFunc} - PanelHeight={pheightFunc} - isTopMost={true} - selectOnLoad={false} - focus={emptyDocFunction} - parentActive={returnTrue} - onActiveChanged={emptyFunction} - ContainingCollectionView={undefined} />} + <div style={{ width: "100%", height: "100%", position: "absolute", }}> + {pcontent} + <DocumentView + key="documentView" + Document={mainCont} + addDocument={undefined} + removeDocument={undefined} + ScreenToLocalTransform={Transform.Identity} + ContentScaling={noScaling} + PanelWidth={pwidthFunc} + PanelHeight={pheightFunc} + isTopMost={true} + selectOnLoad={false} + focus={emptyDocFunction} + parentActive={returnTrue} + onActiveChanged={emptyFunction} + ContainingCollectionView={undefined} /> + </div> + } </div> } </Measure>; |