diff --git a/packages/twenty-front/src/modules/settings/roles/role-permissions/objects-permissions/constants/settingsRoleObjectPermissionIconConfig.ts b/packages/twenty-front/src/modules/settings/roles/role-permissions/objects-permissions/constants/settingsRoleObjectPermissionIconConfig.ts index c5e23960a..756c6aa06 100644 --- a/packages/twenty-front/src/modules/settings/roles/role-permissions/objects-permissions/constants/settingsRoleObjectPermissionIconConfig.ts +++ b/packages/twenty-front/src/modules/settings/roles/role-permissions/objects-permissions/constants/settingsRoleObjectPermissionIconConfig.ts @@ -7,6 +7,7 @@ import { IconTrash, IconTrashOff, IconTrashX, + IconTrashXOff, } from 'twenty-ui/display'; type SettingsRoleObjectPermissionIconConfig = { @@ -38,6 +39,6 @@ export const SETTINGS_ROLE_OBJECT_PERMISSION_ICON_CONFIG: Record< }, canDestroyObjectRecords: { Icon: IconTrashX, - IconForbidden: IconTrashX, + IconForbidden: IconTrashXOff, }, }; diff --git a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx index 38676760d..a510dd1fd 100644 --- a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx +++ b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRole.tsx @@ -1,3 +1,4 @@ +import { useAuth } from '@/auth/hooks/useAuth'; import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons'; import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer'; import { GET_ROLES } from '@/settings/roles/graphql/queries/getRolesQuery'; @@ -82,6 +83,8 @@ export const SettingsRole = ({ roleId, isCreateMode }: SettingsRoleProps) => { settingsPersistedRoleFamilyState(roleId), ); + const { loadCurrentUser } = useAuth(); + const { enqueueSnackBar } = useSnackBar(); if (!isDefined(settingsRolesIsLoading)) { @@ -268,6 +271,8 @@ export const SettingsRole = ({ roleId, isCreateMode }: SettingsRoleProps) => { }); } } + + await loadCurrentUser(); }; return ( diff --git a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleCreateEffect.tsx b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleCreateEffect.tsx index 215351e94..99d046b61 100644 --- a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleCreateEffect.tsx +++ b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleCreateEffect.tsx @@ -32,7 +32,7 @@ export const SettingsRoleCreateEffect = ({ const newRole = { id: roleId, - label: t`Role name`, + label: t`Untitled role`, description: '', icon: 'IconUser', canUpdateAllSettings: true, diff --git a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleLabelContainer.tsx b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleLabelContainer.tsx index 2899561ad..d161fd633 100644 --- a/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleLabelContainer.tsx +++ b/packages/twenty-front/src/modules/settings/roles/role/components/SettingsRoleLabelContainer.tsx @@ -3,6 +3,7 @@ import { useRecoilState } from 'recoil'; import { settingsDraftRoleFamilyState } from '@/settings/roles/states/settingsDraftRoleFamilyState'; import { TitleInput } from '@/ui/input/components/TitleInput'; import styled from '@emotion/styled'; +import { t } from '@lingui/core/macro'; const ROLE_LABEL_EDIT_HOTKEY_SCOPE = 'role-label-edit'; @@ -42,7 +43,7 @@ export const SettingsRoleLabelContainer = ({ sizeVariant="md" value={settingsDraftRole.label} onChange={handleChange} - placeholder="Role name" + placeholder={t`Role name`} hotkeyScope={ROLE_LABEL_EDIT_HOTKEY_SCOPE} /> diff --git a/packages/twenty-ui/src/assets/icons/trash-x-off.svg b/packages/twenty-ui/src/assets/icons/trash-x-off.svg new file mode 100644 index 000000000..24e730edf --- /dev/null +++ b/packages/twenty-ui/src/assets/icons/trash-x-off.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/packages/twenty-ui/src/display/icon/components/IconTrashXOff.tsx b/packages/twenty-ui/src/display/icon/components/IconTrashXOff.tsx new file mode 100644 index 000000000..8092fa014 --- /dev/null +++ b/packages/twenty-ui/src/display/icon/components/IconTrashXOff.tsx @@ -0,0 +1,14 @@ +import { useTheme } from '@emotion/react'; + +import IconTrashXOffRaw from '@assets/icons/trash-x-off.svg?react'; +import { IconComponentProps } from '@ui/display/icon/types/IconComponent'; + +type IconTrashXOffProps = Pick; + +export const IconTrashXOff = (props: IconTrashXOffProps) => { + const theme = useTheme(); + const size = props.size ?? theme.icon.size.lg; + const stroke = props.stroke ?? theme.icon.stroke.md; + + return ; +}; diff --git a/packages/twenty-ui/src/display/index.ts b/packages/twenty-ui/src/display/index.ts index 12b95a0b8..c547b740e 100644 --- a/packages/twenty-ui/src/display/index.ts +++ b/packages/twenty-ui/src/display/index.ts @@ -35,6 +35,7 @@ export { IconMicrosoft } from './icon/components/IconMicrosoft'; export { IconMicrosoftCalendar } from './icon/components/IconMicrosoftCalendar'; export { IconMicrosoftOutlook } from './icon/components/IconMicrosoftOutlook'; export { IconRelationManyToOne } from './icon/components/IconRelationManyToOne'; +export { IconTrashXOff } from './icon/components/IconTrashXOff'; export { IconTwentyStar } from './icon/components/IconTwentyStar'; export { IconTwentyStarFilled } from './icon/components/IconTwentyStarFilled'; export { IllustrationIconArray } from './icon/components/IllustrationIconArray';