Skip to content
This repository was archived by the owner on Feb 2, 2020. It is now read-only.

Commit cab5b81

Browse files
author
Mike_Device
committed
make layout creating using default templateLayoutFactory templates
* add dist folder to .gitignore * fix error at build:umd script
1 parent ff66db3 commit cab5b81

File tree

7 files changed

+17
-24
lines changed

7 files changed

+17
-24
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
node_modules
2+
dist
23
.DS_Store
34
.DS_Store?
45
.idea/

lib/MapMarker.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,6 @@ var MapMarker = function (_Component) {
133133
key: '_setupMarkerLayout',
134134
value: function _setupMarkerLayout(component) {
135135
this._markerElement = document.createElement('div');
136-
this._markerElement.className = 'icon-content';
137-
this._markerElement.style.display = 'inline-block';
138136

139137
_reactDom2.default.render(component, this._markerElement);
140138
this._controller.setLayout('iconLayout', this._markerElement);

lib/controllers/layouts.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,18 @@ function createLayout(_ref) {
3333
_ref$extendMethods = _ref.extendMethods,
3434
extendMethods = _ref$extendMethods === undefined ? {} : _ref$extendMethods;
3535

36-
var LayoutClass = _api2.default.getAPI().templateLayoutFactory.createClass('<i></i>', Object.assign({
36+
var LayoutClass = _api2.default.getAPI().templateLayoutFactory.createClass(domElement.innerHTML, Object.assign({
3737
build: function build() {
3838
LayoutClass.superclass.build.call(this);
3939

40+
this.element = this.getElement();
41+
this.element.style.display = 'inline-block';
42+
4043
this.options = this.getData().options;
4144

42-
this._setupContent(domElement);
4345
this._updateSize();
4446

45-
detectImagesLoaded(this.getElement()).then(this._updateMarkerShape.bind(this));
47+
detectImagesLoaded(this.element).then(this._updateMarkerShape.bind(this));
4648
},
4749

4850
getShape: function getShape() {
@@ -54,18 +56,12 @@ function createLayout(_ref) {
5456
this.events.fire('shapechange');
5557
},
5658

57-
_setupContent: function _setupContent(domElement) {
58-
var element = this.getElement();
59-
element.appendChild(domElement);
60-
},
61-
6259
_updateSize: function _updateSize() {
6360
this._size = this._getSize();
6461
},
6562

6663
_getSize: function _getSize() {
67-
var element = this.getElement().querySelector('.icon-content');
68-
return [element.offsetWidth, element.offsetHeight];
64+
return [this.element.offsetWidth, this.element.offsetHeight];
6965
}
7066
}, extendMethods));
7167

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"build:lib": "babel ./src -d lib",
88
"build:umd": "webpack src/index.js dist/YandexMapReact.js --config webpack.config.dev.js",
99
"watch": "babel --watch ./src -d lib",
10+
"watch:umd": "webpack src/index.js dist/YandexMapReact.js --watch --config webpack.config.dev.js",
1011
"lint": "eslint src/",
1112
"test": "echo \"Error: no test specified\" && exit 1"
1213
},

src/MapMarker.jsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,6 @@ class MapMarker extends Component {
9494

9595
_setupMarkerLayout (component) {
9696
this._markerElement = document.createElement('div');
97-
this._markerElement.className = 'icon-content';
98-
this._markerElement.style.display = 'inline-block';
9997

10098
ReactDOM.render(component, this._markerElement);
10199
this._controller.setLayout('iconLayout', this._markerElement);

src/controllers/layouts.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@ function detectImagesLoaded (element) {
1919
}
2020

2121
function createLayout ({domElement, extendMethods = {}}) {
22-
const LayoutClass = (api.getAPI()).templateLayoutFactory.createClass('<i></i>', Object.assign({
22+
const LayoutClass = (api.getAPI()).templateLayoutFactory.createClass(domElement.innerHTML, Object.assign({
2323
build: function () {
2424
LayoutClass.superclass.build.call(this);
2525

26+
this.element = this.getElement();
27+
this.element.style.display = 'inline-block';
28+
2629
this.options = this.getData().options;
2730

28-
this._setupContent(domElement);
2931
this._updateSize();
3032

31-
detectImagesLoaded(this.getElement()).then(this._updateMarkerShape.bind(this));
33+
detectImagesLoaded(this.element).then(this._updateMarkerShape.bind(this));
3234
},
3335

3436
getShape: function () {
@@ -47,18 +49,12 @@ function createLayout ({domElement, extendMethods = {}}) {
4749
this.events.fire('shapechange');
4850
},
4951

50-
_setupContent: function (domElement) {
51-
const element = this.getElement();
52-
element.appendChild(domElement);
53-
},
54-
5552
_updateSize: function () {
5653
this._size = this._getSize();
5754
},
5855

5956
_getSize: function () {
60-
const element = this.getElement().querySelector('.icon-content');
61-
return [element.offsetWidth, element.offsetHeight];
57+
return [this.element.offsetWidth, this.element.offsetHeight];
6258
}
6359
}, extendMethods));
6460

webpack.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,8 @@ module.exports = {
2727
loaders: [
2828
{test: /\.jsx?/i, exclude: /node_modules/, loader: 'babel'}
2929
]
30+
},
31+
resolve: {
32+
extensions: ['', '.js', '.jsx']
3033
}
3134
};

0 commit comments

Comments
 (0)