framework7-vue
Version:
Build full featured iOS & Android apps using Framework7 & Vue
24 lines • 585 B
JavaScript
import { onBeforeUnmount, ref } from 'vue';
import { f7 } from './f7.js';
export const useStore = (...args) => {
// (store, getter)
let store = args[0];
let getter = args[1];
if (args.length === 1) {
// (getter)
store = f7.store;
getter = args[0];
}
// eslint-disable-next-line
const obj = store._gettersPlain[getter];
const valueRef = ref(obj.value);
const callback = v => {
valueRef.value = v;
};
obj.onUpdated(callback);
onBeforeUnmount(() => {
// eslint-disable-next-line
store.__removeCallback(callback);
});
return valueRef;
};