about summary refs log tree commit diff
path: root/src/state/session/util
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-05-08 03:10:03 +0100
committerGitHub <noreply@github.com>2024-05-08 03:10:03 +0100
commit0c41b3188a4f4ffc701b980d98e3e7560ee2bc7b (patch)
tree1e3b1133f743de7e9272ef0be007989b8565294b /src/state/session/util
parent31a8356aef278414d4e70985ddbf3f76e6a455f1 (diff)
downloadvoidsky-0c41b3188a4f4ffc701b980d98e3e7560ee2bc7b.tar.zst
[Session] Remove global agent (#3852)
* Remove logs and outdated comments

* Move side effect upwards

* Pull refreshedAccount next to usage

* Simplify account refresh logic

* Extract setupPublicAgentState()

* Collapse setStates into one

* Ignore events from stale agents

* Use agent from state

* Remove clearCurrentAccount

* Move state to a reducer

* Remove global agent

* Fix stale agent reference in create flow

* Proceed to onboarding even if setting date fails

---------

Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/state/session/util')
-rw-r--r--src/state/session/util/index.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/state/session/util/index.ts b/src/state/session/util/index.ts
index e3e246f7b..8c98aceb0 100644
--- a/src/state/session/util/index.ts
+++ b/src/state/session/util/index.ts
@@ -1,11 +1,12 @@
 import {BSKY_LABELER_DID, BskyAgent} from '@atproto/api'
 import {jwtDecode} from 'jwt-decode'
 
-import {IS_TEST_USER} from '#/lib/constants'
+import {IS_PROD_SERVICE, IS_TEST_USER} from '#/lib/constants'
 import {tryFetchGates} from '#/lib/statsig/statsig'
 import {hasProp} from '#/lib/type-guards'
 import {logger} from '#/logger'
 import * as persisted from '#/state/persisted'
+import {DEFAULT_PROD_FEEDS} from '#/state/queries/preferences'
 import {readLabelers} from '../agent-config'
 import {SessionAccount, SessionApiContext} from '../types'
 
@@ -132,6 +133,7 @@ export async function createAgentAndCreateAccount({
   email,
   password,
   handle,
+  birthDate,
   inviteCode,
   verificationPhone,
   verificationCode,
@@ -167,6 +169,13 @@ export async function createAgentAndCreateAccount({
     })
   }
 
+  // Not awaited so that we can still get into onboarding.
+  // This is OK because we won't let you toggle adult stuff until you set the date.
+  agent.setPersonalDetails({birthDate: birthDate.toISOString()})
+  if (IS_PROD_SERVICE(service)) {
+    agent.setSavedFeeds(DEFAULT_PROD_FEEDS.saved, DEFAULT_PROD_FEEDS.pinned)
+  }
+
   await configureModerationForAccount(agent, account)
 
   return {