From 5402ff323bf1b861462bf9c49b10f6c6fe8e301f Mon Sep 17 00:00:00 2001 From: vincentbpro <89356961+vincentbpro@users.noreply.github.com> Date: Mon, 15 Nov 2021 17:21:04 +0100 Subject: [PATCH] fix: updated parts depending on lastname --- .../admin/admin/src/components/AuthenticatedApp/index.js | 3 ++- .../components/DynamicTable/TableRows/index.js | 3 ++- .../content-manager/pages/EditView/Informations/index.js | 3 ++- packages/core/admin/admin/src/pages/ProfilePage/index.js | 5 +++-- .../src/pages/SettingsPage/pages/Users/EditPage/index.js | 6 +++--- .../pages/Users/ListPage/DynamicTable/TableRows/index.js | 7 ++++--- packages/core/admin/admin/src/utils/getFullName.js | 9 +++++++++ packages/core/admin/admin/src/utils/index.js | 2 +- 8 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 packages/core/admin/admin/src/utils/getFullName.js diff --git a/packages/core/admin/admin/src/components/AuthenticatedApp/index.js b/packages/core/admin/admin/src/components/AuthenticatedApp/index.js index 711f54c3ee..cd3eada9eb 100644 --- a/packages/core/admin/admin/src/components/AuthenticatedApp/index.js +++ b/packages/core/admin/admin/src/components/AuthenticatedApp/index.js @@ -9,12 +9,13 @@ import PluginsInitializer from '../PluginsInitializer'; import RBACProvider from '../RBACProvider'; import { fetchAppInfo, fetchCurrentUserPermissions, fetchStrapiLatestRelease } from './utils/api'; import checkLatestStrapiVersion from './utils/checkLatestStrapiVersion'; +import { getFullName } from '../../utils'; const strapiVersion = packageJSON.version; const AuthenticatedApp = () => { const userInfo = auth.getUserInfo(); - const userName = get(userInfo, 'username') || `${userInfo.firstname} ${userInfo.lastname}`; + const userName = get(userInfo, 'username') || getFullName(userInfo.firstname, userInfo.lastname); const [userDisplayName, setUserDisplayName] = useState(userName); const { showReleaseNotification } = useConfigurations(); const [ diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/TableRows/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/TableRows/index.js index 2fcb1da4c0..9bbf04ebcd 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/TableRows/index.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/TableRows/index.js @@ -13,6 +13,7 @@ import { useHistory } from 'react-router-dom'; import { useIntl } from 'react-intl'; import { usePluginsQueryParams } from '../../../hooks'; import CellContent from '../CellContent'; +import { getFullName } from '../../../../utils'; const TableRows = ({ canCreate, @@ -69,7 +70,7 @@ const TableRows = ({ id: 'app.component.table.select.one-entry', defaultMessage: `Select {target}`, }, - { target: `${data.firstname} ${data.lastname}` } + { target: getFullName(data.firstname, data.lastname) } )} checked={isChecked} onChange={() => { diff --git a/packages/core/admin/admin/src/content-manager/pages/EditView/Informations/index.js b/packages/core/admin/admin/src/content-manager/pages/EditView/Informations/index.js index 489a85c588..2646e2c716 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditView/Informations/index.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditView/Informations/index.js @@ -8,6 +8,7 @@ import { Flex } from '@strapi/design-system/Flex'; import { Stack } from '@strapi/design-system/Stack'; import { getTrad } from '../../../utils'; import getUnits from './utils/getUnits'; +import { getFullName } from '../../../../utils'; const Informations = () => { const { formatMessage, formatRelativeTime } = useIntl(); @@ -17,7 +18,7 @@ const Informations = () => { const updatedByFirstname = initialData.updatedBy?.firstname || ''; const updatedByLastname = initialData.updatedBy?.lastname || ''; const updatedByUsername = initialData.updatedBy?.username; - const updatedBy = updatedByUsername || `${updatedByFirstname} ${updatedByLastname}`; + const updatedBy = updatedByUsername || getFullName(updatedByFirstname, updatedByLastname); const currentTime = useRef(Date.now()); const timestamp = initialData[updatedAt] ? new Date(initialData[updatedAt]).getTime() diff --git a/packages/core/admin/admin/src/pages/ProfilePage/index.js b/packages/core/admin/admin/src/pages/ProfilePage/index.js index f9c0be15be..1e168ee7ac 100644 --- a/packages/core/admin/admin/src/pages/ProfilePage/index.js +++ b/packages/core/admin/admin/src/pages/ProfilePage/index.js @@ -33,6 +33,7 @@ import Check from '@strapi/icons/Check'; import useLocalesProvider from '../../components/LocalesProvider/useLocalesProvider'; import { fetchUser, putUser } from './utils/api'; import schema from './utils/schema'; +import { getFullName } from '../../utils'; const PasswordInput = styled(TextInput)` ::-ms-reveal { @@ -87,7 +88,7 @@ const ProfilePage = () => { await queryClient.invalidateQueries('user'); auth.setUserInfo(data); - const userDisplayName = data.username || `${data.firstname} ${data.lastname}`; + const userDisplayName = data.username || getFullName(data.firstname, data.lastname); setUserDisplayName(userDisplayName); changeLocale(data.preferedLanguage); @@ -172,7 +173,7 @@ const ProfilePage = () => { return (
} loading={isSubmitting} type="submit"> {formatMessage({ id: 'form.button.save', defaultMessage: 'Save' })} diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js index 681714677b..3d46198458 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js @@ -29,7 +29,7 @@ import { Stack } from '@strapi/design-system/Stack'; import ArrowLeft from '@strapi/icons/ArrowLeft'; import Check from '@strapi/icons/Check'; import MagicLink from 'ee_else_ce/pages/SettingsPage/pages/Users/components/MagicLink'; -import { formatAPIErrors } from '../../../../../utils'; +import { formatAPIErrors, getFullName } from '../../../../../utils'; import { fetchUser, putUser } from './utils/api'; import layout from './utils/layout'; import { editValidation } from '../utils/validations/users'; @@ -89,7 +89,7 @@ const EditPage = ({ canUpdate }) => { if (id.toString() === userInfos.id.toString()) { auth.setUserInfo(data); - const userDisplayName = get(body, 'username') || `${body.firstname} ${body.lastname}`; + const userDisplayName = get(body, 'username') || getFullName(body.firstname, body.lastname); setUserDisplayName(userDisplayName); } @@ -131,7 +131,7 @@ const EditPage = ({ canUpdate }) => { }, {}); const headerLabelName = - initialData.username || `${initialData.firstname} ${initialData.lastname}`; + initialData.username || getFullName(initialData.firstname, initialData.lastname); const title = formatMessage(headerLabel, { name: headerLabelName }); diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js index 72cd9f99d5..eb1e89115e 100644 --- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js +++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/DynamicTable/TableRows/index.js @@ -11,6 +11,7 @@ import Trash from '@strapi/icons/Trash'; import { useHistory } from 'react-router-dom'; import { useIntl } from 'react-intl'; import { stopPropagation, onRowClick } from '@strapi/helper-plugin'; +import { getFullName } from '../../../../../../../utils'; const TableRows = ({ canDelete, @@ -49,7 +50,7 @@ const TableRows = ({ id: 'app.component.table.select.one-entry', defaultMessage: `Select {target}`, }, - { target: `${data.firstname} ${data.lastname}` } + { target: getFullName(data.firstname, data.lastname) } )} checked={isChecked} onChange={() => { @@ -77,7 +78,7 @@ const TableRows = ({ onClick={() => push(`${pathname}/${data.id}`)} label={formatMessage( { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' }, - { target: `${data.firstname} ${data.lastname}` } + { target: getFullName(data.firstname, data.lastname) } )} noBorder icon={} @@ -89,7 +90,7 @@ const TableRows = ({ onClick={() => onClickDelete(data.id)} label={formatMessage( { id: 'app.component.table.delete', defaultMessage: 'Delete {target}' }, - { target: `${data.firstname} ${data.lastname}` } + { target: getFullName(data.firstname, data.lastname) } )} noBorder icon={} diff --git a/packages/core/admin/admin/src/utils/getFullName.js b/packages/core/admin/admin/src/utils/getFullName.js new file mode 100644 index 0000000000..28f0e800ce --- /dev/null +++ b/packages/core/admin/admin/src/utils/getFullName.js @@ -0,0 +1,9 @@ +/** + * Get fullname from firstname+lastname joined with a space + * Handle missing lastname + * @param {string} firstname + * @param {string} lastname + */ +export default (firstname, lastname = '') => { + return [firstname, lastname].filter(e => e !== '').join(' '); +}; diff --git a/packages/core/admin/admin/src/utils/index.js b/packages/core/admin/admin/src/utils/index.js index ec1ba4811b..3601c6cff2 100644 --- a/packages/core/admin/admin/src/utils/index.js +++ b/packages/core/admin/admin/src/utils/index.js @@ -5,5 +5,5 @@ export { default as getAttributesToDisplay } from './getAttributesToDisplay'; export { default as makeUniqueRoutes } from './makeUniqueRoutes'; export { default as sortLinks } from './sortLinks'; export { default as getExistingActions } from './getExistingActions'; - export { default as getRequestUrl } from './getRequestUrl'; +export { default as getFullName } from './getFullName';