Perf: switch to stable react keys (#1113)
parent
d53cbb91bb
commit
89fc975a15
|
@ -23,8 +23,6 @@ const PAGE_SIZE = 30
|
|||
const MS_1HR = 1e3 * 60 * 60
|
||||
const MS_2DAY = MS_1HR * 48
|
||||
|
||||
let _idCounter = 0
|
||||
|
||||
export const MAX_VISIBLE_NOTIFS = 30
|
||||
|
||||
export interface GroupedNotification extends ListNotifications.Notification {
|
||||
|
@ -573,7 +571,7 @@ export class NotificationsFeedModel {
|
|||
for (const item of items) {
|
||||
const itemModel = new NotificationsFeedItemModel(
|
||||
this.rootStore,
|
||||
`item-${_idCounter++}`,
|
||||
`notification-${item.uri}`,
|
||||
item,
|
||||
)
|
||||
const uri = itemModel.additionalDataUri
|
||||
|
|
|
@ -28,10 +28,10 @@ export class PostsFeedItemModel {
|
|||
|
||||
constructor(
|
||||
public rootStore: RootStoreModel,
|
||||
reactKey: string,
|
||||
_reactKey: string,
|
||||
v: FeedViewPost,
|
||||
) {
|
||||
this._reactKey = reactKey
|
||||
this._reactKey = _reactKey
|
||||
this.post = v.post
|
||||
if (FeedPost.isRecord(this.post.record)) {
|
||||
const valid = FeedPost.validateRecord(this.post.record)
|
||||
|
|
|
@ -3,8 +3,6 @@ import {RootStoreModel} from '../root-store'
|
|||
import {FeedViewPostsSlice} from 'lib/api/feed-manip'
|
||||
import {PostsFeedItemModel} from './post'
|
||||
|
||||
let _idCounter = 0
|
||||
|
||||
export class PostsFeedSliceModel {
|
||||
// ui state
|
||||
_reactKey: string = ''
|
||||
|
@ -12,15 +10,15 @@ export class PostsFeedSliceModel {
|
|||
// data
|
||||
items: PostsFeedItemModel[] = []
|
||||
|
||||
constructor(
|
||||
public rootStore: RootStoreModel,
|
||||
reactKey: string,
|
||||
slice: FeedViewPostsSlice,
|
||||
) {
|
||||
this._reactKey = reactKey
|
||||
for (const item of slice.items) {
|
||||
constructor(public rootStore: RootStoreModel, slice: FeedViewPostsSlice) {
|
||||
this._reactKey = `slice-${slice.uri}`
|
||||
for (let i = 0; i < slice.items.length; i++) {
|
||||
this.items.push(
|
||||
new PostsFeedItemModel(rootStore, `slice-${_idCounter++}`, item),
|
||||
new PostsFeedItemModel(
|
||||
rootStore,
|
||||
`${this._reactKey} - ${i}`,
|
||||
slice.items[i],
|
||||
),
|
||||
)
|
||||
}
|
||||
makeAutoObservable(this, {rootStore: false})
|
||||
|
|
|
@ -13,7 +13,6 @@ import {PostsFeedSliceModel} from './posts-slice'
|
|||
import {track} from 'lib/analytics/analytics'
|
||||
|
||||
const PAGE_SIZE = 30
|
||||
let _idCounter = 0
|
||||
|
||||
type QueryParams =
|
||||
| GetTimeline.QueryParams
|
||||
|
@ -368,11 +367,7 @@ export class PostsFeedModel {
|
|||
|
||||
const toAppend: PostsFeedSliceModel[] = []
|
||||
for (const slice of slices) {
|
||||
const sliceModel = new PostsFeedSliceModel(
|
||||
this.rootStore,
|
||||
`item-${_idCounter++}`,
|
||||
slice,
|
||||
)
|
||||
const sliceModel = new PostsFeedSliceModel(this.rootStore, slice)
|
||||
toAppend.push(sliceModel)
|
||||
}
|
||||
runInAction(() => {
|
||||
|
|
Loading…
Reference in New Issue