diff options
| author | andrewdkim <adkim414@gmail.com> | 2019-07-23 17:26:00 -0400 |
|---|---|---|
| committer | andrewdkim <adkim414@gmail.com> | 2019-07-23 17:26:00 -0400 |
| commit | 310f83002d715d50a32754fe78d48fc993edebe6 (patch) | |
| tree | d59ebc84f6c69295ccf66fbb62deaf7721bdc54a /src/client/views/nodes/FaceRectangles.tsx | |
| parent | b1aeba02f24215735e338b6245faf840f69ba7b4 (diff) | |
| parent | 97776a0f1725de5b512b803497af0801141c7f73 (diff) | |
Merge branch 'master' of https://github.com/browngraphicslab/Dash-Web into animationtimeline
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 |
