diff options
| author | yipstanley <stanley_yip@brown.edu> | 2019-07-25 19:33:44 -0400 |
|---|---|---|
| committer | yipstanley <stanley_yip@brown.edu> | 2019-07-25 19:33:44 -0400 |
| commit | 6c6c2a6c8e40b9f04942e65c416e16f1d3831385 (patch) | |
| tree | 94c24a134e4a71bee473a93c59cfcf690f6a87e8 /src/client/views/nodes/FaceRectangles.tsx | |
| parent | 0baefb4e0b133df60f42d894733113c961740af3 (diff) | |
| parent | e1c7add158ce245ce6cb557177986b31fe107dd8 (diff) | |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into stackingSections_2
Diffstat (limited to 'src/client/views/nodes/FaceRectangles.tsx')
| -rw-r--r-- | src/client/views/nodes/FaceRectangles.tsx | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/client/views/nodes/FaceRectangles.tsx b/src/client/views/nodes/FaceRectangles.tsx new file mode 100644 index 000000000..3570531b2 --- /dev/null +++ b/src/client/views/nodes/FaceRectangles.tsx @@ -0,0 +1,46 @@ +import React = require("react"); +import { Doc, DocListCast } from "../../../new_fields/Doc"; +import { Cast, NumCast } from "../../../new_fields/Types"; +import { observer } from "mobx-react"; +import { Id } from "../../../new_fields/FieldSymbols"; +import FaceRectangle from "./FaceRectangle"; + +interface FaceRectanglesProps { + document: Doc; + color: string; + backgroundColor: string; +} + +export interface RectangleTemplate { + id: string; + style: Partial<React.CSSProperties>; +} + +@observer +export default class FaceRectangles extends React.Component<FaceRectanglesProps> { + + render() { + let faces = DocListCast(Doc.GetProto(this.props.document).faces); + let templates: RectangleTemplate[] = faces.map(faceDoc => { + let rectangle = Cast(faceDoc.faceRectangle, Doc) as Doc; + let style = { + top: NumCast(rectangle.top), + left: NumCast(rectangle.left), + width: NumCast(rectangle.width), + height: NumCast(rectangle.height), + backgroundColor: `${this.props.backgroundColor}33`, + border: `solid 2px ${this.props.color}`, + } as React.CSSProperties; + return { + id: rectangle[Id], + style: style + }; + }); + return ( + <div> + {templates.map(rectangle => <FaceRectangle key={rectangle.id} rectangle={rectangle} />)} + </div> + ); + } + +}
\ No newline at end of file |
