Naming improvements
This commit is contained in:
+17
-17
@@ -17,7 +17,7 @@
|
||||
/>
|
||||
</LayoutMenu>
|
||||
|
||||
<SettingsWorkspacesMembersUpdateDialog
|
||||
<SettingsWorkspacesMembersActionsDialog
|
||||
v-if="dialogConfig"
|
||||
v-model:open="showDialog"
|
||||
:user="targetUser"
|
||||
@@ -42,7 +42,7 @@ import {
|
||||
import { EllipsisHorizontalIcon, XMarkIcon } from '@heroicons/vue/24/outline'
|
||||
import type { LayoutMenuItem } from '~~/lib/layout/helpers/components'
|
||||
import { HorizontalDirection } from '~~/lib/common/composables/window'
|
||||
import { WorkspaceUserUpdateActionTypes } from '~/lib/settings/helpers/types'
|
||||
import { WorkspaceUserActionTypes } from '~/lib/settings/helpers/types'
|
||||
import type { UserItem } from './new/MembersTable.vue'
|
||||
import {
|
||||
useWorkspaceUpdateRole,
|
||||
@@ -50,7 +50,7 @@ import {
|
||||
} from '~/lib/workspaces/composables/management'
|
||||
import { useActiveUser } from '~/lib/auth/composables/activeUser'
|
||||
import {
|
||||
WorkspaceUserUpdateConfig,
|
||||
WorkspaceUserActionsConfig,
|
||||
WorkspaceRoleDescriptions
|
||||
} from '~/lib/settings/helpers/constants'
|
||||
|
||||
@@ -66,7 +66,7 @@ const updateUserSeatType = useWorkspaceUpdateSeatType()
|
||||
|
||||
const showMenu = ref(false)
|
||||
const showDialog = ref(false)
|
||||
const dialogType = ref<WorkspaceUserUpdateActionTypes>()
|
||||
const dialogType = ref<WorkspaceUserActionTypes>()
|
||||
|
||||
const isActiveUserWorkspaceAdmin = computed(
|
||||
() => props.workspaceRole === Roles.Workspace.Admin
|
||||
@@ -85,13 +85,13 @@ const filteredActionsItems = computed(() => {
|
||||
// 3. The target user's current role (to show/hide role change options)
|
||||
// 4. The target user's seat type (to show relevant upgrade/downgrade options)
|
||||
// Special case: For remove action, we check against 'canRemove' instead of actual role
|
||||
Object.entries(WorkspaceUserUpdateConfig).forEach(([type, config]) => {
|
||||
Object.entries(WorkspaceUserActionsConfig).forEach(([type, config]) => {
|
||||
if (
|
||||
config.menu.show({
|
||||
isActiveUserWorkspaceAdmin: isActiveUserWorkspaceAdmin.value,
|
||||
isActiveUserTargetUser: isActiveUserTargetUser.value,
|
||||
targetUserCurrentRole:
|
||||
type === WorkspaceUserUpdateActionTypes.RemoveMember
|
||||
type === WorkspaceUserActionTypes.RemoveMember
|
||||
? 'canRemove'
|
||||
: props.targetUser.role,
|
||||
targetUserCurrentSeatType: props.targetUser.seatType
|
||||
@@ -101,8 +101,8 @@ const filteredActionsItems = computed(() => {
|
||||
|
||||
// Add remove/leave actions to footer, others to main section
|
||||
if (
|
||||
type === WorkspaceUserUpdateActionTypes.RemoveMember ||
|
||||
type === WorkspaceUserUpdateActionTypes.LeaveWorkspace
|
||||
type === WorkspaceUserActionTypes.RemoveMember ||
|
||||
type === WorkspaceUserActionTypes.LeaveWorkspace
|
||||
) {
|
||||
footerItems.push(item)
|
||||
} else {
|
||||
@@ -118,7 +118,7 @@ const filteredActionsItems = computed(() => {
|
||||
})
|
||||
|
||||
const onActionChosen = (actionItem: LayoutMenuItem) => {
|
||||
dialogType.value = actionItem.id as WorkspaceUserUpdateActionTypes
|
||||
dialogType.value = actionItem.id as WorkspaceUserActionTypes
|
||||
showDialog.value = true
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ const onRemoveUser = async () => {
|
||||
|
||||
const dialogConfig = computed(() => {
|
||||
if (!dialogType.value) return null
|
||||
const config = WorkspaceUserUpdateConfig[dialogType.value].dialog
|
||||
const config = WorkspaceUserActionsConfig[dialogType.value].dialog
|
||||
return {
|
||||
...config,
|
||||
mainMessage:
|
||||
@@ -175,23 +175,23 @@ const onDialogConfirm = async () => {
|
||||
if (!props.workspaceId) return
|
||||
|
||||
switch (dialogType.value) {
|
||||
case WorkspaceUserUpdateActionTypes.MakeAdmin:
|
||||
case WorkspaceUserActionTypes.MakeAdmin:
|
||||
await onUpdateRole(Roles.Workspace.Admin)
|
||||
break
|
||||
case WorkspaceUserUpdateActionTypes.MakeGuest:
|
||||
case WorkspaceUserActionTypes.MakeGuest:
|
||||
await onUpdateRole(Roles.Workspace.Guest)
|
||||
break
|
||||
case WorkspaceUserUpdateActionTypes.RemoveAdmin:
|
||||
case WorkspaceUserUpdateActionTypes.MakeMember:
|
||||
case WorkspaceUserActionTypes.RemoveAdmin:
|
||||
case WorkspaceUserActionTypes.MakeMember:
|
||||
await onUpdateRole(Roles.Workspace.Member)
|
||||
break
|
||||
case WorkspaceUserUpdateActionTypes.UpgradeEditor:
|
||||
case WorkspaceUserActionTypes.UpgradeEditor:
|
||||
await onUpdateSeatType(SeatTypes.Editor)
|
||||
break
|
||||
case WorkspaceUserUpdateActionTypes.DowngradeEditor:
|
||||
case WorkspaceUserActionTypes.DowngradeEditor:
|
||||
await onUpdateSeatType(SeatTypes.Viewer)
|
||||
break
|
||||
case WorkspaceUserUpdateActionTypes.RemoveMember:
|
||||
case WorkspaceUserActionTypes.RemoveMember:
|
||||
await onRemoveUser()
|
||||
break
|
||||
}
|
||||
@@ -52,13 +52,13 @@
|
||||
</div>
|
||||
</template>
|
||||
<template #seat="{ item }">
|
||||
<SeatTypeDisplay :seat-type="item.seatType" />
|
||||
<SettingsWorkspacesMembersTableSeatType :seat-type="item.seatType" />
|
||||
</template>
|
||||
<template #joined="{ item }">
|
||||
<span class="text-foreground-2">{{ formattedFullDate(item.joinDate) }}</span>
|
||||
</template>
|
||||
<template #actions="{ item }">
|
||||
<SettingsWorkspacesMembersUpdateActionsMenu
|
||||
<SettingsWorkspacesMembersActionsMenu
|
||||
v-if="isWorkspaceAdmin"
|
||||
:target-user="{
|
||||
...item.user,
|
||||
@@ -84,7 +84,6 @@ import { graphql } from '~/lib/common/generated/gql'
|
||||
import { Roles, type MaybeNullOrUndefined } from '@speckle/shared'
|
||||
import { settingsWorkspacesMembersSearchQuery } from '~~/lib/settings/graphql/queries'
|
||||
import { useQuery } from '@vue/apollo-composable'
|
||||
import SeatTypeDisplay from '../SeatTypeDisplay.vue'
|
||||
import { LearnMoreRolesSeatsUrl } from '~~/lib/common/helpers/route'
|
||||
|
||||
graphql(`
|
||||
|
||||
@@ -68,13 +68,13 @@
|
||||
</div>
|
||||
</template>
|
||||
<template #seat="{ item }">
|
||||
<SeatTypeDisplay :seat-type="item.seatType" />
|
||||
<SettingsWorkspacesMembersTableSeatType :seat-type="item.seatType" />
|
||||
</template>
|
||||
<template #joined="{ item }">
|
||||
<span class="text-foreground-2">{{ formattedFullDate(item.joinDate) }}</span>
|
||||
</template>
|
||||
<template #actions="{ item }">
|
||||
<SettingsWorkspacesMembersUpdateActionsMenu
|
||||
<SettingsWorkspacesMembersActionsMenu
|
||||
:target-user="item"
|
||||
:workspace-role="workspace?.role"
|
||||
:workspace-id="workspace?.id"
|
||||
@@ -91,7 +91,6 @@ import { useQuery } from '@vue/apollo-composable'
|
||||
import type { SettingsWorkspacesNewMembersTable_WorkspaceFragment } from '~~/lib/common/generated/gql/graphql'
|
||||
import { graphql } from '~/lib/common/generated/gql'
|
||||
import { ExclamationCircleIcon } from '@heroicons/vue/24/outline'
|
||||
import SeatTypeDisplay from '../SeatTypeDisplay.vue'
|
||||
import { LearnMoreRolesSeatsUrl } from '~~/lib/common/helpers/route'
|
||||
export type UserItem = (typeof members)['value'][0]
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {
|
||||
WorkspaceUserUpdateActionTypes,
|
||||
type WorkspaceUserUpdateActionConfig
|
||||
WorkspaceUserActionTypes,
|
||||
type WorkspaceUserActionConfig
|
||||
} from '~/lib/settings/helpers/types'
|
||||
import { Roles, type WorkspaceSeatType, SeatTypes } from '@speckle/shared'
|
||||
|
||||
@@ -16,11 +16,11 @@ export const WorkspaceSeatTypeDescriptions: Record<WorkspaceSeatType, string> =
|
||||
[SeatTypes.Viewer]: 'Can view and receive models, but not send to them'
|
||||
}
|
||||
|
||||
export const WorkspaceUserUpdateConfig: Record<
|
||||
WorkspaceUserUpdateActionTypes,
|
||||
WorkspaceUserUpdateActionConfig
|
||||
export const WorkspaceUserActionsConfig: Record<
|
||||
WorkspaceUserActionTypes,
|
||||
WorkspaceUserActionConfig
|
||||
> = {
|
||||
[WorkspaceUserUpdateActionTypes.MakeAdmin]: {
|
||||
[WorkspaceUserActionTypes.MakeAdmin]: {
|
||||
menu: {
|
||||
title: 'Make admin...',
|
||||
show: ({
|
||||
@@ -44,7 +44,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
seatCountMessage: true
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.RemoveAdmin]: {
|
||||
[WorkspaceUserActionTypes.RemoveAdmin]: {
|
||||
menu: {
|
||||
title: 'Remove as admin...',
|
||||
show: ({
|
||||
@@ -64,7 +64,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
seatCountMessage: false
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.MakeGuest]: {
|
||||
[WorkspaceUserActionTypes.MakeGuest]: {
|
||||
menu: {
|
||||
title: 'Make guest...',
|
||||
show: ({
|
||||
@@ -83,7 +83,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
buttonText: 'Make a guest'
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.MakeMember]: {
|
||||
[WorkspaceUserActionTypes.MakeMember]: {
|
||||
menu: {
|
||||
title: 'Make member...',
|
||||
show: ({
|
||||
@@ -105,7 +105,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
buttonText: 'Make a member'
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.UpgradeEditor]: {
|
||||
[WorkspaceUserActionTypes.UpgradeEditor]: {
|
||||
menu: {
|
||||
title: 'Upgrade to editor seat...',
|
||||
show: ({
|
||||
@@ -124,7 +124,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
seatCountMessage: true
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.DowngradeEditor]: {
|
||||
[WorkspaceUserActionTypes.DowngradeEditor]: {
|
||||
menu: {
|
||||
title: 'Downgrade to viewer seat...',
|
||||
show: ({
|
||||
@@ -144,7 +144,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
seatCountMessage: true
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.RemoveMember]: {
|
||||
[WorkspaceUserActionTypes.RemoveMember]: {
|
||||
menu: {
|
||||
title: 'Remove from workspace...',
|
||||
show: ({
|
||||
@@ -163,7 +163,7 @@ export const WorkspaceUserUpdateConfig: Record<
|
||||
seatCountMessage: true
|
||||
}
|
||||
},
|
||||
[WorkspaceUserUpdateActionTypes.LeaveWorkspace]: {
|
||||
[WorkspaceUserActionTypes.LeaveWorkspace]: {
|
||||
menu: {
|
||||
title: 'Leave workspace...',
|
||||
show: ({ isActiveUserTargetUser = false }) => isActiveUserTargetUser
|
||||
|
||||
@@ -16,7 +16,7 @@ export type WorkspaceSettingsMenuItem = BaseSettingsMenuItem & {
|
||||
route: (slug: string) => string
|
||||
}
|
||||
|
||||
export enum WorkspaceUserUpdateActionTypes {
|
||||
export enum WorkspaceUserActionTypes {
|
||||
RemoveMember = 'remove-member',
|
||||
LeaveWorkspace = 'leave-workspace',
|
||||
MakeAdmin = 'make-admin',
|
||||
@@ -34,12 +34,12 @@ export type WorkspaceUserUpdateShowOptions = {
|
||||
targetUserCurrentSeatType?: WorkspaceSeatType
|
||||
}
|
||||
|
||||
type WorkspaceUserUpdateMenuConfig = {
|
||||
type WorkspaceUserActionsMenuConfig = {
|
||||
title: string
|
||||
show: (options: WorkspaceUserUpdateShowOptions) => boolean
|
||||
}
|
||||
|
||||
export type WorkspaceUserUpdateDialogConfig = {
|
||||
export type WorkspaceUserActionsDialogConfig = {
|
||||
title: string
|
||||
mainMessage: string | ((seatType?: WorkspaceSeatType) => string)
|
||||
showRoleInfo?: boolean
|
||||
@@ -47,7 +47,7 @@ export type WorkspaceUserUpdateDialogConfig = {
|
||||
seatCountMessage?: boolean
|
||||
}
|
||||
|
||||
export type WorkspaceUserUpdateActionConfig = {
|
||||
menu: WorkspaceUserUpdateMenuConfig
|
||||
dialog: WorkspaceUserUpdateDialogConfig
|
||||
export type WorkspaceUserActionConfig = {
|
||||
menu: WorkspaceUserActionsMenuConfig
|
||||
dialog: WorkspaceUserActionsDialogConfig
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user