current hostname as cookie domain, group edit member bugfix
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import {useCallback, useContext, useEffect, useState} from "react";
|
||||
import {useCallback, useContext, useEffect, useRef, useState} from "react";
|
||||
import {Link, useNavigate, useParams} from "react-router-dom";
|
||||
import {LocaleContext} from "shared/locale";
|
||||
import SearchField from "shared/elements/search-field";
|
||||
@@ -34,7 +34,7 @@ export default function EditGroupView(props) {
|
||||
const [fetchGroup, setFetchGroup] = useState(!isNewGroup);
|
||||
const [group, setGroup] = useState(isNewGroup ? defaultGroupData : null);
|
||||
const [members, setMembers] = useState([]);
|
||||
const [selectedUser, setSelectedUser] = useState(null);
|
||||
const selectedUserRef = useRef(null);
|
||||
|
||||
// ui
|
||||
const [dialogData, setDialogData] = useState({open: false});
|
||||
@@ -86,19 +86,19 @@ export default function EditGroupView(props) {
|
||||
}, [api, showDialog, groupId, members]);
|
||||
|
||||
const onAddMember = useCallback(() => {
|
||||
if (selectedUser) {
|
||||
api.addGroupMember(groupId, selectedUser.id).then(data => {
|
||||
if (selectedUserRef.current) {
|
||||
api.addGroupMember(groupId, selectedUserRef.current.id).then(data => {
|
||||
if (!data.success) {
|
||||
showDialog(data.msg, L("account.add_group_member_error"));
|
||||
} else {
|
||||
let newMembers = [...members];
|
||||
newMembers.push(selectedUser);
|
||||
newMembers.push(selectedUserRef.current);
|
||||
setMembers(newMembers);
|
||||
}
|
||||
setSelectedUser(null);
|
||||
selectedUserRef.current = null;
|
||||
});
|
||||
}
|
||||
}, [api, showDialog, groupId, selectedUser, members])
|
||||
}, [api, showDialog, groupId, selectedUserRef, members])
|
||||
|
||||
const onSave = useCallback(() => {
|
||||
setSaving(true);
|
||||
@@ -152,15 +152,19 @@ export default function EditGroupView(props) {
|
||||
size: "small", key: "search",
|
||||
element: SearchField,
|
||||
onSearch: v => onSearchUser(v),
|
||||
onSelect: u => setSelectedUser(u),
|
||||
onSelect: u => { selectedUserRef.current = u },
|
||||
getOptionLabel: u => u.fullName || u.name
|
||||
}
|
||||
],
|
||||
onOption: (option) => option === 0 ?
|
||||
onAddMember() :
|
||||
setSelectedUser(null)
|
||||
onOption: (option) => {
|
||||
if(option === 0) {
|
||||
onAddMember()
|
||||
} else {
|
||||
selectedUserRef.current = null
|
||||
}
|
||||
}
|
||||
});
|
||||
}, [onAddMember, onSearchUser, setSelectedUser, setDialogData]);
|
||||
}, [onAddMember, onSearchUser, selectedUserRef, setDialogData]);
|
||||
|
||||
useEffect(() => {
|
||||
onFetchGroup();
|
||||
|
||||
Reference in New Issue
Block a user