Naming improvements

This commit is contained in:
andrewwallacespeckle
2025-03-21 14:05:11 +00:00
parent 532e0edb57
commit ab79b39a08
7 changed files with 40 additions and 42 deletions
@@ -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
}