From 2c224e00d06e0d25799cffd32976353682fb0f87 Mon Sep 17 00:00:00 2001 From: Aleksandr Lushkin Date: Fri, 12 Apr 2024 10:25:19 +0200 Subject: [PATCH 1/4] Client: Shared: Selectors: Groups: Fix empty screen images --- packages/shared/selectors/Groups/index.tsx | 4 +-- public/images/empty_screen_groups_75-75.svg | 25 --------------- .../images/empty_screen_groups_dark_75-75.svg | 31 ------------------- 3 files changed, 2 insertions(+), 58 deletions(-) delete mode 100644 public/images/empty_screen_groups_75-75.svg delete mode 100644 public/images/empty_screen_groups_dark_75-75.svg diff --git a/packages/shared/selectors/Groups/index.tsx b/packages/shared/selectors/Groups/index.tsx index bf7bd85061..4c53a4786d 100644 --- a/packages/shared/selectors/Groups/index.tsx +++ b/packages/shared/selectors/Groups/index.tsx @@ -28,8 +28,8 @@ import { useCallback, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { useTheme } from "styled-components"; -import EmptyScreenGroupSvgUrl from "PUBLIC_DIR/images/empty_screen_groups_75-75.svg?url"; -import EmptyScreenGroupSvgDarkUrl from "PUBLIC_DIR/images/empty_screen_groups_dark_75-75.svg?url"; +import EmptyScreenGroupSvgUrl from "PUBLIC_DIR/images/empty_screen_groups.svg?url"; +import EmptyScreenGroupSvgDarkUrl from "PUBLIC_DIR/images/empty_screen_groups_dark.svg?url"; import api from "../../api"; import { RowLoader, SearchLoader } from "../../skeletons/selector"; diff --git a/public/images/empty_screen_groups_75-75.svg b/public/images/empty_screen_groups_75-75.svg deleted file mode 100644 index 22e142e306..0000000000 --- a/public/images/empty_screen_groups_75-75.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/images/empty_screen_groups_dark_75-75.svg b/public/images/empty_screen_groups_dark_75-75.svg deleted file mode 100644 index b6ed55801d..0000000000 --- a/public/images/empty_screen_groups_dark_75-75.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 1889ef788ca3e29e50f015d85675bff0eef96759 Mon Sep 17 00:00:00 2001 From: VladaGaz Date: Fri, 12 Apr 2024 11:31:27 +0300 Subject: [PATCH 2/4] Client:DeleteProfileEverDialog:Fixed page crash when selecting multiple users and clicking Delete from the context menu in accounts. --- .../dialogs/DeleteProfileEverDialog/index.js | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/packages/client/src/components/dialogs/DeleteProfileEverDialog/index.js b/packages/client/src/components/dialogs/DeleteProfileEverDialog/index.js index 900c6f6019..f878196bce 100644 --- a/packages/client/src/components/dialogs/DeleteProfileEverDialog/index.js +++ b/packages/client/src/components/dialogs/DeleteProfileEverDialog/index.js @@ -90,7 +90,7 @@ const StyledModalDialogContainer = styled(ModalDialogContainer)` const DeleteProfileEverDialogComponent = (props) => { const { - users, + usersToDelete, t, onClose, tReady, @@ -113,10 +113,10 @@ const DeleteProfileEverDialogComponent = (props) => { const needReassignData = onlyOneUser && - (users[0].isRoomAdmin || - users[0].isOwner || - users[0].isAdmin || - users[0].isCollaborator); + (usersToDelete[0].isRoomAdmin || + usersToDelete[0].isOwner || + usersToDelete[0].isAdmin || + usersToDelete[0].isCollaborator); const onDeleteUser = (id) => { const filter = Filter.getDefault(); @@ -156,11 +156,11 @@ const DeleteProfileEverDialogComponent = (props) => { } if (!needReassignData) { - onlyOneUser ? onDeleteUser(users[0].id) : onDeleteUsers(userIds); + onlyOneUser ? onDeleteUser(usersToDelete[0].id) : onDeleteUsers(userIds); return; } - setDialogData(users[0]); + setDialogData(usersToDelete[0]); setIsDeletingUserWithReassignment(true); setDataReassignmentDialogVisible(true); @@ -169,7 +169,7 @@ const DeleteProfileEverDialogComponent = (props) => { }; const onClickReassignData = () => { - setDialogData(users[0]); + setDialogData(usersToDelete[0]); setDataReassignmentDialogVisible(true); setDataReassignmentDeleteProfile(true); @@ -191,7 +191,7 @@ const DeleteProfileEverDialogComponent = (props) => { needReassignData={needReassignData} onClickReassignData={onClickReassignData} deleteWithoutReassign={deleteWithoutReassign} - users={users} + users={usersToDelete} onlyOneUser={onlyOneUser} t={t} /> @@ -243,11 +243,17 @@ export default inject(({ peopleStore }, { users }) => { setDialogData, } = dialogStore; - const { getUsersToRemoveIds: userIds, setSelected } = selectionStore; + const { + getUsersToRemoveIds: userIds, + setSelected, + selection, + } = selectionStore; - const onlyUsers = users.every((el) => el.role === "user"); - const deleteWithoutReassign = users.length > 1 && !onlyUsers; - const onlyOneUser = users.length === 1; + const usersToDelete = users.length ? users : selection; + + const onlyUsers = usersToDelete.every((el) => el.role === "user"); + const deleteWithoutReassign = usersToDelete.length > 1 && !onlyUsers; + const onlyOneUser = usersToDelete.length === 1; return { setDataReassignmentDialogVisible, @@ -263,5 +269,6 @@ export default inject(({ peopleStore }, { users }) => { deleteWithoutReassign, onlyOneUser, userIds, + usersToDelete, }; })(observer(DeleteProfileEverDialog)); From 159eff6bbe7abeb328a978e862470d677fcbd2b1 Mon Sep 17 00:00:00 2001 From: Aleksandr Lushkin Date: Fri, 12 Apr 2024 10:34:32 +0200 Subject: [PATCH 3/4] Client: Shared: Selectors: Groups: Add 75px empty screen images for groups selector --- packages/shared/selectors/Groups/index.tsx | 4 +- public/images/empty_screen_groups_75-75.svg | 59 +++++++++++++++++ .../images/empty_screen_groups_dark_75-75.svg | 65 +++++++++++++++++++ 3 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 public/images/empty_screen_groups_75-75.svg create mode 100644 public/images/empty_screen_groups_dark_75-75.svg diff --git a/packages/shared/selectors/Groups/index.tsx b/packages/shared/selectors/Groups/index.tsx index 4c53a4786d..bf7bd85061 100644 --- a/packages/shared/selectors/Groups/index.tsx +++ b/packages/shared/selectors/Groups/index.tsx @@ -28,8 +28,8 @@ import { useCallback, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { useTheme } from "styled-components"; -import EmptyScreenGroupSvgUrl from "PUBLIC_DIR/images/empty_screen_groups.svg?url"; -import EmptyScreenGroupSvgDarkUrl from "PUBLIC_DIR/images/empty_screen_groups_dark.svg?url"; +import EmptyScreenGroupSvgUrl from "PUBLIC_DIR/images/empty_screen_groups_75-75.svg?url"; +import EmptyScreenGroupSvgDarkUrl from "PUBLIC_DIR/images/empty_screen_groups_dark_75-75.svg?url"; import api from "../../api"; import { RowLoader, SearchLoader } from "../../skeletons/selector"; diff --git a/public/images/empty_screen_groups_75-75.svg b/public/images/empty_screen_groups_75-75.svg new file mode 100644 index 0000000000..9286cc9557 --- /dev/null +++ b/public/images/empty_screen_groups_75-75.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/images/empty_screen_groups_dark_75-75.svg b/public/images/empty_screen_groups_dark_75-75.svg new file mode 100644 index 0000000000..e46286a4c4 --- /dev/null +++ b/public/images/empty_screen_groups_dark_75-75.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 3fe2049127d3df6b261d6515de066af31c3b1909 Mon Sep 17 00:00:00 2001 From: Aleksandr Lushkin Date: Fri, 12 Apr 2024 13:15:47 +0200 Subject: [PATCH 4/4] Client: Shared: Selector: Fix selector infinite render in storybook --- packages/shared/components/selector/Selector.stories.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/shared/components/selector/Selector.stories.tsx b/packages/shared/components/selector/Selector.stories.tsx index 5f427d8a1e..f811fd78d6 100644 --- a/packages/shared/components/selector/Selector.stories.tsx +++ b/packages/shared/components/selector/Selector.stories.tsx @@ -172,9 +172,9 @@ const totalItems = items.length; const Template = (args: SelectorProps) => { const [rendItems, setRendItems] = React.useState(renderedItems); - const loadNextPage = async (index: number) => { + const loadNextPage = React.useCallback(async (index: number) => { setRendItems((val) => [...val, ...items.slice(index, index + 100)]); - }; + }, []); const rowLoader = ; const searchLoader = ;