Setup Pinia and migrate the notifications store
Requires !1373 (merged), closes #1101 (closed), #1151 (closed)
I had started with the image
store in !1370 (closed), but I found out that in unit tests, we cannot test that a Pinia store calls a Vuex module. We can test the other way around, where a Vuex module calls a Pinia store, so we won't be completely stuck with the migration. To migrate the image
store, I therefore had to migrate the notification
store that it depends on.
To avoid having to migrate every call to the notification
store right now, I added a Vuex "shim" module that proxies all mutations to Pinia actions. This technique was only possible here because only the App.vue component relies on the state of the notification
module; accessing the state cannot be proxied like how I did, because that would mean Vuex would sink its claws Observers into Pinia's state, causing conflicts with Pinia's own reactivity.