From a9ca503e4afe02a7b260432bea185223aa197954 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 13 Mar 2025 20:06:24 -0400 Subject: [PATCH 01/40] fix: added hidden input elements for checkboxs --- src/components/promotions/PromotionsForm.vue | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/promotions/PromotionsForm.vue b/src/components/promotions/PromotionsForm.vue index 689b863..27eeae9 100644 --- a/src/components/promotions/PromotionsForm.vue +++ b/src/components/promotions/PromotionsForm.vue @@ -10,12 +10,28 @@ :value="promotions.record.id" > + + + + + From ca32d96279b1797a3906a827d2be1ff7a5aba311 Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 18 Mar 2025 18:54:00 -0400 Subject: [PATCH 05/40] feat: added switch to select team sub --- lib/components/subscription/VoSubscriptionDialog.vue | 8 +++++++- lib/stores/auth.ts | 8 ++++++++ lib/stores/one.ts | 7 +++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/components/subscription/VoSubscriptionDialog.vue b/lib/components/subscription/VoSubscriptionDialog.vue index b290ded..98906a4 100644 --- a/lib/components/subscription/VoSubscriptionDialog.vue +++ b/lib/components/subscription/VoSubscriptionDialog.vue @@ -15,6 +15,11 @@ + + +
@@ -56,7 +61,7 @@ prepend-icon="$vuetify" size="default" text="Activate Subscription" - @click="one.subscribe(subscription!)" + @click="one.subscribe(subscription!, oneTeam!)" /> () const subscription = shallowRef(one.interval) + const oneTeam = shallowRef(one.oneTeam) const window = shallowRef(one.hasBilling ? 'status' : 'subscribe') const isUpdatingSubscription = shallowRef(false) diff --git a/lib/stores/auth.ts b/lib/stores/auth.ts index 0188cb1..87e9088 100644 --- a/lib/stores/auth.ts +++ b/lib/stores/auth.ts @@ -29,6 +29,12 @@ export interface Identity { primary: boolean } +export interface Team { + id: string + name: string + inviteCode: string +} + export interface User { id: string isAdmin: boolean @@ -38,6 +44,7 @@ export interface User { createdAt: string identities: Identity[] sponsorships: Sponsorship[] + team: Team } export const useAuthStore = defineStore('auth', () => { @@ -102,6 +109,7 @@ export const useAuthStore = defineStore('auth', () => { async res => { if (res.ok || res.status === 401) { user.value = (await res.json()).user + console.log(user.value) } else { console.error(res.statusText) } diff --git a/lib/stores/one.ts b/lib/stores/one.ts index c3b0dc0..37b2ed5 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -16,6 +16,7 @@ interface SubscriptionItemPlan { amount: number currency: string interval: 'month' | 'year' + oneTeam: boolean } interface SubscriptionItem { @@ -52,6 +53,7 @@ export const useOneStore = defineStore('one', () => { const invoices = ref([]) const sessionId = computed(() => query.value.session_id) const interval = computed(() => info.value?.items[0].plan.interval) + const oneTeam = computed(() => info.value?.items[0].plan.oneTeam ?? false) const subscription = computed(() => { return auth.user?.sponsorships.find(s => s.platform === 'stripe' && s.tierName.startsWith('sub_')) @@ -147,10 +149,10 @@ export const useOneStore = defineStore('one', () => { window.open(`${http.url}/one/manage`, '_blank') } - async function subscribe (interval: string) { + async function subscribe (interval: string, team: boolean) { isLoading.value = true - window.location.href = `${http.url}/one/subscribe?interval=${interval}` + window.location.href = `${http.url}/one/subscribe?interval=${interval}&team=${team}` } async function cancel () { @@ -237,6 +239,7 @@ export const useOneStore = defineStore('one', () => { return { info, interval, + oneTeam, invoices, sessionId, subscription, From ad23726fc08ad51777741d5660ac5c3eb794b4bd Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 21 Mar 2025 00:26:13 -0400 Subject: [PATCH 06/40] feat: Added access --- lib/components/user/VoUserList.vue | 2 +- lib/stores/auth.ts | 7 +++++-- lib/stores/one.ts | 13 +++++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/components/user/VoUserList.vue b/lib/components/user/VoUserList.vue index 0e29bc7..99d85cb 100644 --- a/lib/components/user/VoUserList.vue +++ b/lib/components/user/VoUserList.vue @@ -10,7 +10,7 @@ - + diff --git a/lib/stores/auth.ts b/lib/stores/auth.ts index 87e9088..d6d4db2 100644 --- a/lib/stores/auth.ts +++ b/lib/stores/auth.ts @@ -18,6 +18,7 @@ export interface Sponsorship { amount: number isActive: boolean createdAt: Date + hasTeamAccess: boolean; } export interface Identity { @@ -54,6 +55,7 @@ export const useAuthStore = defineStore('auth', () => { const userStore = useUserStore() const router = useRouter() const isLoading = shallowRef(false) + const one = useOneStore() let externalUpdate = !!lastLoginProvider() watch(user, user => { @@ -108,8 +110,9 @@ export const useAuthStore = defineStore('auth', () => { }).then( async res => { if (res.ok || res.status === 401) { - user.value = (await res.json()).user - console.log(user.value) + const data = await res.json() + user.value = data.user + one.access = data.access } else { console.error(res.statusText) } diff --git a/lib/stores/one.ts b/lib/stores/one.ts index 37b2ed5..c4e6db0 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -16,7 +16,7 @@ interface SubscriptionItemPlan { amount: number currency: string interval: 'month' | 'year' - oneTeam: boolean + hasTeamAccess: boolean } interface SubscriptionItem { @@ -53,13 +53,17 @@ export const useOneStore = defineStore('one', () => { const invoices = ref([]) const sessionId = computed(() => query.value.session_id) const interval = computed(() => info.value?.items[0].plan.interval) - const oneTeam = computed(() => info.value?.items[0].plan.oneTeam ?? false) + const access = ref<[]>([]) const subscription = computed(() => { return auth.user?.sponsorships.find(s => s.platform === 'stripe' && s.tierName.startsWith('sub_')) }) const hasBilling = computed(() => !!subscription.value?.tierName) + const hasTeamAccess = computed(() => + access.value.some(access => ['one-team', 'team'].includes(access)) + ) + const monthlyTotal = computed(() => { return auth.user?.sponsorships.reduce((acc: number, s) => { if (!s.isActive || s.interval === 'once' || s.platform === 'stripe') return acc @@ -203,6 +207,7 @@ export const useOneStore = defineStore('one', () => { ) auth.user = res.user + access.value = res.access } catch (e) { // } finally { @@ -218,7 +223,6 @@ export const useOneStore = defineStore('one', () => { info.value = res.subscription invoices.value = res.invoices - return res } catch (e) { // @@ -239,7 +243,8 @@ export const useOneStore = defineStore('one', () => { return { info, interval, - oneTeam, + access, + hasTeamAccess, invoices, sessionId, subscription, From 80ce9e4bb028c6e15b39aa09453e291bc47f6a16 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 22 Mar 2025 22:41:43 -0400 Subject: [PATCH 07/40] feat: buildout of myTeam Dashboard in Vo --- lib/components/team/VoTeamDialog.vue | 215 +++++++++++++++++++++++++-- lib/components/user/VoUserList.vue | 2 +- lib/stores/auth.ts | 10 +- lib/stores/one.ts | 26 +++- 4 files changed, 236 insertions(+), 17 deletions(-) diff --git a/lib/components/team/VoTeamDialog.vue b/lib/components/team/VoTeamDialog.vue index 9e0fe49..f8cff20 100644 --- a/lib/components/team/VoTeamDialog.vue +++ b/lib/components/team/VoTeamDialog.vue @@ -4,21 +4,218 @@ :prepend-icon="`svg:${mdiBell}`" title="Team" > - Team id: {{ team?.id }} - Team name: {{ team?.name }} - Invite Code: {{ team?.inviteCode }} - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/components/user/VoUserList.vue b/lib/components/user/VoUserList.vue index 99d85cb..be8eebb 100644 --- a/lib/components/user/VoUserList.vue +++ b/lib/components/user/VoUserList.vue @@ -10,7 +10,7 @@ - + diff --git a/lib/stores/auth.ts b/lib/stores/auth.ts index d6d4db2..5ec3b93 100644 --- a/lib/stores/auth.ts +++ b/lib/stores/auth.ts @@ -9,6 +9,8 @@ import { ref, shallowRef, watch } from 'vue' import { useHttpStore } from '@/stores/http' import { useUserStore } from '@/stores/user' +import { type Team } from './one' + export interface Sponsorship { id: string platform: string @@ -30,12 +32,6 @@ export interface Identity { primary: boolean } -export interface Team { - id: string - name: string - inviteCode: string -} - export interface User { id: string isAdmin: boolean @@ -113,6 +109,8 @@ export const useAuthStore = defineStore('auth', () => { const data = await res.json() user.value = data.user one.access = data.access + one.team = data.user.team + console.log(user.value) } else { console.error(res.statusText) } diff --git a/lib/stores/one.ts b/lib/stores/one.ts index c4e6db0..8f57921 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -40,6 +40,22 @@ interface Invoice { pdf: string } +export type Team = { + id: string + name: string + inviteCode: string + members: { + id: string + name: string + picture: string + }[] + owner: { + id: string + name: string + picture: string + } +} + export const useOneStore = defineStore('one', () => { const query = useQuery<{ one: string, session_id: string }>() const router = useRouter() @@ -53,6 +69,7 @@ export const useOneStore = defineStore('one', () => { const invoices = ref([]) const sessionId = computed(() => query.value.session_id) const interval = computed(() => info.value?.items[0].plan.interval) + const team = ref(null) const access = ref<[]>([]) const subscription = computed(() => { @@ -61,9 +78,13 @@ export const useOneStore = defineStore('one', () => { const hasBilling = computed(() => !!subscription.value?.tierName) const hasTeamAccess = computed(() => - access.value.some(access => ['one-team', 'team'].includes(access)) + access.value.some(access => ['one/team', 'snips/team'].includes(access)) ) + const isTeamOwner = computed(() => { + return auth.user?.id === auth.user?.team?.owner.id + }) + const monthlyTotal = computed(() => { return auth.user?.sponsorships.reduce((acc: number, s) => { if (!s.isActive || s.interval === 'once' || s.platform === 'stripe') return acc @@ -208,6 +229,7 @@ export const useOneStore = defineStore('one', () => { auth.user = res.user access.value = res.access + team.value = auth.user?.team ?? null } catch (e) { // } finally { @@ -245,6 +267,8 @@ export const useOneStore = defineStore('one', () => { interval, access, hasTeamAccess, + isTeamOwner, + team, invoices, sessionId, subscription, From 10ef7d0e6f7d3518490099c7b1daf6a11cc53a93 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 27 Mar 2025 12:13:14 -0400 Subject: [PATCH 08/40] feat: added remove and leave functions to oneStore --- lib/components/team/VoTeamDialog.vue | 14 +++----------- lib/components/user/VoUserList.vue | 2 +- lib/stores/auth.ts | 5 +++-- lib/stores/one.ts | 23 ++++++++++++++++++++++- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/lib/components/team/VoTeamDialog.vue b/lib/components/team/VoTeamDialog.vue index f8cff20..39fca2c 100644 --- a/lib/components/team/VoTeamDialog.vue +++ b/lib/components/team/VoTeamDialog.vue @@ -20,7 +20,7 @@ :subtitle="`Team - ${one.team?.members?.length} members`" title="Members" > - @@ -203,14 +203,6 @@ }, 2000) } - const onClickLeaveTeam = () => { - console.log('leaving team') - } - - const onClickRemove = () => { - console.log('removed from team') - } - async function onClickReset () { reset.value = true diff --git a/lib/components/user/VoUserList.vue b/lib/components/user/VoUserList.vue index be8eebb..d7cc39c 100644 --- a/lib/components/user/VoUserList.vue +++ b/lib/components/user/VoUserList.vue @@ -10,7 +10,7 @@ - + diff --git a/lib/stores/auth.ts b/lib/stores/auth.ts index 5ec3b93..3a166a2 100644 --- a/lib/stores/auth.ts +++ b/lib/stores/auth.ts @@ -109,8 +109,7 @@ export const useAuthStore = defineStore('auth', () => { const data = await res.json() user.value = data.user one.access = data.access - one.team = data.user.team - console.log(user.value) + one.team = data.user?.team } else { console.error(res.statusText) } @@ -161,6 +160,8 @@ export const useAuthStore = defineStore('auth', () => { localStorage.setItem('vuetify@lastLoginProvider', provider) } user.value = e.data.body.user + one.access = e.data.body.access + one.team = e.data.body.user.team sync() } else { console.error(e.data.message) diff --git a/lib/stores/one.ts b/lib/stores/one.ts index 8f57921..e5ce928 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -63,7 +63,7 @@ export const useOneStore = defineStore('one', () => { const auth = useAuthStore() const http = useHttpStore() - const isLoading = shallowRef(false) + const isLoading = shallowRef(true) const isOpen = shallowRef(false) const info = ref() const invoices = ref([]) @@ -262,6 +262,24 @@ export const useOneStore = defineStore('one', () => { }) } + async function removeFromTeam () { + try { + const res = await http.post('/one/team/remove', { userId: auth.user?.id }) + team.value = res.team + } catch (e) { + console.warn(e) + } + } + + async function leaveTeam () { + try { + await http.post('/one/team/leave', { teamId: team.value?.id }) + team.value = null + } catch (e) { + console.warn(e) + } + } + return { info, interval, @@ -293,5 +311,8 @@ export const useOneStore = defineStore('one', () => { subscribe, subscriptionInfo, verify, + + removeFromTeam, + leaveTeam, } }) From 4d87369b32ce4771901c67602345091dd930cc48 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 27 Mar 2025 12:20:15 -0400 Subject: [PATCH 09/40] chore: pascal case and naming --- lib/components/subscription/VoSubscriptionDialog.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/components/subscription/VoSubscriptionDialog.vue b/lib/components/subscription/VoSubscriptionDialog.vue index 98906a4..0cf906c 100644 --- a/lib/components/subscription/VoSubscriptionDialog.vue +++ b/lib/components/subscription/VoSubscriptionDialog.vue @@ -15,11 +15,11 @@ - + - +
@@ -61,7 +61,7 @@ prepend-icon="$vuetify" size="default" text="Activate Subscription" - @click="one.subscribe(subscription!, oneTeam!)" + @click="one.subscribe(subscription!, teamAccess)" /> () const subscription = shallowRef(one.interval) - const oneTeam = shallowRef(one.oneTeam) + const teamAccess = shallowRef(false) const window = shallowRef(one.hasBilling ? 'status' : 'subscribe') const isUpdatingSubscription = shallowRef(false) From fd0a8cd28271a83c5cef5b93839946919bcb35d0 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 27 Mar 2025 14:14:22 -0400 Subject: [PATCH 10/40] feat: added coming soon / changed position --- .../subscription/VoSubscriptionDialog.vue | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/components/subscription/VoSubscriptionDialog.vue b/lib/components/subscription/VoSubscriptionDialog.vue index 0cf906c..482e619 100644 --- a/lib/components/subscription/VoSubscriptionDialog.vue +++ b/lib/components/subscription/VoSubscriptionDialog.vue @@ -15,15 +15,19 @@ - + + - - -
-
From 0590e7b3d57248f1ff223f74ece33f5192b5969c Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 27 Mar 2025 14:16:09 -0400 Subject: [PATCH 11/40] feat: only showing my-team when isAdmin = true --- lib/components/user/VoUserList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/components/user/VoUserList.vue b/lib/components/user/VoUserList.vue index d7cc39c..c551e04 100644 --- a/lib/components/user/VoUserList.vue +++ b/lib/components/user/VoUserList.vue @@ -10,7 +10,7 @@ - + From 33abc0375d9734e25fb1114d37072a6527c65a9c Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 28 Mar 2025 21:15:41 -0400 Subject: [PATCH 12/40] feat: added logic to join team from invite link --- lib/components/user/VoUserList.vue | 2 +- lib/stores/one.ts | 21 ++++++++++++++++++++- src/router/index.ts | 3 ++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/components/user/VoUserList.vue b/lib/components/user/VoUserList.vue index c551e04..d7cc39c 100644 --- a/lib/components/user/VoUserList.vue +++ b/lib/components/user/VoUserList.vue @@ -10,7 +10,7 @@ - + diff --git a/lib/stores/one.ts b/lib/stores/one.ts index e5ce928..7243b3f 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -57,7 +57,7 @@ export type Team = { } export const useOneStore = defineStore('one', () => { - const query = useQuery<{ one: string, session_id: string }>() + const query = useQuery<{ one: string, session_id: string, invite: string }>() const router = useRouter() const auth = useAuthStore() @@ -70,6 +70,7 @@ export const useOneStore = defineStore('one', () => { const sessionId = computed(() => query.value.session_id) const interval = computed(() => info.value?.items[0].plan.interval) const team = ref(null) + const teamInviteCode = computed(() => query.value.invite) const access = ref<[]>([]) const subscription = computed(() => { @@ -130,6 +131,13 @@ export const useOneStore = defineStore('one', () => { activate() }, { immediate: true }) + watch(teamInviteCode, async () => { + if (!teamInviteCode.value) return + if (!auth.user) { auth.dialog = true } + await joinTeam() + router.replace({ query: undefined }) + }) + watch(query, val => { if (val.one !== 'subscribe' || auth.user) return @@ -280,6 +288,17 @@ export const useOneStore = defineStore('one', () => { } } + async function joinTeam () { + try { + const res = await http.post('/one/team/join', { inviteCode: teamInviteCode.value }) + console.log(res) + team.value = res.team + access.value = res.access + } catch (e) { + console.warn(e) + } + } + return { info, interval, diff --git a/src/router/index.ts b/src/router/index.ts index 2a8b3b3..7c019a7 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -31,7 +31,8 @@ router.beforeEach(async (to, from, next) => { !to.meta.guest && to.path !== '/user/dashboard/' ) { - next({ path: '/user/dashboard/' }) + // Passing query to not reset it on reroute for team invites + next({ path: '/user/dashboard/', query: to.query }) } else { next() } From 0aaa7d00461d716cfc77eeb37f85f1f298c00381 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 29 Mar 2025 13:08:49 -0400 Subject: [PATCH 13/40] feat: started building out team invite dialog --- components.d.ts | 1 + lib/components/auth/VoAuthBtn.vue | 2 ++ lib/components/team/VoTeamInvite.vue | 36 ++++++++++++++++++++++++++++ lib/stores/one.ts | 21 +++++++++++----- 4 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 lib/components/team/VoTeamInvite.vue diff --git a/components.d.ts b/components.d.ts index 69666a6..723efc6 100644 --- a/components.d.ts +++ b/components.d.ts @@ -75,6 +75,7 @@ declare module 'vue' { VoSubscriptionSubscribe: typeof import('./lib/components/subscription/VoSubscriptionSubscribe.vue')['default'] VoSwitch: typeof import('./lib/components/app/VoSwitch.vue')['default'] VoTeamDialog: typeof import('./lib/components/team/VoTeamDialog.vue')['default'] + VoTeamInvite: typeof import('./lib/components/team/VoTeamInvite.vue')['default'] VoTeamListItem: typeof import('./lib/components/team/VoTeamListItem.vue')['default'] VoUserAvatar: typeof import('./lib/components/user/VoUserAvatar.vue')['default'] VoUserBadges: typeof import('./lib/components/user/VoUserBadges.vue')['default'] diff --git a/lib/components/auth/VoAuthBtn.vue b/lib/components/auth/VoAuthBtn.vue index f7b33ba..6401a89 100644 --- a/lib/components/auth/VoAuthBtn.vue +++ b/lib/components/auth/VoAuthBtn.vue @@ -26,6 +26,7 @@ + @@ -33,6 +34,7 @@ diff --git a/lib/stores/one.ts b/lib/stores/one.ts index 7243b3f..76cc28a 100644 --- a/lib/stores/one.ts +++ b/lib/stores/one.ts @@ -69,8 +69,10 @@ export const useOneStore = defineStore('one', () => { const invoices = ref([]) const sessionId = computed(() => query.value.session_id) const interval = computed(() => info.value?.items[0].plan.interval) + const team = ref(null) - const teamInviteCode = computed(() => query.value.invite) + const teamInviteDialog = ref(true) + const teamInviteCode = computed(() => query.value.invite) const access = ref<[]>([]) const subscription = computed(() => { @@ -134,8 +136,7 @@ export const useOneStore = defineStore('one', () => { watch(teamInviteCode, async () => { if (!teamInviteCode.value) return if (!auth.user) { auth.dialog = true } - await joinTeam() - router.replace({ query: undefined }) + teamInviteDialog.value = true }) watch(query, val => { @@ -294,18 +295,20 @@ export const useOneStore = defineStore('one', () => { console.log(res) team.value = res.team access.value = res.access + clearTeamQuery() } catch (e) { console.warn(e) } } + function clearTeamQuery () { + router.replace({ query: undefined }) + } + return { info, interval, access, - hasTeamAccess, - isTeamOwner, - team, invoices, sessionId, subscription, @@ -331,7 +334,13 @@ export const useOneStore = defineStore('one', () => { subscriptionInfo, verify, + hasTeamAccess, + isTeamOwner, + team, removeFromTeam, leaveTeam, + joinTeam, + teamInviteDialog, + clearTeamQuery, } }) From 85df77d72777bb3c52208414100e8f54dc5dcfeb Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 30 Mar 2025 15:57:45 -0400 Subject: [PATCH 14/40] refactor: moved/create Team Store, and updated invite to include user name or team name --- .eslintrc-auto-import.json | 3 +- auto-imports.d.ts | 3 + lib/components/team/VoTeamDialog.vue | 21 +++--- lib/components/team/VoTeamInvite.vue | 12 ++-- lib/components/user/VoUserList.vue | 4 +- lib/stores/auth.ts | 8 ++- lib/stores/one.ts | 82 ++-------------------- lib/stores/team.ts | 101 +++++++++++++++++++++++++++ src/router/index.ts | 1 - 9 files changed, 136 insertions(+), 99 deletions(-) create mode 100644 lib/stores/team.ts diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index ba1075b..adccfca 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -109,6 +109,7 @@ "useDownloadsStore": true, "useQueueStore": true, "aliases": true, - "trackEvent": true + "trackEvent": true, + "useTeamStore": true } } diff --git a/auto-imports.d.ts b/auto-imports.d.ts index d5013d2..a055b0c 100644 --- a/auto-imports.d.ts +++ b/auto-imports.d.ts @@ -98,6 +98,7 @@ declare global { const useSlots: typeof import('vue')['useSlots'] const useSponsorsStore: typeof import('./lib/stores/sponsors')['useSponsorsStore'] const useSpotsStore: typeof import('./lib/stores/spots')['useSpotsStore'] + const useTeamStore: typeof import('./lib/stores/team')['useTeamStore'] const useTheme: typeof import('vuetify')['useTheme'] const useUserStore: typeof import('./lib/stores/user')['useUserStore'] const watch: typeof import('vue')['watch'] @@ -208,6 +209,7 @@ declare module 'vue' { readonly useSlots: UnwrapRef readonly useSponsorsStore: UnwrapRef readonly useSpotsStore: UnwrapRef + readonly useTeamStore: UnwrapRef readonly useTheme: UnwrapRef readonly useUserStore: UnwrapRef readonly watch: UnwrapRef @@ -311,6 +313,7 @@ declare module '@vue/runtime-core' { readonly useSlots: UnwrapRef readonly useSponsorsStore: UnwrapRef readonly useSpotsStore: UnwrapRef + readonly useTeamStore: UnwrapRef readonly useTheme: UnwrapRef readonly useUserStore: UnwrapRef readonly watch: UnwrapRef diff --git a/lib/components/team/VoTeamDialog.vue b/lib/components/team/VoTeamDialog.vue index 39fca2c..5795ccd 100644 --- a/lib/components/team/VoTeamDialog.vue +++ b/lib/components/team/VoTeamDialog.vue @@ -1,12 +1,13 @@