]> git.ipfire.org Git - thirdparty/vuejs/pinia.git/commitdiff
feat(nuxt): add buildModule
authorEduardo San Martin Morote <posva13@gmail.com>
Wed, 3 Mar 2021 16:30:03 +0000 (17:30 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Mon, 8 Mar 2021 14:50:05 +0000 (15:50 +0100)
nuxt/plugin.js

index abbe3581f4e2e185dfc85aaf8bdb1d8117b2c9d0..12b9e116ad0d913a9dc934cd43c0263aeaf480a5 100644 (file)
@@ -1,20 +1,26 @@
 // @ts-check
 import Vue from 'vue'
 // @ts-ignore: this must be pinia to load the local module
-import { setActiveReq, setStateProvider, getRootState } from 'pinia'
+import { setActivePinia, PiniaPlugin, createPinia } from 'pinia'
+
+Vue.use(PiniaPlugin)
 
 /** @type {import('@nuxt/types').Plugin} */
-const myPlugin = (context) => {
-  // console.log('🍍 Pinia Nuxt plugin installed')
+const myPlugin = (context, inject) => {
+  // console.log(context)
+
+  const pinia = createPinia()
+  context.app.pinia = pinia
+  setActivePinia(pinia)
+
+  inject('pinia', pinia)
 
-  // TODO: figure this out
   if (process.server) {
-    setActiveReq(context.req)
     context.beforeNuxtRender(({ nuxtState }) => {
-      nuxtState.pinia = getRootState(context.req)
+      nuxtState.pinia = pinia.state.value
     })
   } else if (context.nuxtState && context.nuxtState.pinia) {
-    setStateProvider(() => context.nuxtState.pinia)
+    pinia.state.value = context.nuxtState.pinia
   }
 }