@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
47 lines (44 loc) • 1.26 kB
JavaScript
import { assertNever } from '@liveblocks/core';
import { useUser, useGroupInfo } from '@liveblocks/react';
import { useUser as useUser$1, useGroupInfo as useGroupInfo$1 } from '@liveblocks/react/suspense';
import { useInitial } from './use-initial.js';
function useUserOrGroupInfo(kind, id) {
const frozenKind = useInitial(kind);
if (frozenKind === "user") {
const { user, isLoading, error } = useUser(id);
return {
info: user,
isLoading,
error
};
} else if (frozenKind === "group") {
const { info, isLoading, error } = useGroupInfo(id);
return {
info,
isLoading,
error
};
}
return assertNever(frozenKind, "Invalid kind");
}
function useUserOrGroupInfoSuspense(kind, id) {
const frozenKind = useInitial(kind);
if (frozenKind === "user") {
const { user, isLoading, error } = useUser$1(id);
return {
info: user,
isLoading,
error
};
} else if (frozenKind === "group") {
const { info, isLoading, error } = useGroupInfo$1(id);
return {
info,
isLoading,
error
};
}
return assertNever(frozenKind, "Invalid kind");
}
export { useUserOrGroupInfo, useUserOrGroupInfoSuspense };
//# sourceMappingURL=use-user-or-group-info.js.map