Skip to content
Snippets Groups Projects
Commit 4ccfa0f7 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

Only sort users initially and when clicking column, instead of every render

parent e6081fcb
No related branches found
No related tags found
1 merge request!76Comp 282 add observer role
...@@ -55,9 +55,9 @@ const defaultSortFunction = (a, b) => { ...@@ -55,9 +55,9 @@ const defaultSortFunction = (a, b) => {
} else if (!a.permissions.active && b.permissions.active) { } else if (!a.permissions.active && b.permissions.active) {
return 1; return 1;
} else if (a.permissions.active && b.permissions.active) { } else if (a.permissions.active && b.permissions.active) {
if (a.role === 'admin' && b.role === 'user') { if (a.role === 'admin' && b.role !== 'admin') {
return 1; return 1;
} else if (a.role === 'user' && b.role === 'admin') { } else if (a.role !== 'admin' && b.role === 'admin') {
return -1; return -1;
} else { } else {
return a.name.localeCompare(b.name) return a.name.localeCompare(b.name)
...@@ -73,10 +73,12 @@ function UserManagementComponent() { ...@@ -73,10 +73,12 @@ function UserManagementComponent() {
const [nrens, setNrens] = useState<Nren[]>([]); const [nrens, setNrens] = useState<Nren[]>([]);
const { user: loggedInUser } = useContext(userContext); const { user: loggedInUser } = useContext(userContext);
const [sortFunc, setSortFunc] = useState({ idx: -1, func: defaultSortFunction, asc: true }); const [sortFunc, setSortFunc] = useState({ idx: -1, func: defaultSortFunction, asc: true });
const [sortedUsers, setSortedUsers] = useState<User[]>([]);
useEffect(() => { useEffect(() => {
fetchUsers().then((userList) => { fetchUsers().then((userList) => {
setUsers(userList); setUsers(userList);
setSortedUsers(userList.sort(sortFunc.func))
}); });
fetchNrens().then((nrenList) => { fetchNrens().then((nrenList) => {
...@@ -112,8 +114,6 @@ function UserManagementComponent() { ...@@ -112,8 +114,6 @@ function UserManagementComponent() {
})?.id })?.id
} }
const sortedUsers = users.sort(sortFunc.func);
const setSort = (index) => { const setSort = (index) => {
if (index === sortFunc.idx || ((index === 5 || index === 0) && sortFunc.idx === -1)) { if (index === sortFunc.idx || ((index === 5 || index === 0) && sortFunc.idx === -1)) {
// reverse sort // reverse sort
...@@ -182,6 +182,8 @@ function UserManagementComponent() { ...@@ -182,6 +182,8 @@ function UserManagementComponent() {
} else { } else {
setSortFunc({ idx: index, asc: true, func: defaultSortFunction }) setSortFunc({ idx: index, asc: true, func: defaultSortFunction })
} }
setSortedUsers(users.sort(sortFunc.func))
} }
// build the aria-sort attribute for each column with spreadable objects.. // build the aria-sort attribute for each column with spreadable objects..
...@@ -229,6 +231,7 @@ function UserManagementComponent() { ...@@ -229,6 +231,7 @@ function UserManagementComponent() {
onChange={(event) => handleInputChange(event, user)}> onChange={(event) => handleInputChange(event, user)}>
<option value="admin">Admin</option> <option value="admin">Admin</option>
<option value="user">User</option> <option value="user">User</option>
<option value="observer">Observer</option>
</select>} </select>}
</td> </td>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment