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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +