29 lines
844 B
TypeScript
29 lines
844 B
TypeScript
import { defineStore } from 'pinia'
|
|
import { ref } from 'vue'
|
|
|
|
const buildReloadKey = (contractId: string, serviceId: string | number) =>
|
|
`${contractId}::${String(serviceId)}`
|
|
|
|
export const usePricingPaneReloadStore = defineStore('pricing-pane-reload', () => {
|
|
const reloadVersionMap = ref<Record<string, number>>({})
|
|
|
|
const markReload = (contractId: string, serviceId: string | number) => {
|
|
const key = buildReloadKey(contractId, serviceId)
|
|
const current = reloadVersionMap.value[key] || 0
|
|
reloadVersionMap.value = {
|
|
...reloadVersionMap.value,
|
|
[key]: current + 1
|
|
}
|
|
}
|
|
|
|
const getReloadVersion = (contractId: string, serviceId: string | number) => {
|
|
const key = buildReloadKey(contractId, serviceId)
|
|
return reloadVersionMap.value[key] || 0
|
|
}
|
|
|
|
return {
|
|
markReload,
|
|
getReloadVersion
|
|
}
|
|
})
|