MCPcopy Create free account
hub / github.com/hashintel/hash / useUserValue

Function useUserValue

apps/plugin-browser/src/pages/shared/use-user-value.ts:12–41  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10 * If you want to use the user across multiple components, e.g. in the popup, useUserContext instead.
11 */
12export const useUserValue = () => {
13 const [apiChecked, setApiChecked] = useState(false);
14 const [user, setUser, storageChecked] = useStorageSync("user", null);
15
16 useEffect(() => {
17 const init = async () => {
18 const maybeUser = await getUser();
19
20 setUser(maybeUser);
21 setSentryUser(maybeUser);
22 setApiChecked(true);
23
24 if (!maybeUser) {
25 void clearLocalStorage();
26 }
27 };
28
29 void init();
30 }, [setUser]);
31
32 const loading = useMemo(
33 () => !user && (!apiChecked || !storageChecked),
34 [apiChecked, storageChecked, user],
35 );
36
37 return {
38 loading,
39 user,
40 };
41};

Callers 2

OptionsContentsFunction · 0.90
PopupUserContextProviderFunction · 0.90

Calls 2

useStorageSyncFunction · 0.90
initFunction · 0.70

Tested by

no test coverage detected