serg155alternate 2 år sedan
förälder
incheckning
c8ef3492f2
2 ändrade filer med 27 tillägg och 13 borttagningar
  1. 24 11
      HW10 Closures and scopes/form OOP/script.js
  2. 3 2
      HW11 Redux/script.js

+ 24 - 11
HW10 Closures and scopes/form OOP/script.js

@@ -29,6 +29,7 @@ function Form(el, data, okCallback, cancelCallback) {
                 input.setAttribute("required", "");  
             }
             input.placeholder = key; 
+            console.log(key)
             input.value = value
             input.oninput = () => {
               /* 
@@ -91,17 +92,27 @@ function Form(el, data, okCallback, cancelCallback) {
             return input
         },
     }
+
+    function createForm(data) {
+        for (let [key, value] of Object.entries(data)) {
+            let errorSpan = document.createElement('span');
+            let input = inputCreators[value.constructor.name](key, value, newValue => {
+                    data[key] = newValue;
+            });
+            formBody.append(input);
+            formBody.append(errorSpan);
+        }
+
+    }
     for (let [key, value] of Object.entries(data)) {
         let errorSpan = document.createElement('span');
         let input = inputCreators[value.constructor.name](key, value, newValue => {
                 data[key] = newValue;
         });
-        input.placeholder = key;
         formBody.append(input);
         formBody.append(errorSpan);
-
     }
-
+    
     if (typeof okCallback === 'function') {
         okButton.setAttribute('disabled','') 
         formBody.appendChild(okButton);
@@ -112,7 +123,11 @@ function Form(el, data, okCallback, cancelCallback) {
 
     if (typeof cancelCallback === 'function') {
         formBody.appendChild(cancelButton);
-        cancelButton.onclick = cancelCallback
+        cancelButton.onclick = () => {
+           // formBody.remove();
+            createForm(initialState);
+           // this.cancelCallback();
+        }
     }
 
     el.appendChild(formBody)
@@ -120,7 +135,8 @@ function Form(el, data, okCallback, cancelCallback) {
     this.okCallback = okCallback
     this.cancelCallback = cancelCallback;
 
-    let initialState = Object.assign({}, {el, data, okCallback, cancelCallback});
+    let initialState = Object.assign({}, data);
+
     this.initialState = initialState;
 
     this.data = data
@@ -134,16 +150,13 @@ let form = new Form(formContainer, {
     '*surname': 'Skywalker',
     married: true,
     birthday: new Date((new Date).getTime() - 86400000 * 30 * 365)
-}, () => console.log('ok'), () =>{
-    let {el, data, okCallback, cancelCallback} = form.initialState;
-   console.log(el, data, okCallback, cancelCallback);
-}  )
+}, () => console.log('ok'), () =>{console.log('ok') }  )
 form.okCallback = () => console.log('ok2')
 
-form.cancelCallback = () => {
+/* form.cancelCallback = () => {
     console.log('datainit')
    // form = new Form(data);
-}
+} */
 
 form.validators.surname = (value, key, data, input) => value.length > 2 &&
     value[0].toUpperCase() == value[0] &&

+ 3 - 2
HW11 Redux/script.js

@@ -41,7 +41,8 @@ function reducer(state, {
                         ...state,
                         ДЕНЕГ: state.ДЕНЕГ - state[ШО].price,
                         касса: state.касса + state[ШО].price,
-                        [ШО]: {...state[ШО],
+                        [ШО]: {
+                            ...state[ШО],
                             count: state[ШО].count - СКОКА
                         }
                     }
@@ -117,7 +118,7 @@ function drawTable(root, store) {
             tr.append(th);
             for (let [el, price] of Object.entries(pcs)) {
                 let td = document.createElement('td');
-                let td1 = document.createElement('td');           
+                let td1 = document.createElement('td');
                 td.innerText = el;
                 td1.innerText = price;
                 tr.append(td, td1);