feat: add speckleConBannerDismissed to activeUser.meta
This commit is contained in:
@@ -1,8 +1,18 @@
|
||||
<template>
|
||||
<CommonCard class="relative !px-3 !py-2.5 bg-foundation shadow-sm">
|
||||
<FormButton
|
||||
class="absolute top-1 right-1"
|
||||
size="sm"
|
||||
color="subtle"
|
||||
:icon-right="XMarkIcon"
|
||||
hide-text
|
||||
@click="dismissSpeckleConBanner"
|
||||
>
|
||||
<span class="sr-only">Close</span>
|
||||
</FormButton>
|
||||
<div class="flex flex-col gap-y-2 text-foreground">
|
||||
<span class="text-[10px] font-mono uppercase tracking-widest">
|
||||
Upcoming Event
|
||||
Upcoming event
|
||||
</span>
|
||||
<h3 class="text-body-xs font-semibold leading-tight tracking-tight">
|
||||
SpeckleCON:
|
||||
@@ -28,14 +38,20 @@
|
||||
</CommonCard>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ArrowUpRightIcon } from '@heroicons/vue/24/solid'
|
||||
import { ArrowUpRightIcon, XMarkIcon } from '@heroicons/vue/24/solid'
|
||||
import { useMixpanel } from '~~/lib/core/composables/mp'
|
||||
import { useActiveUserMeta } from '~~/lib/user/composables/meta'
|
||||
|
||||
const mixpanel = useMixpanel()
|
||||
const { updateSpeckleConBannerDismissed } = useActiveUserMeta()
|
||||
|
||||
const onCTAClick = () => {
|
||||
mixpanel.track('SpeckleCON CTA Clicked', {
|
||||
location: 'sidebar'
|
||||
})
|
||||
}
|
||||
|
||||
const dismissSpeckleConBanner = async () => {
|
||||
await updateSpeckleConBannerDismissed(true)
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -167,6 +167,7 @@ import { useActiveUser } from '~~/lib/auth/composables/activeUser'
|
||||
import { useNavigation } from '~~/lib/navigation/composables/navigation'
|
||||
import { useMixpanel } from '~~/lib/core/composables/mp'
|
||||
import dayjs from 'dayjs'
|
||||
import { useActiveUserMeta } from '~/lib/user/composables/meta'
|
||||
|
||||
const { isLoggedIn } = useActiveUser()
|
||||
const isWorkspacesEnabled = useIsWorkspacesEnabled()
|
||||
@@ -174,6 +175,7 @@ const route = useRoute()
|
||||
const { activeWorkspaceSlug, isProjectsActive } = useNavigation()
|
||||
const { $intercom } = useNuxtApp()
|
||||
const mixpanel = useMixpanel()
|
||||
const { hasDismissedSpeckleConBanner } = useActiveUserMeta()
|
||||
|
||||
const isOpenMobile = ref(false)
|
||||
const showExplainerVideoDialog = ref(false)
|
||||
@@ -193,6 +195,7 @@ const showSidebar = computed(() => {
|
||||
})
|
||||
|
||||
const showSpeckleConPromo = computed(() => {
|
||||
if (hasDismissedSpeckleConBanner.value) return false
|
||||
return dayjs('2025-11-08').isAfter(dayjs())
|
||||
})
|
||||
|
||||
|
||||
@@ -325,9 +325,10 @@ type Documents = {
|
||||
"\n fragment AppAuthorAvatar on AppAuthor {\n id\n name\n avatar\n }\n": typeof types.AppAuthorAvatarFragmentDoc,
|
||||
"\n fragment LimitedUserAvatar on LimitedUser {\n id\n name\n avatar\n }\n": typeof types.LimitedUserAvatarFragmentDoc,
|
||||
"\n fragment ActiveUserAvatar on User {\n id\n name\n avatar\n }\n": typeof types.ActiveUserAvatarFragmentDoc,
|
||||
"\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n }\n }\n }\n": typeof types.ActiveUserMetaDocument,
|
||||
"\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n speckleConBannerDismissed\n }\n }\n }\n": typeof types.ActiveUserMetaDocument,
|
||||
"\n mutation UpdateWorkspaceExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setNewWorkspaceExplainerDismissed(value: $value)\n }\n }\n }\n": typeof types.UpdateWorkspaceExplainerDocument,
|
||||
"\n mutation UpdateLegacyProjectsExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setLegacyProjectsExplainerCollapsed(value: $value)\n }\n }\n }\n": typeof types.UpdateLegacyProjectsExplainerDocument,
|
||||
"\n mutation UpdateSpeckleConBannerDismissed($value: Boolean!) {\n activeUserMutations {\n meta {\n setSpeckleConBannerDismissed(value: $value)\n }\n }\n }\n": typeof types.UpdateSpeckleConBannerDismissedDocument,
|
||||
"\n subscription OnUserProjectsUpdate {\n userProjectsUpdated {\n type\n id\n project {\n ...ProjectDashboardItem\n }\n }\n }\n ": typeof types.OnUserProjectsUpdateDocument,
|
||||
"\n mutation UpdateUser($input: UserUpdateInput!) {\n activeUserMutations {\n update(user: $input) {\n id\n name\n bio\n company\n avatar\n }\n }\n }\n": typeof types.UpdateUserDocument,
|
||||
"\n mutation UpdateNotificationPreferences($input: JSONObject!) {\n userNotificationPreferencesUpdate(preferences: $input)\n }\n": typeof types.UpdateNotificationPreferencesDocument,
|
||||
@@ -738,9 +739,10 @@ const documents: Documents = {
|
||||
"\n fragment AppAuthorAvatar on AppAuthor {\n id\n name\n avatar\n }\n": types.AppAuthorAvatarFragmentDoc,
|
||||
"\n fragment LimitedUserAvatar on LimitedUser {\n id\n name\n avatar\n }\n": types.LimitedUserAvatarFragmentDoc,
|
||||
"\n fragment ActiveUserAvatar on User {\n id\n name\n avatar\n }\n": types.ActiveUserAvatarFragmentDoc,
|
||||
"\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n }\n }\n }\n": types.ActiveUserMetaDocument,
|
||||
"\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n speckleConBannerDismissed\n }\n }\n }\n": types.ActiveUserMetaDocument,
|
||||
"\n mutation UpdateWorkspaceExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setNewWorkspaceExplainerDismissed(value: $value)\n }\n }\n }\n": types.UpdateWorkspaceExplainerDocument,
|
||||
"\n mutation UpdateLegacyProjectsExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setLegacyProjectsExplainerCollapsed(value: $value)\n }\n }\n }\n": types.UpdateLegacyProjectsExplainerDocument,
|
||||
"\n mutation UpdateSpeckleConBannerDismissed($value: Boolean!) {\n activeUserMutations {\n meta {\n setSpeckleConBannerDismissed(value: $value)\n }\n }\n }\n": types.UpdateSpeckleConBannerDismissedDocument,
|
||||
"\n subscription OnUserProjectsUpdate {\n userProjectsUpdated {\n type\n id\n project {\n ...ProjectDashboardItem\n }\n }\n }\n ": types.OnUserProjectsUpdateDocument,
|
||||
"\n mutation UpdateUser($input: UserUpdateInput!) {\n activeUserMutations {\n update(user: $input) {\n id\n name\n bio\n company\n avatar\n }\n }\n }\n": types.UpdateUserDocument,
|
||||
"\n mutation UpdateNotificationPreferences($input: JSONObject!) {\n userNotificationPreferencesUpdate(preferences: $input)\n }\n": types.UpdateNotificationPreferencesDocument,
|
||||
@@ -2101,7 +2103,7 @@ export function graphql(source: "\n fragment ActiveUserAvatar on User {\n id
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n }\n }\n }\n"): (typeof documents)["\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n }\n }\n }\n"];
|
||||
export function graphql(source: "\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n speckleConBannerDismissed\n }\n }\n }\n"): (typeof documents)["\n query ActiveUserMeta {\n activeUser {\n meta {\n newWorkspaceExplainerDismissed\n legacyProjectsExplainerCollapsed\n speckleConBannerDismissed\n }\n }\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
@@ -2110,6 +2112,10 @@ export function graphql(source: "\n mutation UpdateWorkspaceExplainer($value: B
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n mutation UpdateLegacyProjectsExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setLegacyProjectsExplainerCollapsed(value: $value)\n }\n }\n }\n"): (typeof documents)["\n mutation UpdateLegacyProjectsExplainer($value: Boolean!) {\n activeUserMutations {\n meta {\n setLegacyProjectsExplainerCollapsed(value: $value)\n }\n }\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n mutation UpdateSpeckleConBannerDismissed($value: Boolean!) {\n activeUserMutations {\n meta {\n setSpeckleConBannerDismissed(value: $value)\n }\n }\n }\n"): (typeof documents)["\n mutation UpdateSpeckleConBannerDismissed($value: Boolean!) {\n activeUserMutations {\n meta {\n setSpeckleConBannerDismissed(value: $value)\n }\n }\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,6 +7,7 @@ export const activeUserMetaQuery = graphql(`
|
||||
meta {
|
||||
newWorkspaceExplainerDismissed
|
||||
legacyProjectsExplainerCollapsed
|
||||
speckleConBannerDismissed
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,6 +33,16 @@ export const updateLegacyProjectsExplainerMutation = graphql(`
|
||||
}
|
||||
`)
|
||||
|
||||
export const updateSpeckleConBannerDismissedMutation = graphql(`
|
||||
mutation UpdateSpeckleConBannerDismissed($value: Boolean!) {
|
||||
activeUserMutations {
|
||||
meta {
|
||||
setSpeckleConBannerDismissed(value: $value)
|
||||
}
|
||||
}
|
||||
}
|
||||
`)
|
||||
|
||||
export function useActiveUserMeta() {
|
||||
const { result } = useQuery(activeUserMetaQuery)
|
||||
const { mutate: updateWorkspaceExplainer } = useMutation(
|
||||
@@ -40,6 +51,9 @@ export function useActiveUserMeta() {
|
||||
const { mutate: updateLegacyProjectsExplainer } = useMutation(
|
||||
updateLegacyProjectsExplainerMutation
|
||||
)
|
||||
const { mutate: updateSpeckleConBanner } = useMutation(
|
||||
updateSpeckleConBannerDismissedMutation
|
||||
)
|
||||
const apollo = useApolloClient().client
|
||||
const cache = apollo.cache
|
||||
const { activeUser } = useActiveUser()
|
||||
@@ -55,6 +69,10 @@ export function useActiveUserMeta() {
|
||||
() => meta.value?.legacyProjectsExplainerCollapsed
|
||||
)
|
||||
|
||||
const hasDismissedSpeckleConBanner = computed(
|
||||
() => meta.value?.speckleConBannerDismissed ?? false
|
||||
)
|
||||
|
||||
const updateNewWorkspaceExplainerDismissed = async (value: boolean) => {
|
||||
await updateWorkspaceExplainer({ value })
|
||||
|
||||
@@ -83,10 +101,26 @@ export function useActiveUserMeta() {
|
||||
)
|
||||
}
|
||||
|
||||
const updateSpeckleConBannerDismissed = async (value: boolean) => {
|
||||
await updateSpeckleConBanner({ value })
|
||||
|
||||
modifyObjectField(
|
||||
cache,
|
||||
getCacheId('User', activeUserId.value),
|
||||
'meta',
|
||||
({ helpers: { createUpdatedValue } }) =>
|
||||
createUpdatedValue(({ update }) => {
|
||||
update('speckleConBannerDismissed', () => value)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
return {
|
||||
hasDismissedNewWorkspaceExplainer,
|
||||
hasCollapsedLegacyProjectsExplainer,
|
||||
hasDismissedSpeckleConBanner,
|
||||
updateNewWorkspaceExplainerDismissed,
|
||||
updateLegacyProjectsExplainerCollapsed,
|
||||
hasDismissedNewWorkspaceExplainer,
|
||||
hasCollapsedLegacyProjectsExplainer
|
||||
updateSpeckleConBannerDismissed
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
type UserMeta {
|
||||
newWorkspaceExplainerDismissed: Boolean!
|
||||
speckleConBannerDismissed: Boolean!
|
||||
legacyProjectsExplainerCollapsed: Boolean!
|
||||
}
|
||||
|
||||
type UserMetaMutations {
|
||||
setNewWorkspaceExplainerDismissed(value: Boolean!): Boolean!
|
||||
setSpeckleConBannerDismissed(value: Boolean!): Boolean!
|
||||
setLegacyProjectsExplainerCollapsed(value: Boolean!): Boolean!
|
||||
}
|
||||
|
||||
|
||||
@@ -299,6 +299,7 @@ export const UsersMeta = buildMetaTableHelper(
|
||||
'activeWorkspace',
|
||||
'isProjectsActive',
|
||||
'newWorkspaceExplainerDismissed',
|
||||
'speckleConBannerDismissed',
|
||||
'legacyProjectsExplainerCollapsed',
|
||||
// Used in tests
|
||||
'foo',
|
||||
|
||||
@@ -4148,12 +4148,14 @@ export type UserMeta = {
|
||||
__typename?: 'UserMeta';
|
||||
legacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
newWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
speckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
export type UserMetaMutations = {
|
||||
__typename?: 'UserMetaMutations';
|
||||
setLegacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
setNewWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
setSpeckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
|
||||
@@ -4166,6 +4168,11 @@ export type UserMetaMutationsSetNewWorkspaceExplainerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type UserMetaMutationsSetSpeckleConBannerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
export type UserProjectCollection = {
|
||||
__typename?: 'UserProjectCollection';
|
||||
cursor?: Maybe<Scalars['String']['output']>;
|
||||
@@ -7293,12 +7300,14 @@ export type UserGendoAiCreditsResolvers<ContextType = GraphQLContext, ParentType
|
||||
export type UserMetaResolvers<ContextType = GraphQLContext, ParentType extends ResolversParentTypes['UserMeta'] = ResolversParentTypes['UserMeta']> = {
|
||||
legacyProjectsExplainerCollapsed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
||||
newWorkspaceExplainerDismissed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
||||
speckleConBannerDismissed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType>;
|
||||
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
||||
};
|
||||
|
||||
export type UserMetaMutationsResolvers<ContextType = GraphQLContext, ParentType extends ResolversParentTypes['UserMetaMutations'] = ResolversParentTypes['UserMetaMutations']> = {
|
||||
setLegacyProjectsExplainerCollapsed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType, RequireFields<UserMetaMutationsSetLegacyProjectsExplainerCollapsedArgs, 'value'>>;
|
||||
setNewWorkspaceExplainerDismissed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType, RequireFields<UserMetaMutationsSetNewWorkspaceExplainerDismissedArgs, 'value'>>;
|
||||
setSpeckleConBannerDismissed?: Resolver<ResolversTypes['Boolean'], ParentType, ContextType, RequireFields<UserMetaMutationsSetSpeckleConBannerDismissedArgs, 'value'>>;
|
||||
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
||||
};
|
||||
|
||||
|
||||
@@ -228,6 +228,13 @@ export = {
|
||||
})
|
||||
return !!metaVal?.value
|
||||
},
|
||||
speckleConBannerDismissed: async (parent, _args, ctx) => {
|
||||
const metaVal = await ctx.loaders.users.getUserMeta.load({
|
||||
userId: parent.userId,
|
||||
key: UsersMeta.metaKey.speckleConBannerDismissed
|
||||
})
|
||||
return !!metaVal?.value
|
||||
},
|
||||
legacyProjectsExplainerCollapsed: async (parent, _args, ctx) => {
|
||||
const metaVal = await ctx.loaders.users.getUserMeta.load({
|
||||
userId: parent.userId,
|
||||
@@ -411,6 +418,16 @@ export = {
|
||||
args.value
|
||||
)
|
||||
|
||||
return !!res.value
|
||||
},
|
||||
setSpeckleConBannerDismissed: async (_parent, args, ctx) => {
|
||||
const meta = metaHelpers(Users, db)
|
||||
const res = await meta.set(
|
||||
ctx.userId!,
|
||||
UsersMeta.metaKey.speckleConBannerDismissed,
|
||||
args.value
|
||||
)
|
||||
|
||||
return !!res.value
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,6 +199,7 @@ export const getNewWorkspaceExplainerDismissedQuery = gql`
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
export const setNewWorkspaceExplainerDismissedMutation = gql`
|
||||
mutation SetNewWorkspaceExplainerDismissed($input: Boolean!) {
|
||||
activeUserMutations {
|
||||
@@ -209,6 +210,26 @@ export const setNewWorkspaceExplainerDismissedMutation = gql`
|
||||
}
|
||||
`
|
||||
|
||||
export const getSpeckleConBannerDismissedQuery = gql`
|
||||
query GetSpeckleConBannerDismissed {
|
||||
activeUser {
|
||||
meta {
|
||||
speckleConBannerDismissed
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
export const setSpeckleConBannerDismissedMutation = gql`
|
||||
mutation SetSpeckleConBannerDismissed($input: Boolean!) {
|
||||
activeUserMutations {
|
||||
meta {
|
||||
setSpeckleConBannerDismissed(value: $input)
|
||||
}
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
export const getLegacyProjectsExplainerCollapsedQuery = gql`
|
||||
query GetLegacyProjectsExplainerCollapsed {
|
||||
activeUser {
|
||||
|
||||
@@ -2,8 +2,10 @@ import { BasicTestUser, createTestUser } from '@/test/authHelper'
|
||||
import {
|
||||
GetLegacyProjectsExplainerCollapsedDocument,
|
||||
GetNewWorkspaceExplainerDismissedDocument,
|
||||
GetSpeckleConBannerDismissedDocument,
|
||||
SetLegacyProjectsExplainerCollapsedDocument,
|
||||
SetNewWorkspaceExplainerDismissedDocument
|
||||
SetNewWorkspaceExplainerDismissedDocument,
|
||||
SetSpeckleConBannerDismissedDocument
|
||||
} from '@/test/graphql/generated/graphql'
|
||||
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
|
||||
import { beforeEachContext } from '@/test/hooks'
|
||||
@@ -41,6 +43,23 @@ describe('UserMeta GraphQL', () => {
|
||||
expect(getRes2.data?.activeUser?.meta.newWorkspaceExplainerDismissed).to.be.true
|
||||
})
|
||||
|
||||
it('speckleConBannerDismissed get/set works', async () => {
|
||||
const getRes = await apollo.execute(GetSpeckleConBannerDismissedDocument, {})
|
||||
expect(getRes).to.not.haveGraphQLErrors()
|
||||
expect(getRes.data?.activeUser?.meta.speckleConBannerDismissed).to.be.false
|
||||
|
||||
const setRes = await apollo.execute(SetSpeckleConBannerDismissedDocument, {
|
||||
input: true
|
||||
})
|
||||
expect(setRes).to.not.haveGraphQLErrors()
|
||||
expect(setRes.data?.activeUserMutations?.meta.setSpeckleConBannerDismissed).to.be
|
||||
.true
|
||||
|
||||
const getRes2 = await apollo.execute(GetSpeckleConBannerDismissedDocument, {})
|
||||
expect(getRes2).to.not.haveGraphQLErrors()
|
||||
expect(getRes2.data?.activeUser?.meta.speckleConBannerDismissed).to.be.true
|
||||
})
|
||||
|
||||
it('setLegacyProjectsExplainerCollapsed get/set works', async () => {
|
||||
const getRes = await apollo.execute(GetLegacyProjectsExplainerCollapsedDocument, {})
|
||||
expect(getRes).to.not.haveGraphQLErrors()
|
||||
|
||||
@@ -4128,12 +4128,14 @@ export type UserMeta = {
|
||||
__typename?: 'UserMeta';
|
||||
legacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
newWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
speckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
export type UserMetaMutations = {
|
||||
__typename?: 'UserMetaMutations';
|
||||
setLegacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
setNewWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
setSpeckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
|
||||
@@ -4146,6 +4148,11 @@ export type UserMetaMutationsSetNewWorkspaceExplainerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type UserMetaMutationsSetSpeckleConBannerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
export type UserProjectCollection = {
|
||||
__typename?: 'UserProjectCollection';
|
||||
cursor?: Maybe<Scalars['String']['output']>;
|
||||
|
||||
@@ -4129,12 +4129,14 @@ export type UserMeta = {
|
||||
__typename?: 'UserMeta';
|
||||
legacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
newWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
speckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
export type UserMetaMutations = {
|
||||
__typename?: 'UserMetaMutations';
|
||||
setLegacyProjectsExplainerCollapsed: Scalars['Boolean']['output'];
|
||||
setNewWorkspaceExplainerDismissed: Scalars['Boolean']['output'];
|
||||
setSpeckleConBannerDismissed: Scalars['Boolean']['output'];
|
||||
};
|
||||
|
||||
|
||||
@@ -4147,6 +4149,11 @@ export type UserMetaMutationsSetNewWorkspaceExplainerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
|
||||
export type UserMetaMutationsSetSpeckleConBannerDismissedArgs = {
|
||||
value: Scalars['Boolean']['input'];
|
||||
};
|
||||
|
||||
export type UserProjectCollection = {
|
||||
__typename?: 'UserProjectCollection';
|
||||
cursor?: Maybe<Scalars['String']['output']>;
|
||||
@@ -5287,6 +5294,18 @@ export type SetNewWorkspaceExplainerDismissedMutationVariables = Exact<{
|
||||
|
||||
export type SetNewWorkspaceExplainerDismissedMutation = { __typename?: 'Mutation', activeUserMutations: { __typename?: 'ActiveUserMutations', meta: { __typename?: 'UserMetaMutations', setNewWorkspaceExplainerDismissed: boolean } } };
|
||||
|
||||
export type GetSpeckleConBannerDismissedQueryVariables = Exact<{ [key: string]: never; }>;
|
||||
|
||||
|
||||
export type GetSpeckleConBannerDismissedQuery = { __typename?: 'Query', activeUser?: { __typename?: 'User', meta: { __typename?: 'UserMeta', speckleConBannerDismissed: boolean } } | null };
|
||||
|
||||
export type SetSpeckleConBannerDismissedMutationVariables = Exact<{
|
||||
input: Scalars['Boolean']['input'];
|
||||
}>;
|
||||
|
||||
|
||||
export type SetSpeckleConBannerDismissedMutation = { __typename?: 'Mutation', activeUserMutations: { __typename?: 'ActiveUserMutations', meta: { __typename?: 'UserMetaMutations', setSpeckleConBannerDismissed: boolean } } };
|
||||
|
||||
export type GetLegacyProjectsExplainerCollapsedQueryVariables = Exact<{ [key: string]: never; }>;
|
||||
|
||||
|
||||
@@ -6371,6 +6390,8 @@ export const GetProjectWithVersionsDocument = {"kind":"Document","definitions":[
|
||||
export const GetProjectWithModelVersionsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetProjectWithModelVersions"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"id"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"project"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"id"},"value":{"kind":"Variable","name":{"kind":"Name","value":"id"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"models"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"versions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"referencedObject"}}]}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode<GetProjectWithModelVersionsQuery, GetProjectWithModelVersionsQueryVariables>;
|
||||
export const GetNewWorkspaceExplainerDismissedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetNewWorkspaceExplainerDismissed"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"newWorkspaceExplainerDismissed"}}]}}]}}]}}]} as unknown as DocumentNode<GetNewWorkspaceExplainerDismissedQuery, GetNewWorkspaceExplainerDismissedQueryVariables>;
|
||||
export const SetNewWorkspaceExplainerDismissedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetNewWorkspaceExplainerDismissed"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUserMutations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setNewWorkspaceExplainerDismissed"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}]}]}}]}}]}}]} as unknown as DocumentNode<SetNewWorkspaceExplainerDismissedMutation, SetNewWorkspaceExplainerDismissedMutationVariables>;
|
||||
export const GetSpeckleConBannerDismissedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetSpeckleConBannerDismissed"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"speckleConBannerDismissed"}}]}}]}}]}}]} as unknown as DocumentNode<GetSpeckleConBannerDismissedQuery, GetSpeckleConBannerDismissedQueryVariables>;
|
||||
export const SetSpeckleConBannerDismissedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetSpeckleConBannerDismissed"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUserMutations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setSpeckleConBannerDismissed"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}]}]}}]}}]}}]} as unknown as DocumentNode<SetSpeckleConBannerDismissedMutation, SetSpeckleConBannerDismissedMutationVariables>;
|
||||
export const GetLegacyProjectsExplainerCollapsedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetLegacyProjectsExplainerCollapsed"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUser"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"legacyProjectsExplainerCollapsed"}}]}}]}}]}}]} as unknown as DocumentNode<GetLegacyProjectsExplainerCollapsedQuery, GetLegacyProjectsExplainerCollapsedQueryVariables>;
|
||||
export const SetLegacyProjectsExplainerCollapsedDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"SetLegacyProjectsExplainerCollapsed"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"Boolean"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"activeUserMutations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"meta"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"setLegacyProjectsExplainerCollapsed"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"value"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}]}]}}]}}]}}]} as unknown as DocumentNode<SetLegacyProjectsExplainerCollapsedMutation, SetLegacyProjectsExplainerCollapsedMutationVariables>;
|
||||
export const CreateWorkspaceInviteDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"CreateWorkspaceInvite"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"input"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"WorkspaceInviteCreateInput"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"workspaceMutations"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"invites"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"create"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"workspaceId"},"value":{"kind":"Variable","name":{"kind":"Name","value":"workspaceId"}}},{"kind":"Argument","name":{"kind":"Name","value":"input"},"value":{"kind":"Variable","name":{"kind":"Name","value":"input"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BasicWorkspace"}},{"kind":"Field","name":{"kind":"Name","value":"invitedTeam"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"BasicPendingWorkspaceCollaborator"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BasicWorkspace"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Workspace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"slug"}},{"kind":"Field","name":{"kind":"Name","value":"updatedAt"}},{"kind":"Field","name":{"kind":"Name","value":"createdAt"}},{"kind":"Field","name":{"kind":"Name","value":"role"}},{"kind":"Field","name":{"kind":"Name","value":"readOnly"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"BasicPendingWorkspaceCollaborator"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PendingWorkspaceCollaborator"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"inviteId"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceId"}},{"kind":"Field","name":{"kind":"Name","value":"workspaceName"}},{"kind":"Field","name":{"kind":"Name","value":"title"}},{"kind":"Field","name":{"kind":"Name","value":"role"}},{"kind":"Field","name":{"kind":"Name","value":"invitedBy"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"user"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"token"}}]}}]} as unknown as DocumentNode<CreateWorkspaceInviteMutation, CreateWorkspaceInviteMutationVariables>;
|
||||
|
||||
Reference in New Issue
Block a user