diff options
author | madelinegr <mgriswold99@gmail.com> | 2019-06-06 18:47:48 -0400 |
---|---|---|
committer | madelinegr <mgriswold99@gmail.com> | 2019-06-06 18:47:48 -0400 |
commit | ecbf6dda7f410f866b1031966982b23b031e72ee (patch) | |
tree | b7c8943f44e96b1a2710bbd74ad1832df207abe9 | |
parent | 51c59893afd84eb9f36669282cbf0479ee9d9f84 (diff) |
Pres ELements mapped
-rw-r--r-- | src/client/views/presentationview/PresentationElement.tsx | 16 | ||||
-rw-r--r-- | src/client/views/presentationview/PresentationView.tsx | 8 |
2 files changed, 14 insertions, 10 deletions
diff --git a/src/client/views/presentationview/PresentationElement.tsx b/src/client/views/presentationview/PresentationElement.tsx index f5220c564..33c0289d7 100644 --- a/src/client/views/presentationview/PresentationElement.tsx +++ b/src/client/views/presentationview/PresentationElement.tsx @@ -3,7 +3,7 @@ import React = require("react"); import { Doc } from "../../../new_fields/Doc"; import { NumCast, BoolCast, StrCast } from "../../../new_fields/Types"; import { Id } from "../../../new_fields/FieldSymbols"; -import { observable, action } from "mobx"; +import { observable, action, computed } from "mobx"; import "./PresentationView.scss"; import { Utils } from "../../../Utils"; @@ -35,6 +35,10 @@ export default class PresentationElement extends React.Component<PresentationEle @observable selectedButtons: boolean[] = new Array(6); + @computed + get selected() { + return this.selectedButtons; + } @action onGroupClick = (document: Doc, index: number, buttonStatus: boolean) => { @@ -118,18 +122,16 @@ export default class PresentationElement extends React.Component<PresentationEle e.stopPropagation(); if (this.selectedButtons[buttonIndex.HideTillPressed]) { this.selectedButtons[buttonIndex.HideTillPressed] = false; + this.props.document.opacity = 1; } else { this.selectedButtons[buttonIndex.HideTillPressed] = true; - } - } + this.props.document.opacity = 0; - hideDocumentIfNotPressed = () => { - this.props.allListElements.forEach((doc: Doc) => doc.opacity = 1); + } } - render() { let p = this.props; let title = p.document.title; @@ -160,7 +162,7 @@ export default class PresentationElement extends React.Component<PresentationEle <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.HideTillPressed] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={(e) => { this.onHideDocumentUntilPressClick(e); this.hideDocumentIfNotPressed(); }}>C</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"}>D</button> <button className={this.selectedButtons[buttonIndex.HideAfter] ? "presentation-interaction-selected" : "presentation-interaction"}>E</button> <button className={this.selectedButtons[buttonIndex.Group] ? "presentation-interaction-selected" : "presentation-interaction"} onClick={(e) => { diff --git a/src/client/views/presentationview/PresentationView.tsx b/src/client/views/presentationview/PresentationView.tsx index 3263ea62e..0655418f4 100644 --- a/src/client/views/presentationview/PresentationView.tsx +++ b/src/client/views/presentationview/PresentationView.tsx @@ -20,6 +20,7 @@ interface PresListProps extends PresViewProps { deleteDocument(index: number): void; gotoDocument(index: number): void; groupMappings: Map<String, Doc[]>; + presElementsMappings: Map<Doc, PresentationElement>; } @@ -107,10 +108,10 @@ class PresentationViewList extends React.Component<PresListProps> { render() { const children = DocListCast(this.props.Document.data); this.initializeGroupIds(children); - return ( + <div className="presentationView-listCont"> - {children.map((doc: Doc, index: number) => <PresentationElement key={index} mainDocument={this.props.Document} document={doc} index={index} deleteDocument={this.props.deleteDocument} gotoDocument={this.props.gotoDocument} groupMappings={this.props.groupMappings} allListElements={children} />)} + {children.map((doc: Doc, index: number) => <PresentationElement ref={(e) => this.props.presElementsMappings.set(doc, e!)} key={index} mainDocument={this.props.Document} document={doc} index={index} deleteDocument={this.props.deleteDocument} gotoDocument={this.props.gotoDocument} groupMappings={this.props.groupMappings} allListElements={children} />)} </div> ); } @@ -123,6 +124,7 @@ export class PresentationView extends React.Component<PresViewProps> { @observable groupedMembers: Doc[][] = []; @observable groupMappings: Map<String, Doc[]> = new Map(); + @observable presElementsMappings: Map<Doc, PresentationElement> = new Map(); //observable means render is re-called every time variable is changed @observable @@ -197,7 +199,7 @@ export class PresentationView extends React.Component<PresViewProps> { <button className="presentation-button" onClick={this.back}>back</button> <button className="presentation-button" onClick={this.next}>next</button> </div> - <PresentationViewList Document={this.props.Document} deleteDocument={this.RemoveDoc} gotoDocument={this.gotoDocument} groupMappings={this.groupMappings} /> + <PresentationViewList Document={this.props.Document} deleteDocument={this.RemoveDoc} gotoDocument={this.gotoDocument} groupMappings={this.groupMappings} presElementsMappings={this.presElementsMappings} /> </div> ); } |