1+ import React from "react" ;
2+ import myrReference from "../../myr/modelReference" ;
3+
4+ import * as layoutTypes from "../../constants/LayoutTypes" ;
5+
6+ import {
7+ Tabs ,
8+ Tab ,
9+ IconButton ,
10+ Drawer ,
11+ Icon ,
12+ Table ,
13+ TableBody ,
14+ TableHead ,
15+ TableRow ,
16+ TableCell ,
17+ Tooltip ,
18+ Hidden
19+ } from "@material-ui/core" ;
20+
21+ const exitBtnStyle = {
22+ //paddingbottom: 100,
23+ position : "fixed" ,
24+ top : 0 ,
25+ right : 10 ,
26+ } ;
27+ const newTabStyle = {
28+ position : "fixed" ,
29+ top : 0 ,
30+ right : 50 ,
31+ } ;
32+ export default class ModelReference extends React . Component {
33+ constructor ( props ) {
34+ super ( props ) ;
35+ this . state = {
36+ value : "a"
37+ } ;
38+ this . tableData = myrReference ( ) ;
39+ }
40+
41+ handleChange = ( event , value ) => {
42+ this . setState ( { value } ) ;
43+ } ;
44+
45+ TableEx = ( category ) => {
46+ return (
47+ < Table >
48+ < TableHead >
49+ < TableRow >
50+ < TableCell > Name</ TableCell >
51+ < TableCell > Description</ TableCell >
52+ < TableCell className = 'refExample' > Example</ TableCell >
53+ </ TableRow >
54+ </ TableHead >
55+ < TableBody >
56+ { this . tableData [ category ] . map ( ( row , index ) => (
57+ < TableRow key = { index } >
58+ < TableCell > { row . name } </ TableCell >
59+ < TableCell > { row . description } </ TableCell >
60+ < TableCell > { this . exampleHelper ( row . example ) } </ TableCell >
61+ </ TableRow >
62+ ) ) }
63+ </ TableBody >
64+ </ Table >
65+ ) ;
66+ } ;
67+
68+ render ( ) {
69+ const style = {
70+ margin : 2 ,
71+ padding : 0 ,
72+ color : "#fff" ,
73+ } ;
74+ const isDisabled = this . props . layoutType === layoutTypes . REFERENCE ;
75+ return (
76+ < div >
77+ { ! isDisabled ?
78+ < React . Fragment >
79+ < Tooltip title = "Reference" placement = "bottom-start" >
80+ < IconButton
81+ id = "ref-btn"
82+ className = "header-btn d-none d-md-block"
83+ aria-haspopup = "true"
84+ onClick = { this . props . handleReferenceToggle }
85+ style = { style } >
86+ < Icon style = { { color : "#fff" } } className = "material-icons" > help</ Icon >
87+ </ IconButton >
88+ </ Tooltip >
89+ < Drawer
90+ style = { { position : "relative" , zIndex : 100 } }
91+ anchor = "right"
92+ id = "reference-drawer"
93+ variant = "persistent"
94+ className = { ! this . props . referenceOpen ? "d-none" : "" }
95+ open = { this . props . referenceOpen } >
96+
97+ < div >
98+ < h3 className = "border-bottom" style = { { padding : 10 , fontWeight : 400 } } > MYR API - Reference</ h3 >
99+ < IconButton
100+ color = "default"
101+ style = { exitBtnStyle }
102+ onClick = { ( ) => {
103+ this . props . handleReferenceToggle ( ) ;
104+ this . setState ( { value : "a" } ) ;
105+ } } >
106+ < Icon className = "material-icons" > close</ Icon >
107+ </ IconButton >
108+ < IconButton
109+ color = "default"
110+ style = { newTabStyle }
111+ onClick = { this . handleOpen } >
112+ < Icon className = "material-icons" > open_in_new</ Icon >
113+ </ IconButton >
114+ </ div >
115+
116+ < div >
117+ < Tabs
118+ id = "modelReference-tabs"
119+ fullWidth = { true }
120+ value = { this . state . value }
121+ onChange = { this . handleChange }
122+ variant = "scrollable" >
123+ < Tab
124+ icon = { < Icon className = "material-icons geometry" > category</ Icon > }
125+ label = {
126+ < Hidden xsDown >
127+ < div > GEOMETRY</ div >
128+ </ Hidden >
129+ }
130+ value = 'a' />
131+ < Tab
132+ icon = { < Icon className = "material-icons color-change" > bubble_chart</ Icon > }
133+ label = {
134+ < Hidden xsDown >
135+ < div > TRANSFORMATIONS</ div >
136+ </ Hidden >
137+ }
138+ value = 'b' />
139+ < Tab
140+ icon = { < Icon className = "material-icons animation-ref" > zoom_out_map</ Icon > } //swap_horiz control_camera category
141+ label = {
142+ < Hidden xsDown >
143+ < div > ANIMATIONS</ div >
144+ </ Hidden >
145+ }
146+ value = 'c' />
147+ < Tab
148+ icon = { < Icon className = "material-icons geometry" > widgets</ Icon > }
149+ label = {
150+ < Hidden xsDown >
151+ < div > GROUPS</ div >
152+ </ Hidden >
153+ }
154+ value = 'd' />
155+ </ Tabs >
156+ </ div >
157+
158+ { < div style = { { margin : 7 , overflow : "hidden" } } >
159+ < p style = { { fontSize : "80%" } } > Key: < span className = "array" > array </ span >
160+ < span className = "bool" > bool </ span >
161+ < span className = "number" > number </ span >
162+ < span className = "string" > string </ span >
163+ < span className = "group" > group </ span >
164+ < span className = "data" > data</ span > </ p >
165+ </ div > }
166+ { this . state . value === "a" &&
167+ < div style = { { marginTop : 0 , overflow : "scroll" } } >
168+ { this . TableEx ( "geometry" ) }
169+ </ div > }
170+ { this . state . value === "b" &&
171+ < div style = { { marginTop : 0 , overflow : "scroll" } } >
172+ { this . TableEx ( "transformations" ) }
173+ </ div > }
174+ { this . state . value === "c" &&
175+ < div style = { { marginTop : 0 , overflow : "scroll" } } >
176+ { this . TableEx ( "animations" ) }
177+ </ div > }
178+ { this . state . value === "d" &&
179+ < div style = { { marginTop : 0 , overflow : "scroll" } } >
180+ { this . TableEx ( "groups" ) }
181+ </ div > }
182+ </ Drawer >
183+ </ React . Fragment > : null }
184+ </ div >
185+ ) ;
186+ }
187+ }
0 commit comments