about summary refs log tree commit diff
path: root/src/state/session/index.tsx
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2024-04-25 16:29:05 -0500
committerGitHub <noreply@github.com>2024-04-25 22:29:05 +0100
commit45d354cd0c76563de6d3d1146bebb750e0f6d4a0 (patch)
tree0939d1d6d91a4f812b1abeb005c6347b39692086 /src/state/session/index.tsx
parentd8c8e1e854654dbcf9585d0b3bd8c87d77df2e0f (diff)
downloadvoidsky-45d354cd0c76563de6d3d1146bebb750e0f6d4a0.tar.zst
[Session] Add `useAgent` hook and replace (#3706)
* Hook it up

* Memoize getAgent method

* Use one shared reference

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/state/session/index.tsx')
-rw-r--r--src/state/session/index.tsx12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx
index adf6ccf6d..e45aa031f 100644
--- a/src/state/session/index.tsx
+++ b/src/state/session/index.tsx
@@ -23,16 +23,14 @@ import {readLabelers} from './agent-config'
 
 let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT
 
-/**
- * NOTE
- * Never hold on to the object returned by this function.
- * Call `getAgent()` at the time of invocation to ensure
- * that you never have a stale agent.
- */
-export function getAgent() {
+function __getAgent() {
   return __globalAgent
 }
 
+export function useAgent() {
+  return React.useMemo(() => ({getAgent: __getAgent}), [])
+}
+
 export type SessionAccount = persisted.PersistedAccount
 
 export type SessionState = {