diff --git a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js
index 21d281c2eb..1458f1e426 100644
--- a/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js
+++ b/packages/client/src/components/dialogs/CreateEditRoomDialog/sub-components/TagInput/TagDropdown.js
@@ -93,6 +93,7 @@ const TagDropdown = ({
heightTablet={32}
key={i}
label={tag}
+ onMouseDown={preventDefault}
onClick={() => addFetchedTag(tag)}
/>
));
diff --git a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js
index 40fa369508..83fcbd3aa5 100644
--- a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js
+++ b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/index.js
@@ -71,6 +71,7 @@ const Members = ({
setExternalLink,
withPublicRoomBlock,
fetchMembers,
+ fetchMoreMembers,
membersIsLoading,
searchValue,
searchResultIsLoading,
@@ -96,19 +97,7 @@ const Members = ({
}, [infoPanelSelection, searchValue]);
const loadNextPage = async () => {
- const roomId = infoPanelSelection.id;
- const fetchedMembers = await fetchMembers(t, false, withoutTitlesAndLinks);
- const { users, administrators, expected, groups } = fetchedMembers;
-
- const newMembers = {
- roomId: roomId,
- administrators: [...infoPanelMembers.administrators, ...administrators],
- users: [...infoPanelMembers.users, ...users],
- expected: [...infoPanelMembers.expected, ...expected],
- groups: [...infoPanelMembers.groups, ...groups],
- };
-
- setInfoPanelMembers(newMembers);
+ await fetchMoreMembers(t, withoutTitlesAndLinks);
};
if (membersIsLoading) return ;
@@ -301,6 +290,7 @@ export default inject(
infoPanelMembers,
setInfoPanelMembers,
fetchMembers,
+ fetchMoreMembers,
membersIsLoading,
withPublicRoomBlock,
searchValue,
@@ -344,6 +334,7 @@ export default inject(
setExternalLink,
withPublicRoomBlock,
fetchMembers,
+ fetchMoreMembers,
membersIsLoading,
searchValue,
searchResultIsLoading,
diff --git a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/sub-components/MembersList.js b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/sub-components/MembersList.js
index af94888583..cb83a687f8 100644
--- a/packages/client/src/pages/Home/InfoPanel/Body/views/Members/sub-components/MembersList.js
+++ b/packages/client/src/pages/Home/InfoPanel/Body/views/Members/sub-components/MembersList.js
@@ -89,7 +89,7 @@ const MembersList = (props) => {
});
const listOfTitles = list
- .filter((x) => x.props.isTitle)
+ .filter((x) => x.props.user?.isTitle)
.map((item) => {
return {
displayName: item.props.user.displayName,
diff --git a/packages/client/src/pages/Home/Section/AccountsBody/InsideGroup/RowView/userContent.js b/packages/client/src/pages/Home/Section/AccountsBody/InsideGroup/RowView/userContent.js
index bd144713cc..f324224125 100644
--- a/packages/client/src/pages/Home/Section/AccountsBody/InsideGroup/RowView/userContent.js
+++ b/packages/client/src/pages/Home/Section/AccountsBody/InsideGroup/RowView/userContent.js
@@ -47,7 +47,7 @@ const StyledRowContent = styled(RowContent)`
.badges {
flex-direction: row-reverse;
- margin-top: 10px;
+
margin-inline-end: 12px;
.paid-badge {
diff --git a/packages/client/src/pages/Home/Section/AccountsBody/People/RowView/userContent.js b/packages/client/src/pages/Home/Section/AccountsBody/People/RowView/userContent.js
index c1466a11fe..3f15819558 100644
--- a/packages/client/src/pages/Home/Section/AccountsBody/People/RowView/userContent.js
+++ b/packages/client/src/pages/Home/Section/AccountsBody/People/RowView/userContent.js
@@ -46,7 +46,7 @@ const StyledRowContent = styled(RowContent)`
.badges {
flex-direction: row-reverse;
- margin-top: 9px;
+
margin-inline-end: 12px;
.paid-badge {
diff --git a/packages/client/src/store/InfoPanelStore.js b/packages/client/src/store/InfoPanelStore.js
index fe189845ad..fceb1a257b 100644
--- a/packages/client/src/store/InfoPanelStore.js
+++ b/packages/client/src/store/InfoPanelStore.js
@@ -133,8 +133,10 @@ class InfoPanelStore {
};
setSearchValue = (value) => {
- this.setSearchResultIsLoading(true);
- this.searchValue = value;
+ if (value !== this.searchValue) {
+ this.setSearchResultIsLoading(true);
+ this.searchValue = value;
+ }
};
resetSearch = () => {
@@ -651,6 +653,38 @@ class InfoPanelStore {
};
};
+ fetchMoreMembers = async (t, withoutTitles) => {
+ const roomId = this.infoPanelSelection.id;
+ const oldMembers = this.infoPanelMembers;
+
+ const data = await this.filesStore.getRoomMembers(roomId, false);
+
+ const newMembers = this.convertMembers(t, data, false, true);
+
+ const mergedMembers = {
+ roomId: roomId,
+ administrators: [
+ ...oldMembers.administrators,
+ ...newMembers.administrators,
+ ],
+ users: [...oldMembers.users, ...newMembers.users],
+ expected: [...oldMembers.expected, ...newMembers.expectedMembers],
+ groups: [...oldMembers.groups, ...newMembers.groups],
+ };
+
+ if (!withoutTitles) {
+ this.addMembersTitle(
+ t,
+ mergedMembers.administrators,
+ mergedMembers.users,
+ mergedMembers.expected,
+ mergedMembers.groups,
+ );
+ }
+
+ this.setInfoPanelMembers(mergedMembers);
+ };
+
addInfoPanelMembers = (t, members) => {
const convertedMembers = this.convertMembers(t, members);
diff --git a/packages/doceditor/src/components/Root.tsx b/packages/doceditor/src/components/Root.tsx
index ea76d94c4a..aade9a8ee1 100644
--- a/packages/doceditor/src/components/Root.tsx
+++ b/packages/doceditor/src/components/Root.tsx
@@ -63,6 +63,8 @@ const Root = ({
fileId,
hash,
}: TResponse) => {
+ const editorRef = React.useRef(null);
+
const documentserverUrl = config?.editorUrl ?? error?.editorUrl;
const fileInfo = config?.file;
@@ -141,9 +143,19 @@ const Root = ({
isSharingDialogVisible ||
isVisibleSelectFolderDialog ||
selectFileDialogVisible
- )
+ ) {
calculateAsideHeight();
+ const activeElement = document.activeElement as HTMLElement | null;
+
+ if (activeElement && activeElement.tagName === "IFRAME") {
+ editorRef.current = activeElement;
+ activeElement.blur();
+ }
+ } else if (editorRef.current) {
+ editorRef.current.focus();
+ }
+
if (isSharingDialogVisible) {
setTimeout(calculateAsideHeight, 10);
}
diff --git a/packages/shared/utils/image-flags.ts b/packages/shared/utils/image-flags.ts
index 9b659893fc..6229158c12 100644
--- a/packages/shared/utils/image-flags.ts
+++ b/packages/shared/utils/image-flags.ts
@@ -52,6 +52,7 @@ import RoReactSvgUrl from "PUBLIC_DIR/images/flags/ro.react.svg?url";
import RuReactSvgUrl from "PUBLIC_DIR/images/flags/ru.react.svg?url";
import SkReactSvgUrl from "PUBLIC_DIR/images/flags/sk.react.svg?url";
import SlReactSvgUrl from "PUBLIC_DIR/images/flags/sl.react.svg?url";
+import SiReactSvgUrl from "PUBLIC_DIR/images/flags/si.react.svg?url";
import SrLatnRSReactSvgUrl from "PUBLIC_DIR/images/flags/sr-Latn-RS.react.svg?url";
import TrReactSvgUrl from "PUBLIC_DIR/images/flags/tr.react.svg?url";
import UkUAReactSvgUrl from "PUBLIC_DIR/images/flags/uk-UA.react.svg?url";
@@ -87,6 +88,7 @@ export const flagsIcons = new Map([
["ru.react.svg", RuReactSvgUrl],
["sk.react.svg", SkReactSvgUrl],
["sl.react.svg", SlReactSvgUrl],
+ ["si.react.svg", SiReactSvgUrl],
["sr-Latn-RS.react.svg", SrLatnRSReactSvgUrl],
["tr.react.svg", TrReactSvgUrl],
["uk-UA.react.svg", UkUAReactSvgUrl],
diff --git a/public/images/flags/si.react.svg b/public/images/flags/si.react.svg
new file mode 100644
index 0000000000..f235785230
--- /dev/null
+++ b/public/images/flags/si.react.svg
@@ -0,0 +1,53 @@
+