Only suggest users in invite suggestions
parent
cc015d1686
commit
3a0e9f52f3
|
@ -2,28 +2,26 @@ import {makeAutoObservable, runInAction} from 'mobx'
|
||||||
import {RootStoreModel} from './root-store'
|
import {RootStoreModel} from './root-store'
|
||||||
import {MembersViewModel} from './members-view'
|
import {MembersViewModel} from './members-view'
|
||||||
import {UserFollowsViewModel, FollowItem} from './user-follows-view'
|
import {UserFollowsViewModel, FollowItem} from './user-follows-view'
|
||||||
|
import {APP_BSKY_SYSTEM} from '../../third-party/api'
|
||||||
|
|
||||||
export interface SceneInviteSuggestionsParams {
|
export interface SuggestedInvites {
|
||||||
sceneDid: string
|
sceneDid: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export class SceneInviteSuggestions {
|
export class SuggestedInvites {
|
||||||
// state
|
// state
|
||||||
isLoading = false
|
isLoading = false
|
||||||
isRefreshing = false
|
isRefreshing = false
|
||||||
hasLoaded = false
|
hasLoaded = false
|
||||||
error = ''
|
error = ''
|
||||||
params: SceneInviteSuggestionsParams
|
params: SuggestedInvites
|
||||||
sceneMembersView: MembersViewModel
|
sceneMembersView: MembersViewModel
|
||||||
myFollowsView: UserFollowsViewModel
|
myFollowsView: UserFollowsViewModel
|
||||||
|
|
||||||
// data
|
// data
|
||||||
suggestions: FollowItem[] = []
|
suggestions: FollowItem[] = []
|
||||||
|
|
||||||
constructor(
|
constructor(public rootStore: RootStoreModel, params: SuggestedInvites) {
|
||||||
public rootStore: RootStoreModel,
|
|
||||||
params: SceneInviteSuggestionsParams,
|
|
||||||
) {
|
|
||||||
makeAutoObservable(
|
makeAutoObservable(
|
||||||
this,
|
this,
|
||||||
{
|
{
|
||||||
|
@ -111,7 +109,9 @@ export class SceneInviteSuggestions {
|
||||||
// collect all followed users that arent already in the scene
|
// collect all followed users that arent already in the scene
|
||||||
const newSuggestions: FollowItem[] = []
|
const newSuggestions: FollowItem[] = []
|
||||||
for (const follow of this.myFollowsView.follows) {
|
for (const follow of this.myFollowsView.follows) {
|
||||||
// TODO: filter out scenes
|
if (follow.declaration.actorType !== APP_BSKY_SYSTEM.ActorUser) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if (
|
if (
|
||||||
!this.sceneMembersView.members.find(member => member.did === follow.did)
|
!this.sceneMembersView.members.find(member => member.did === follow.did)
|
||||||
) {
|
) {
|
|
@ -23,7 +23,7 @@ import {ErrorMessage} from '../util/ErrorMessage'
|
||||||
import {useStores} from '../../../state'
|
import {useStores} from '../../../state'
|
||||||
import * as apilib from '../../../state/lib/api'
|
import * as apilib from '../../../state/lib/api'
|
||||||
import {ProfileViewModel} from '../../../state/models/profile-view'
|
import {ProfileViewModel} from '../../../state/models/profile-view'
|
||||||
import {SceneInviteSuggestions} from '../../../state/models/scene-invite-suggestions'
|
import {SuggestedInvites} from '../../../state/models/suggested-invites'
|
||||||
import {FollowItem} from '../../../state/models/user-follows-view'
|
import {FollowItem} from '../../../state/models/user-follows-view'
|
||||||
import {s, colors} from '../../lib/styles'
|
import {s, colors} from '../../lib/styles'
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ export function Component({profileView}: {profileView: ProfileViewModel}) {
|
||||||
const [hasSetup, setHasSetup] = useState<boolean>(false)
|
const [hasSetup, setHasSetup] = useState<boolean>(false)
|
||||||
const [error, setError] = useState<string>('')
|
const [error, setError] = useState<string>('')
|
||||||
const suggestions = useMemo(
|
const suggestions = useMemo(
|
||||||
() => new SceneInviteSuggestions(store, {sceneDid: profileView.did}),
|
() => new SuggestedInvites(store, {sceneDid: profileView.did}),
|
||||||
[profileView.did],
|
[profileView.did],
|
||||||
)
|
)
|
||||||
const [createdInvites, setCreatedInvites] = useState<Record<string, string>>(
|
const [createdInvites, setCreatedInvites] = useState<Record<string, string>>(
|
||||||
|
|
|
@ -16,7 +16,6 @@ Paul's todo list
|
||||||
- *
|
- *
|
||||||
- Invite to scene
|
- Invite to scene
|
||||||
- User search
|
- User search
|
||||||
> Filter out scenes from suggestions
|
|
||||||
> Filter out unconfirmed invites from suggestions
|
> Filter out unconfirmed invites from suggestions
|
||||||
- Use pagination to make sure there are suggestions
|
- Use pagination to make sure there are suggestions
|
||||||
- Unconfirmed invites
|
- Unconfirmed invites
|
||||||
|
|
Loading…
Reference in New Issue