Skip to content

Commit a77d0e7

Browse files
Merge pull request #15 from ChristianEdwardPadilla/development
labels on boxes, boundRecFunc implemented with hardcoded numbers
2 parents 9653b40 + 9077063 commit a77d0e7

File tree

7 files changed

+128
-311
lines changed

7 files changed

+128
-311
lines changed

src/components/App.jsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,8 @@ import { MuiThemeProvider } from '@material-ui/core/styles';
44
import theme from './theme';
55
import AppContainer from '../containers/AppContainer.jsx';
66

7-
// interface Adam {
8-
// goodguy: boolean;
9-
// haswine: boolean;
10-
// }
11-
127
class App extends Component {
138
render() {
14-
// const adamInstance: Adam = {
15-
// goodguy: true,
16-
// haswine: false,
17-
// };
189
return (
1910
<MuiThemeProvider theme={theme}>
2011
<div className="app">

src/components/KonvaStage.jsx

Lines changed: 39 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import React, { Component, createRef } from 'react';
1+
import React, { Component, createRef, Fragment } from 'react';
22
// import PropTypes from 'prop-types';
33
import {
4-
Stage, Layer, Image, Group,
4+
Stage, Layer, Image, Group, Label, Text, Tag,
55
} from 'react-konva';
6+
import Konva from 'konva';
67
import TransformerComponent from './TransformerComponent.jsx';
78
import Rectangle from './Rectangle.jsx';
89

9-
1010
class KonvaStage extends Component {
1111
state = {
1212
x: undefined,
@@ -19,6 +19,10 @@ class KonvaStage extends Component {
1919
this.group = createRef();
2020
}
2121

22+
// Christian - this function causes the expansionPanel of the clicked rect to open
23+
// (and focusedComponent to change, which we don't want)
24+
// could reuse this logic for affecting state of children array
25+
// ADD FOCUS CHILD FUNCTIONALITY HERE
2226
handleStageMouseDown = (e) => {
2327
// clicked on stage - cler selection
2428
if (e.target === e.target.getStage()) {
@@ -42,27 +46,11 @@ class KonvaStage extends Component {
4246
}
4347
};
4448

45-
// WAS ALREADY COMMENTED OUT
46-
// handleStageDrag = () => {
47-
// // const mainWindowHeight = this.main.current.clientHeight;
48-
// // const mainWindowWidth = this.main.current.clientWidth;
49-
// // const groupX = this.refs.group.attrs.x;
50-
// // const groupY = this.refs.group.attrs.y;
51-
52-
// // const componentX = (mainWindowWidth / 2) - groupX;
53-
// // const componentY = (mainWindowHeight / 2) - groupY;
54-
// // console.log(componentX, componentY);
55-
// }
56-
57-
componentDidMount() {
58-
// this.props.setImage();
59-
}
60-
6149
render() {
6250
const {
63-
components, handleTransform, image, draggable, scaleX, scaleY, focusComponent,
51+
components, handleTransform, draggable, scaleX, scaleY, focusComponent,
6452
} = this.props;
65-
const { selectedShapeName } = this.state;
53+
// const { selectedShapeName } = this.state;
6654

6755
return (
6856
<Stage
@@ -80,45 +68,41 @@ class KonvaStage extends Component {
8068
ref={(node) => {
8169
this.group = node;
8270
}}
83-
draggable={draggable}>
84-
<Image image={image} />
85-
{components.map((comp, i) => <Rectangle
86-
draggable={comp.draggable}
87-
selectedShapeName={selectedShapeName}
88-
key={i}
89-
componentId={comp.id}
90-
x={comp.position.x}
91-
y={comp.position.y}
92-
width={comp.position.width}
93-
height={comp.position.height}
94-
title={comp.title}
95-
color={comp.color}
96-
handleTransform={handleTransform}
97-
/>)}
98-
<TransformerComponent
99-
focusComponent={focusComponent}
100-
selectedShapeName={selectedShapeName}
101-
/>
71+
draggable={draggable}
72+
>
73+
{components.map((comp, i) => (
74+
<Fragment key={i}>
75+
<Rectangle
76+
draggable={comp.draggable}
77+
key={i}
78+
componentId={comp.id}
79+
x={comp.position.x}
80+
y={comp.position.y}
81+
width={comp.position.width}
82+
height={comp.position.height}
83+
title={comp.title}
84+
color={comp.color}
85+
handleTransform={handleTransform}
86+
/>
87+
<Label x={comp.position.x} y={comp.position.y}>
88+
<Text
89+
text={`${comp.title},${comp.position.x.toPrecision(
90+
3,
91+
)},${comp.position.y.toPrecision(3)}`}
92+
fontFamily="Calibri"
93+
fontSize={12}
94+
padding={5}
95+
fill="green"
96+
/>
97+
</Label>
98+
</Fragment>
99+
))}
100+
<TransformerComponent focusComponent={focusComponent} />
102101
</Group>
103102
</Layer>
104103
</Stage>
105104
);
106105
}
107106
}
108107

109-
// KonvaStage.propTypes = {
110-
// draggable: PropTypes.bool.isRequired,
111-
// components: PropTypes.array.isRequired,
112-
// handleTransform: PropTypes.func.isRequired,
113-
// image: PropTypes.oneOfType([
114-
// PropTypes.string,
115-
// PropTypes.object,
116-
// ]),
117-
// scaleX: PropTypes.number.isRequired,
118-
// scaleY: PropTypes.number.isRequired,
119-
// openExpansionPanel: PropTypes.func.isRequired,
120-
// setImage: PropTypes.func.isRequired,
121-
// focusComponent: PropTypes.object.isRequired,
122-
// };
123-
124108
export default KonvaStage;

src/components/Rectangle.jsx

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class Rectangle extends Component {
1616

1717
render() {
1818
const {
19-
color, x, y, componentId, draggable, width, height,
19+
color, x, y, componentId, draggable, width, height, title,
2020
} = this.props;
2121

2222
return (
@@ -35,21 +35,18 @@ class Rectangle extends Component {
3535
onTransformEnd={event => this.extractPositionInfo(componentId, event.target)}
3636
onDragEnd={event => this.extractPositionInfo(componentId, event.target)}
3737
draggable={draggable}
38+
dragBoundFunc={function dragBoundFunc(pos) {
39+
console.log('binding');
40+
const newY = pos.y < 200 ? 200 : pos.y;
41+
const newX = pos.x < 200 ? 200 : pos.x;
42+
return {
43+
x: newX,
44+
y: newY,
45+
};
46+
}}
3847
/>
3948
);
4049
}
4150
}
4251

43-
// Rectangle.propTypes = {
44-
// // title: PropTypes.string.isRequired,
45-
// color: PropTypes.string.isRequired,
46-
// handleTransform: PropTypes.func.isRequired,
47-
// x: PropTypes.number,
48-
// y: PropTypes.number,
49-
// height: PropTypes.number,
50-
// width: PropTypes.number,
51-
// componentId: PropTypes.string.isRequired,
52-
// draggable: PropTypes.bool.isRequired,
53-
// };
54-
5552
export default Rectangle;

src/containers/AppContainer.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class AppContainer extends Component {
4848
components, totalComponents, focusComponent, loading,
4949
} = this.props;
5050
const { width, rightColumnOpen } = this.state;
51+
52+
// uses component childIds and parentIds arrays (numbers) to build component-filled children and parents arrays
5153
const updatedComponents = convertIdsToObjs(components);
5254

5355
return (

0 commit comments

Comments
 (0)