Bladeren bron

Merge logic implemented, assuming createObservable and createHook impl

Kirk Trombley 5 jaren geleden
bovenliggende
commit
cb4e934d30
1 gewijzigde bestanden met toevoegingen van 20 en 1 verwijderingen
  1. 20 1
      client/src/store.js

+ 20 - 1
client/src/store.js

@@ -1,3 +1,20 @@
+const createObservable = initial => {
+  return {
+    _get: () => initial, // TODO
+    _set: () => {}, // TODO
+  }
+}
+
+const nameToHookName = name => "use" + name.chatAt(0).toUpperCase() + name.slice(1);
+
+const createHook = obs => {
+  // allow linters to pick this up as a hook
+  const useObservable = () => {
+    // TODO
+  }
+  return useObservable;
+}
+
 export const createStore = (initial, actions = {}) => {
   const store = {}; // maps keys to observables
   const hooks = {};
@@ -8,7 +25,9 @@ export const createStore = (initial, actions = {}) => {
       if (obs) {
         obs._set(newValue);
       } else {
-        // TODO
+        const newObs = createObservable(newValue);
+        store[key] = newObs;
+        hooks[nameToHookName(key)] = createHook(newObs);
       }
     });
   };