feat(permissions): add 1s polling for canCreateVersion to reflect workspace limit changes
This commit is contained in:
@@ -135,6 +135,8 @@ import {
|
||||
canCreateVersionQuery,
|
||||
setVersionMessageMutation
|
||||
} from '~/lib/graphql/mutationsAndQueries'
|
||||
import { useIntervalFn } from '@vueuse/core'
|
||||
|
||||
const store = useHostAppStore()
|
||||
const accountStore = useAccountStore()
|
||||
|
||||
@@ -157,7 +159,7 @@ app.$baseBinding?.on('documentChanged', () => {
|
||||
openFilterDialog.value = false
|
||||
})
|
||||
|
||||
const { result: canCreateVersionResult } = useQuery(
|
||||
const { result: canCreateVersionResult, refetch: refetchCanCreateVersion } = useQuery(
|
||||
canCreateVersionQuery,
|
||||
() => ({ projectId: props.modelCard.projectId, modelId: props.modelCard.modelId }),
|
||||
() => ({
|
||||
@@ -170,6 +172,12 @@ const canCreateVersion = computed(() => {
|
||||
return canCreateVersionResult.value?.project.model.permissions.canCreateVersion
|
||||
})
|
||||
|
||||
// poll canCreateVersion every 1s to reflect workspace limit changes.
|
||||
// No subscription available on a workspace level, so polling probably easiest approach?
|
||||
useIntervalFn(() => {
|
||||
refetchCanCreateVersion()
|
||||
}, 1000)
|
||||
|
||||
const sendOrCancel = () => {
|
||||
if (!props.canEdit) {
|
||||
return
|
||||
|
||||
@@ -79,6 +79,7 @@ import type { CardSetting } from '~/lib/models/card/setting'
|
||||
import { useAddByUrl } from '~/lib/core/composables/addByUrl'
|
||||
import { useQuery } from '@vue/apollo-composable'
|
||||
import { canCreateVersionQuery } from '~/lib/graphql/mutationsAndQueries'
|
||||
import { useIntervalFn } from '@vueuse/core'
|
||||
|
||||
const { trackEvent } = useMixpanel()
|
||||
const { trackSettingsChange } = useSettingsTracking()
|
||||
@@ -152,7 +153,7 @@ watch(step, (newVal, oldVal) => {
|
||||
const hostAppStore = useHostAppStore()
|
||||
|
||||
// check canCreateVersion permission when model is selected
|
||||
const { result: canCreateVersionResult } = useQuery(
|
||||
const { result: canCreateVersionResult, refetch: refetchCanCreateVersion } = useQuery(
|
||||
canCreateVersionQuery,
|
||||
() => ({
|
||||
projectId: selectedProject.value?.id as string,
|
||||
@@ -169,6 +170,13 @@ const canCreateVersion = computed(() => {
|
||||
return canCreateVersionResult.value?.project.model.permissions.canCreateVersion
|
||||
})
|
||||
|
||||
useIntervalFn(() => {
|
||||
// poll on step 3 (where the "Publish" button is visible)
|
||||
if (step.value === 3) {
|
||||
refetchCanCreateVersion()
|
||||
}
|
||||
}, 1000)
|
||||
|
||||
// accountId, serverUrl, projectId, modelId, sendFilter, settings
|
||||
const addModel = async () => {
|
||||
void trackEvent('DUI3 Action', {
|
||||
|
||||
Reference in New Issue
Block a user