ryohek 5 лет назад
Родитель
Сommit
7ee0238cc9

+ 1 - 9
src/client/js/components/PageEditor/GridEditModal.jsx

@@ -4,15 +4,7 @@ import PropTypes from 'prop-types';
 import {
   Modal, ModalHeader, ModalBody, ModalFooter,
 } from 'reactstrap';
-
-class BootstrapGrid {
-
-  constructor(colsRatios, responsiveSize) {
-    this.colsRatios = colsRatios;
-    this.responsiveSize = responsiveSize;
-  }
-
-}
+import BootstrapGrid from "./../../models/BootstrapGrid";
 
 export default class GridEditModal extends React.PureComponent {
 

+ 31 - 0
src/client/js/models/BootstrapGrid.js

@@ -0,0 +1,31 @@
+export default class BootstrapGrid {
+
+  constructor(colsRatios, responsiveSize) {
+    this.colsRatios = BootstrapGrid.validateColsRatios(colsRatios);
+    this.responsiveSize = BootstrapGrid.validateResponsiveSize(responsiveSize);
+  }
+
+  static validateColsRatios(colsRatios) {
+
+    if (colsRatios.length === 0) {
+      return new Error('Incorrect value');
+    }
+    let ratiosTotal = 0;
+    colsRatios.forEach((ratio) => {
+      ratiosTotal += ratio;
+    });
+    if (ratiosTotal !== 12) {
+      return new Error('Incorrect value');
+    }
+
+    return colsRatios;
+  }
+
+  static validateResponsiveSize(responsiveSize) {
+    if (responsiveSize === '' || responsiveSize === 'sm' || responsiveSize === 'md') {
+      return responsiveSize;
+    }
+    return new Error('Incorrect size');
+  }
+
+}