]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
refactor(devtools): only use one inspector state/tree
authorEduardo San Martin Morote <posva13@gmail.com>
Mon, 10 May 2021 14:45:26 +0000 (16:45 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 10 May 2021 14:45:26 +0000 (16:45 +0200)
src/devtools.ts

index 6e832462531876614f63b98f15eb2afce85ccfb1..f96244bbfa28a55827c074994d03e2b9276da543 100644 (file)
@@ -96,6 +96,34 @@ export function addDevtools(app: App, store: GenericStore) {
           treeFilterPlaceholder: 'Search stores',
         })
 
+        api.on.getInspectorTree((payload) => {
+          if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
+            const stores = Array.from(registeredStores)
+
+            payload.rootNodes = (payload.filter
+              ? stores.filter((store) =>
+                  store.$id.toLowerCase().includes(payload.filter.toLowerCase())
+                )
+              : stores
+            ).map(formatStoreForInspectorTree)
+          }
+        })
+
+        api.on.getInspectorState((payload) => {
+          if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
+            const stores = Array.from(registeredStores)
+            const store = stores.find((store) => store.$id === payload.nodeId)
+
+            if (store) {
+              payload.state = {
+                options: formatStoreForInspectorState(store),
+              }
+            } else {
+              toastMessage(`store "${payload.nodeId}" not found`, 'error')
+            }
+          }
+        })
+
         isAlreadyInstalled = true
       } else {
         api.notifyComponentUpdate()
@@ -127,34 +155,6 @@ export function addDevtools(app: App, store: GenericStore) {
         })
       })
 
-      api.on.getInspectorTree((payload) => {
-        if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
-          const stores = Array.from(registeredStores)
-
-          payload.rootNodes = (payload.filter
-            ? stores.filter((store) =>
-                store.$id.toLowerCase().includes(payload.filter.toLowerCase())
-              )
-            : stores
-          ).map(formatStoreForInspectorTree)
-        }
-      })
-
-      api.on.getInspectorState((payload) => {
-        if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
-          const stores = Array.from(registeredStores)
-          const store = stores.find((store) => store.$id === payload.nodeId)
-
-          if (store) {
-            payload.state = {
-              options: formatStoreForInspectorState(store),
-            }
-          } else {
-            toastMessage(`store "${payload.nodeId}" not found`, 'error')
-          }
-        }
-      })
-
       // trigger an update so it can display new registered stores
       // @ts-ignore
       api.notifyComponentUpdate()