Files
redash/client/app/pages/users/hooks/useUserGroups.js
Levko Kravets 6f842ef94a Refactor User Profile page and add extension points to it (#4996)
* Move components specific to UserProfile page to corresponding folder

* Split UserProfile page into components

* Rename components, refine code a bit

* Add some extension points

* Fix margin
2020-06-25 12:03:19 +03:00

23 lines
722 B
JavaScript

import { filter, includes, isArray } from "lodash";
import { useEffect, useMemo, useState } from "react";
import Group from "@/services/group";
export default function useUserGroups(user) {
const [allGroups, setAllGroups] = useState([]);
const [isLoading, setIsLoading] = useState(true);
const groups = useMemo(() => filter(allGroups, group => includes(user.groupIds, group.id)), [allGroups, user]);
useEffect(() => {
let isCancelled = false;
Group.query().then(groups => {
if (!isCancelled) {
setAllGroups(isArray(groups) ? groups : []);
setIsLoading(false);
}
});
}, []);
return useMemo(() => ({ groups, allGroups, isLoading }), [groups, allGroups, isLoading]);
}