Remove Banners component, have all invites in same location (#3304)
This commit is contained in:
committed by
GitHub
parent
7c9213dc92
commit
efaa6970cd
@@ -8,22 +8,27 @@
|
||||
v-if="projectsInvites?.projectInvites?.length"
|
||||
:invites="projectsInvites"
|
||||
/>
|
||||
<WorkspaceInviteBanners
|
||||
v-if="
|
||||
workspacesInvites?.workspaceInvites?.length ||
|
||||
workspacesInvites?.discoverableWorkspaces?.length
|
||||
"
|
||||
:invites="workspacesInvites"
|
||||
<WorkspaceInviteBanner
|
||||
v-for="invite in workspaceInvites"
|
||||
:key="invite.id"
|
||||
:invite="invite"
|
||||
/>
|
||||
<WorkspaceInviteDiscoverableWorkspaceBanner
|
||||
v-for="workspace in discoverableWorkspaces"
|
||||
:key="workspace.id"
|
||||
:workspace="workspace"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { useSynchronizedCookie } from '~/lib/common/composables/reactiveCookie'
|
||||
import { graphql } from '~/lib/common/generated/gql'
|
||||
import type {
|
||||
ProjectsDashboardHeaderProjects_UserFragment,
|
||||
ProjectsDashboardHeaderWorkspaces_UserFragment
|
||||
} from '~/lib/common/generated/gql/graphql'
|
||||
import { CookieKeys } from '~/lib/common/helpers/constants'
|
||||
|
||||
graphql(`
|
||||
fragment ProjectsDashboardHeaderProjects_User on User {
|
||||
@@ -33,7 +38,12 @@ graphql(`
|
||||
|
||||
graphql(`
|
||||
fragment ProjectsDashboardHeaderWorkspaces_User on User {
|
||||
...WorkspaceInviteBanners_User
|
||||
discoverableWorkspaces {
|
||||
...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace
|
||||
}
|
||||
workspaceInvites {
|
||||
...WorkspaceInviteBanner_PendingWorkspaceCollaborator
|
||||
}
|
||||
}
|
||||
`)
|
||||
|
||||
@@ -42,11 +52,26 @@ const props = defineProps<{
|
||||
workspacesInvites?: ProjectsDashboardHeaderWorkspaces_UserFragment
|
||||
}>()
|
||||
|
||||
const dismissedDiscoverableWorkspaces = useSynchronizedCookie<string[]>(
|
||||
CookieKeys.DismissedDiscoverableWorkspaces,
|
||||
{
|
||||
default: () => []
|
||||
}
|
||||
)
|
||||
|
||||
const workspaceInvites = computed(() => props.workspacesInvites?.workspaceInvites || [])
|
||||
const discoverableWorkspaces = computed(
|
||||
() =>
|
||||
props.workspacesInvites?.discoverableWorkspaces?.filter(
|
||||
(workspace) => !dismissedDiscoverableWorkspaces.value.includes(workspace.id)
|
||||
) || []
|
||||
)
|
||||
|
||||
const hasBanners = computed(() => {
|
||||
return (
|
||||
props.projectsInvites?.projectInvites?.length ||
|
||||
props.workspacesInvites?.workspaceInvites?.length ||
|
||||
props.workspacesInvites?.discoverableWorkspaces?.length
|
||||
workspaceInvites.value.length ||
|
||||
discoverableWorkspaces.value.length
|
||||
)
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
<template>
|
||||
<div class="flex flex-col">
|
||||
<WorkspaceInviteBanner
|
||||
v-for="invite in invites"
|
||||
:key="invite.id"
|
||||
:invite="invite"
|
||||
/>
|
||||
<WorkspaceInviteDiscoverableWorkspaceBanner
|
||||
v-for="workspace in discoverableWorkspaces"
|
||||
:key="workspace.id"
|
||||
:workspace="workspace"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { useSynchronizedCookie } from '~/lib/common/composables/reactiveCookie'
|
||||
import { CookieKeys } from '~/lib/common/helpers/constants'
|
||||
import { graphql } from '~~/lib/common/generated/gql'
|
||||
import type { WorkspaceInviteBanners_UserFragment } from '~~/lib/common/generated/gql/graphql'
|
||||
|
||||
/**
|
||||
* TODO: Add this to new dashboard page and remove from projects dashboard
|
||||
*/
|
||||
|
||||
graphql(`
|
||||
fragment WorkspaceInviteBanners_User on User {
|
||||
discoverableWorkspaces {
|
||||
...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace
|
||||
}
|
||||
workspaceInvites {
|
||||
...WorkspaceInviteBanner_PendingWorkspaceCollaborator
|
||||
}
|
||||
}
|
||||
`)
|
||||
|
||||
const props = defineProps<{
|
||||
invites: WorkspaceInviteBanners_UserFragment
|
||||
}>()
|
||||
|
||||
const dismissedDiscoverableWorkspaces = useSynchronizedCookie<string[]>(
|
||||
CookieKeys.DismissedDiscoverableWorkspaces,
|
||||
{
|
||||
default: () => []
|
||||
}
|
||||
)
|
||||
|
||||
const invites = computed(() => props.invites.workspaceInvites || [])
|
||||
const discoverableWorkspaces = computed(
|
||||
() =>
|
||||
props.invites.discoverableWorkspaces?.filter(
|
||||
(workspace) => !dismissedDiscoverableWorkspaces.value.includes(workspace.id)
|
||||
) || []
|
||||
)
|
||||
</script>
|
||||
@@ -90,7 +90,7 @@ const documents = {
|
||||
"\n subscription OnUserProjectsUpdate {\n userProjectsUpdated {\n type\n id\n project {\n ...ProjectDashboardItem\n }\n }\n }\n ": types.OnUserProjectsUpdateDocument,
|
||||
"\n fragment ProjectsDashboardFilled on ProjectCollection {\n items {\n ...ProjectDashboardItem\n }\n }\n": types.ProjectsDashboardFilledFragmentDoc,
|
||||
"\n fragment ProjectsDashboardHeaderProjects_User on User {\n ...ProjectsInviteBanners\n }\n": types.ProjectsDashboardHeaderProjects_UserFragmentDoc,
|
||||
"\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n ...WorkspaceInviteBanners_User\n }\n": types.ProjectsDashboardHeaderWorkspaces_UserFragmentDoc,
|
||||
"\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\n }\n }\n": types.ProjectsDashboardHeaderWorkspaces_UserFragmentDoc,
|
||||
"\n fragment ProjectsMoveToWorkspaceDialog_Workspace on Workspace {\n id\n role\n name\n defaultLogoIndex\n logo\n }\n": types.ProjectsMoveToWorkspaceDialog_WorkspaceFragmentDoc,
|
||||
"\n fragment ProjectsMoveToWorkspaceDialog_User on User {\n workspaces {\n items {\n ...ProjectsMoveToWorkspaceDialog_Workspace\n }\n }\n }\n": types.ProjectsMoveToWorkspaceDialog_UserFragmentDoc,
|
||||
"\n fragment ProjectsMoveToWorkspaceDialog_Project on Project {\n id\n name\n modelCount: models(limit: 0) {\n totalCount\n }\n versions(limit: 0) {\n totalCount\n }\n }\n": types.ProjectsMoveToWorkspaceDialog_ProjectFragmentDoc,
|
||||
@@ -139,7 +139,6 @@ const documents = {
|
||||
"\n fragment WorkspaceProjectList_ProjectCollection on ProjectCollection {\n totalCount\n items {\n ...ProjectDashboardItem\n }\n cursor\n }\n": types.WorkspaceProjectList_ProjectCollectionFragmentDoc,
|
||||
"\n fragment WorkspaceHeader_Workspace on Workspace {\n ...WorkspaceAvatar_Workspace\n id\n slug\n role\n name\n logo\n description\n totalProjects: projects {\n totalCount\n }\n billing {\n versionsCount {\n ...WorkspacePageVersionCount_WorkspaceVersionsCount\n }\n }\n team {\n items {\n id\n user {\n id\n name\n ...LimitedUserAvatar\n }\n }\n }\n ...WorkspaceInviteDialog_Workspace\n }\n": types.WorkspaceHeader_WorkspaceFragmentDoc,
|
||||
"\n fragment WorkspaceInviteBanner_PendingWorkspaceCollaborator on PendingWorkspaceCollaborator {\n id\n invitedBy {\n id\n ...LimitedUserAvatar\n }\n workspaceId\n workspaceName\n token\n user {\n id\n }\n ...UseWorkspaceInviteManager_PendingWorkspaceCollaborator\n }\n": types.WorkspaceInviteBanner_PendingWorkspaceCollaboratorFragmentDoc,
|
||||
"\n fragment WorkspaceInviteBanners_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\n }\n }\n": types.WorkspaceInviteBanners_UserFragmentDoc,
|
||||
"\n fragment WorkspaceInviteBlock_PendingWorkspaceCollaborator on PendingWorkspaceCollaborator {\n id\n workspaceId\n workspaceName\n token\n user {\n id\n name\n ...LimitedUserAvatar\n }\n title\n email\n ...UseWorkspaceInviteManager_PendingWorkspaceCollaborator\n }\n": types.WorkspaceInviteBlock_PendingWorkspaceCollaboratorFragmentDoc,
|
||||
"\n fragment WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace on DiscoverableWorkspace {\n id\n name\n description\n logo\n defaultLogoIndex\n }\n fragment WorkspaceInviteDiscoverableWorkspaceBanner_Workspace on Workspace {\n id\n name\n description\n createdAt\n updatedAt\n logo\n defaultLogoIndex\n domainBasedMembershipProtectionEnabled\n discoverabilityEnabled\n }\n": types.WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspaceFragmentDoc,
|
||||
"\n fragment WorkspacePageVersionCount_WorkspaceVersionsCount on WorkspaceVersionsCount {\n current\n max\n }\n": types.WorkspacePageVersionCount_WorkspaceVersionsCountFragmentDoc,
|
||||
@@ -665,7 +664,7 @@ export function graphql(source: "\n fragment ProjectsDashboardHeaderProjects_Us
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n ...WorkspaceInviteBanners_User\n }\n"): (typeof documents)["\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n ...WorkspaceInviteBanners_User\n }\n"];
|
||||
export function graphql(source: "\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\n }\n }\n"): (typeof documents)["\n fragment ProjectsDashboardHeaderWorkspaces_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\n }\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
@@ -858,10 +857,6 @@ export function graphql(source: "\n fragment WorkspaceHeader_Workspace on Works
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n fragment WorkspaceInviteBanner_PendingWorkspaceCollaborator on PendingWorkspaceCollaborator {\n id\n invitedBy {\n id\n ...LimitedUserAvatar\n }\n workspaceId\n workspaceName\n token\n user {\n id\n }\n ...UseWorkspaceInviteManager_PendingWorkspaceCollaborator\n }\n"): (typeof documents)["\n fragment WorkspaceInviteBanner_PendingWorkspaceCollaborator on PendingWorkspaceCollaborator {\n id\n invitedBy {\n id\n ...LimitedUserAvatar\n }\n workspaceId\n workspaceName\n token\n user {\n id\n }\n ...UseWorkspaceInviteManager_PendingWorkspaceCollaborator\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 fragment WorkspaceInviteBanners_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\n }\n }\n"): (typeof documents)["\n fragment WorkspaceInviteBanners_User on User {\n discoverableWorkspaces {\n ...WorkspaceInviteDiscoverableWorkspaceBanner_DiscoverableWorkspace\n }\n workspaceInvites {\n ...WorkspaceInviteBanner_PendingWorkspaceCollaborator\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
Reference in New Issue
Block a user