Add custom feeds selector, rework search, simplify onboarding (#325)

* Get home screen's swipable pager working with the drawer

* Add tab bar to pager

* Implement popular & following views on home screen

* Visual tune-up

* Move the feed selector to the footer

* Fix to 'new posts' poll

* Add the view header as a feed item

* Use the native driver on the tabbar indicator to improve perf

* Reduce home polling to the currently active page; also reuse some code

* Add soft reset on tap selected in tab bar

* Remove explicit 'onboarding' flow

* Choose good stuff based on service

* Add foaf-based follow discovery

* Fall back to who to follow

* Fix backgrounds

* Switch to the off-spec goodstuff route

* 1.8

* Fix for dev & staging

* Swap the tab bar items and rename suggested to what's hot

* Go to whats-hot by default if you have no follows

* Implement pager and tabbar for desktop web

* Pin deps to make expo happy

* Add language filtering to goodstuff
This commit is contained in:
Paul Frazee 2023-03-19 18:53:57 -05:00 committed by GitHub
parent c31ffdac1b
commit 1de724b24b
33 changed files with 1634 additions and 692 deletions

View file

@ -154,13 +154,13 @@ export class SessionModel {
/**
* Sets the active session
*/
setActiveSession(agent: AtpAgent, did: string) {
async setActiveSession(agent: AtpAgent, did: string) {
this._log('SessionModel:setActiveSession')
this.data = {
service: agent.service.toString(),
did,
}
this.rootStore.handleSessionChange(agent)
await this.rootStore.handleSessionChange(agent)
}
/**
@ -304,7 +304,7 @@ export class SessionModel {
return false
}
this.setActiveSession(agent, account.did)
await this.setActiveSession(agent, account.did)
return true
}
@ -337,7 +337,7 @@ export class SessionModel {
},
)
this.setActiveSession(agent, did)
await this.setActiveSession(agent, did)
this._log('SessionModel:login succeeded')
}
@ -376,8 +376,7 @@ export class SessionModel {
},
)
this.setActiveSession(agent, did)
this.rootStore.shell.setOnboarding(true)
await this.setActiveSession(agent, did)
this._log('SessionModel:createAccount succeeded')
}