New user constants (#260)
* update users * update * With constructed intro feed, only grab 20 random suggested users to avoid perf issues * Don't 'check for latest' in the feed with the suggestions feed * Show/hide the welcome banner on account change (close #257) --------- Co-authored-by: Jay Graber <arcalinea@gmail.com> Co-authored-by: Paul Frazee <pfrazee@gmail.com>zio/stable
parent
69d6774277
commit
d74ff9c219
|
@ -45,6 +45,7 @@
|
||||||
"lodash.clonedeep": "^4.5.0",
|
"lodash.clonedeep": "^4.5.0",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
"lodash.omit": "^4.5.0",
|
"lodash.omit": "^4.5.0",
|
||||||
|
"lodash.samplesize": "^4.2.0",
|
||||||
"lodash.shuffle": "^4.2.0",
|
"lodash.shuffle": "^4.2.0",
|
||||||
"lru_map": "^0.4.1",
|
"lru_map": "^0.4.1",
|
||||||
"mobx": "^6.6.1",
|
"mobx": "^6.6.1",
|
||||||
|
@ -102,6 +103,7 @@
|
||||||
"@types/lodash.clonedeep": "^4.5.7",
|
"@types/lodash.clonedeep": "^4.5.7",
|
||||||
"@types/lodash.isequal": "^4.5.6",
|
"@types/lodash.isequal": "^4.5.6",
|
||||||
"@types/lodash.omit": "^4.5.7",
|
"@types/lodash.omit": "^4.5.7",
|
||||||
|
"@types/lodash.samplesize": "^4.2.7",
|
||||||
"@types/lodash.shuffle": "^4.2.7",
|
"@types/lodash.shuffle": "^4.2.7",
|
||||||
"@types/react-avatar-editor": "^13.0.0",
|
"@types/react-avatar-editor": "^13.0.0",
|
||||||
"@types/react-native": "^0.67.3",
|
"@types/react-native": "^0.67.3",
|
||||||
|
|
|
@ -30,7 +30,68 @@ export function TEAM_HANDLES(serviceUrl: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const PROD_SUGGESTED_FOLLOWS = [
|
export const PROD_SUGGESTED_FOLLOWS = [
|
||||||
|
'christina',
|
||||||
|
'wesam',
|
||||||
|
'jim',
|
||||||
|
'ab',
|
||||||
|
'karalabe',
|
||||||
|
'clun',
|
||||||
|
'staltz',
|
||||||
|
'gillian',
|
||||||
|
'karpathy',
|
||||||
|
'zoink',
|
||||||
'john',
|
'john',
|
||||||
|
'round',
|
||||||
|
'vex',
|
||||||
|
'umang',
|
||||||
|
'atroyn',
|
||||||
|
'poisonivy',
|
||||||
|
'wongmjane',
|
||||||
|
'lari',
|
||||||
|
'arunwadhwa',
|
||||||
|
'trav',
|
||||||
|
'fred',
|
||||||
|
'offscript',
|
||||||
|
'satnam',
|
||||||
|
'ella',
|
||||||
|
'caspian',
|
||||||
|
'spencer',
|
||||||
|
'nickgrossman',
|
||||||
|
'koji',
|
||||||
|
'avy',
|
||||||
|
'seymourstein',
|
||||||
|
'joelg',
|
||||||
|
'stig',
|
||||||
|
'rabble',
|
||||||
|
'hunterwalk',
|
||||||
|
'evan',
|
||||||
|
'aviral',
|
||||||
|
'tami',
|
||||||
|
'generativist',
|
||||||
|
'gord',
|
||||||
|
'ninjapleasedj',
|
||||||
|
'robotics',
|
||||||
|
'noahjnelson',
|
||||||
|
'vijay',
|
||||||
|
'scottbeale',
|
||||||
|
'daybreakjung',
|
||||||
|
'shelby',
|
||||||
|
'joel',
|
||||||
|
'space',
|
||||||
|
'rish',
|
||||||
|
'simon',
|
||||||
|
'kelly',
|
||||||
|
'maxbittker',
|
||||||
|
'sylphrenetic',
|
||||||
|
'caleb',
|
||||||
|
'jik',
|
||||||
|
'james',
|
||||||
|
'neil',
|
||||||
|
'tippenein',
|
||||||
|
'mandel',
|
||||||
|
'sharding',
|
||||||
|
'tyler',
|
||||||
|
'raymond',
|
||||||
'visakanv',
|
'visakanv',
|
||||||
'saz',
|
'saz',
|
||||||
'steph',
|
'steph',
|
||||||
|
@ -39,12 +100,17 @@ export const PROD_SUGGESTED_FOLLOWS = [
|
||||||
'weisser',
|
'weisser',
|
||||||
'katherine',
|
'katherine',
|
||||||
'annagat',
|
'annagat',
|
||||||
|
'an',
|
||||||
|
'kunal',
|
||||||
'josh',
|
'josh',
|
||||||
'lurkshark',
|
'lurkshark',
|
||||||
'amir',
|
'amir',
|
||||||
'amyxzh',
|
'amyxzh',
|
||||||
'danielle',
|
'danielle',
|
||||||
'jack-frazee',
|
'jack-frazee',
|
||||||
|
'daniellefong',
|
||||||
|
'dystopiabreaker',
|
||||||
|
'morgan',
|
||||||
'vibes',
|
'vibes',
|
||||||
'cat',
|
'cat',
|
||||||
'yuriy',
|
'yuriy',
|
||||||
|
@ -63,6 +129,7 @@ export const PROD_SUGGESTED_FOLLOWS = [
|
||||||
'jennijuju',
|
'jennijuju',
|
||||||
'ian5v',
|
'ian5v',
|
||||||
'bnewbold',
|
'bnewbold',
|
||||||
|
'jasmine',
|
||||||
'chris',
|
'chris',
|
||||||
'mtclai',
|
'mtclai',
|
||||||
'willscott',
|
'willscott',
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import AwaitLock from 'await-lock'
|
import AwaitLock from 'await-lock'
|
||||||
import {bundleAsync} from 'lib/async/bundle'
|
import {bundleAsync} from 'lib/async/bundle'
|
||||||
|
import sampleSize from 'lodash.samplesize'
|
||||||
type FeedViewPost = AppBskyFeedFeedViewPost.Main
|
type FeedViewPost = AppBskyFeedFeedViewPost.Main
|
||||||
type ReasonRepost = AppBskyFeedFeedViewPost.ReasonRepost
|
type ReasonRepost = AppBskyFeedFeedViewPost.ReasonRepost
|
||||||
type PostView = AppBskyFeedPost.View
|
type PostView = AppBskyFeedPost.View
|
||||||
|
@ -425,7 +426,7 @@ export class FeedModel {
|
||||||
* Check if new posts are available
|
* Check if new posts are available
|
||||||
*/
|
*/
|
||||||
async checkForLatest() {
|
async checkForLatest() {
|
||||||
if (this.hasNewLatest) {
|
if (this.hasNewLatest || this.rootStore.me.follows.isEmpty) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const res = await this._getFeed({limit: 1})
|
const res = await this._getFeed({limit: 1})
|
||||||
|
@ -565,7 +566,10 @@ export class FeedModel {
|
||||||
if (this.rootStore.me.follows.isEmpty) {
|
if (this.rootStore.me.follows.isEmpty) {
|
||||||
const responses = await getMultipleAuthorsPosts(
|
const responses = await getMultipleAuthorsPosts(
|
||||||
this.rootStore,
|
this.rootStore,
|
||||||
SUGGESTED_FOLLOWS(String(this.rootStore.agent.service)),
|
sampleSize(
|
||||||
|
SUGGESTED_FOLLOWS(String(this.rootStore.agent.service)),
|
||||||
|
20,
|
||||||
|
),
|
||||||
params.before,
|
params.before,
|
||||||
20,
|
20,
|
||||||
)
|
)
|
||||||
|
|
|
@ -78,11 +78,11 @@ export const Feed = observer(function Feed({
|
||||||
// =
|
// =
|
||||||
|
|
||||||
const checkWelcome = React.useCallback(async () => {
|
const checkWelcome = React.useCallback(async () => {
|
||||||
if (showWelcomeBanner) {
|
if (showWelcomeBanner && store.me.did) {
|
||||||
await store.me.follows.fetchIfNeeded()
|
await store.me.follows.fetchIfNeeded()
|
||||||
setIsNewUser(store.me.follows.isEmpty)
|
setIsNewUser(store.me.follows.isEmpty)
|
||||||
}
|
}
|
||||||
}, [showWelcomeBanner, store.me.follows])
|
}, [showWelcomeBanner, store.me.follows, store.me.did])
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
checkWelcome()
|
checkWelcome()
|
||||||
}, [checkWelcome])
|
}, [checkWelcome])
|
||||||
|
|
12
yarn.lock
12
yarn.lock
|
@ -2833,6 +2833,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/lodash" "*"
|
"@types/lodash" "*"
|
||||||
|
|
||||||
|
"@types/lodash.samplesize@^4.2.7":
|
||||||
|
version "4.2.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/lodash.samplesize/-/lodash.samplesize-4.2.7.tgz#15784dd9e54aa1bf043552bdb533b83fcf50b82f"
|
||||||
|
integrity sha512-l4nPeq7tew/T/4zKvVvjR0r4XyDaeTGGSGrdXsjH64LbWsosZBo9/zGpAIBjAH2nKZwZ8fHZ5alhaIZu5LLwmg==
|
||||||
|
dependencies:
|
||||||
|
"@types/lodash" "*"
|
||||||
|
|
||||||
"@types/lodash.shuffle@^4.2.7":
|
"@types/lodash.shuffle@^4.2.7":
|
||||||
version "4.2.7"
|
version "4.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/@types/lodash.shuffle/-/lodash.shuffle-4.2.7.tgz#b714d829af948a266b0df1477d629c70de2f4c72"
|
resolved "https://registry.yarnpkg.com/@types/lodash.shuffle/-/lodash.shuffle-4.2.7.tgz#b714d829af948a266b0df1477d629c70de2f4c72"
|
||||||
|
@ -8999,6 +9006,11 @@ lodash.once@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
|
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
|
||||||
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
|
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
|
||||||
|
|
||||||
|
lodash.samplesize@^4.2.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash.samplesize/-/lodash.samplesize-4.2.0.tgz#460762fbb2b342290517499e90d51586db465ff9"
|
||||||
|
integrity sha512-1ZhKV7/nuISuaQdxfCqrs4HHxXIYN+0Z4f7NMQn2PHkxFZJGavJQ1j/paxyJnLJmN2ZamNN6SMepneV+dCgQTA==
|
||||||
|
|
||||||
lodash.shuffle@^4.2.0:
|
lodash.shuffle@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b"
|
resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b"
|
||||||
|
|
Loading…
Reference in New Issue