Files
outline/app/hooks/useCurrentTeam.ts

24 lines
736 B
TypeScript

import invariant from "invariant";
import Team from "~/models/Team";
import useStores from "./useStores";
/**
* Returns the current team, or undefined if there is no current team and `rejectOnEmpty` is set to
* false.
*
* @param options.rejectOnEmpty - If true, throws an error if there is no current team. Defaults to true.
*/
function useCurrentTeam(options: { rejectOnEmpty: false }): Team | undefined;
function useCurrentTeam(options?: { rejectOnEmpty: true }): Team;
function useCurrentTeam({
rejectOnEmpty = true,
}: { rejectOnEmpty?: boolean } = {}) {
const { auth } = useStores();
if (rejectOnEmpty) {
invariant(auth.team, "team required");
}
return auth.team || undefined;
}
export default useCurrentTeam;