aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/views/presentationview/PresentationElement.tsx13
-rw-r--r--src/client/views/presentationview/PresentationView.tsx29
2 files changed, 40 insertions, 2 deletions
diff --git a/src/client/views/presentationview/PresentationElement.tsx b/src/client/views/presentationview/PresentationElement.tsx
index e821c9478..c89cd4309 100644
--- a/src/client/views/presentationview/PresentationElement.tsx
+++ b/src/client/views/presentationview/PresentationElement.tsx
@@ -158,6 +158,17 @@ export default class PresentationElement extends React.Component<PresentationEle
}
}
+ @action
+ onNavigateDocumentClick = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ if (this.selectedButtons[buttonIndex.Navigate]) {
+ this.selectedButtons[buttonIndex.Navigate] = false;
+
+ } else {
+ this.selectedButtons[buttonIndex.Navigate] = true;
+ }
+ }
+
render() {
let p = this.props;
@@ -188,7 +199,7 @@ export default class PresentationElement extends React.Component<PresentationEle
<button className="presentation-icon" onClick={e => { this.props.deleteDocument(p.index); e.stopPropagation(); }}>X</button>
<br></br>
<button className={this.selectedButtons[buttonIndex.Show] ? "presentation-interaction-selected" : "presentation-interaction"}>A</button>
- <button className={this.selectedButtons[buttonIndex.Navigate] ? "presentation-interaction-selected" : "presentation-interaction"}>B</button>
+ <button className={this.selectedButtons[buttonIndex.Navigate] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={this.onNavigateDocumentClick}>B</button>
<button className={this.selectedButtons[buttonIndex.HideTillPressed] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={this.onHideDocumentUntilPressClick}>C</button>
<button className={this.selectedButtons[buttonIndex.FadeAfter] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={this.onFadeDocumentAfterPresentedClick}>D</button>
<button className={this.selectedButtons[buttonIndex.HideAfter] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={this.onHideDocumentAfterPresentedClick}>E</button>
diff --git a/src/client/views/presentationview/PresentationView.tsx b/src/client/views/presentationview/PresentationView.tsx
index efc333ee3..cbfad56d1 100644
--- a/src/client/views/presentationview/PresentationView.tsx
+++ b/src/client/views/presentationview/PresentationView.tsx
@@ -222,6 +222,32 @@ export class PresentationView extends React.Component<PresViewProps> {
});
}
+ navigateToElement = (curDoc: Doc) => {
+ let docToJump: Doc = curDoc;
+ let curDocPresId = StrCast(curDoc.presentId, null);
+
+ if (curDocPresId !== undefined) {
+ if (this.groupMappings.has(curDocPresId)) {
+ let currentDocGroup = this.groupMappings.get(curDocPresId)!;
+ currentDocGroup.forEach((doc: Doc, index: number) => {
+ let selectedButtons: boolean[] = this.presElementsMappings.get(doc)!.selected;
+ if (selectedButtons[buttonIndex.Navigate]) {
+ docToJump = doc;
+ }
+ });
+ }
+
+ }
+ if (docToJump === curDoc) {
+ if (this.presElementsMappings.get(curDoc)!.selected[buttonIndex.Navigate]) {
+ DocumentManager.Instance.jumpToDocument(curDoc);
+ } else {
+ return;
+ }
+ }
+ DocumentManager.Instance.jumpToDocument(docToJump);
+ }
+
getDocAtIndex = async (index: number) => {
const list = FieldValue(Cast(this.props.Document.data, listSpec(Doc)));
if (!list) {
@@ -255,7 +281,8 @@ export class PresentationView extends React.Component<PresViewProps> {
this.props.Document.selectedDoc = index;
const doc = await list[index];
- DocumentManager.Instance.jumpToDocument(doc);
+ // DocumentManager.Instance.jumpToDocument(doc);
+ this.navigateToElement(doc);
this.hideIfNotPresented(index);
this.showAfterPresented(index);