diff options
Diffstat (limited to 'src/state/models')
-rw-r--r-- | src/state/models/feed-view.ts | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts index 4b009bff8..3d618f91e 100644 --- a/src/state/models/feed-view.ts +++ b/src/state/models/feed-view.ts @@ -36,14 +36,14 @@ export class FeedItemModel implements GetHomeFeed.FeedItem { constructor( public rootStore: RootStoreModel, reactKey: string, - v: GetHomeFeed.FeedItem, + v: GetHomeFeed.FeedItem | GetAuthorFeed.FeedItem, ) { makeAutoObservable(this, {rootStore: false}) this._reactKey = reactKey this.copy(v) } - copy(v: GetHomeFeed.FeedItem) { + copy(v: GetHomeFeed.FeedItem | GetAuthorFeed.FeedItem) { this.cursor = v.cursor this.uri = v.uri this.author = v.author @@ -309,25 +309,28 @@ export class FeedModel { } } - private _replaceAll(res: GetHomeFeed.Response) { + private _replaceAll(res: GetHomeFeed.Response | GetAuthorFeed.Response) { this.feed.length = 0 this.hasReachedEnd = false this._appendAll(res) } - private _appendAll(res: GetHomeFeed.Response) { + private _appendAll(res: GetHomeFeed.Response | GetAuthorFeed.Response) { let counter = this.feed.length for (const item of res.data.feed) { this._append(counter++, item) } } - private _append(keyId: number, item: GetHomeFeed.FeedItem) { + private _append( + keyId: number, + item: GetHomeFeed.FeedItem | GetAuthorFeed.FeedItem, + ) { // TODO: validate .record this.feed.push(new FeedItemModel(this.rootStore, `item-${keyId}`, item)) } - private _prependAll(res: GetHomeFeed.Response) { + private _prependAll(res: GetHomeFeed.Response | GetAuthorFeed.Response) { let counter = this.feed.length for (const item of res.data.feed) { if (this.feed.find(item2 => item2.uri === item.uri)) { @@ -337,12 +340,15 @@ export class FeedModel { } } - private _prepend(keyId: number, item: GetHomeFeed.FeedItem) { + private _prepend( + keyId: number, + item: GetHomeFeed.FeedItem | GetAuthorFeed.FeedItem, + ) { // TODO: validate .record this.feed.unshift(new FeedItemModel(this.rootStore, `item-${keyId}`, item)) } - private _updateAll(res: GetHomeFeed.Response) { + private _updateAll(res: GetHomeFeed.Response | GetAuthorFeed.Response) { for (const item of res.data.feed) { const existingItem = this.feed.find( // this find function has a key subtley- the indexedAt comparison |