diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-04-02 14:20:19 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-02 14:20:19 -0500 |
commit | cc7b2a246ec5071f02bc81090b63b073b3d3614b (patch) | |
tree | abc7378ab4a03c31e7d905d257166fdf2092d556 | |
parent | 14965d4d97aa51e189d06e8f3aebac6cbed49e82 (diff) | |
download | voidsky-cc7b2a246ec5071f02bc81090b63b073b3d3614b.tar.zst |
Lex refactor fixes (#368)
* Fix: handle validation failures correctly in feed-view * Fix: convert the off-spec feed view to lex objects * Fix to fetching all follows during init * Bump @atproto/api@0.2.1 * Fix: properly group together like notifications * 1.12
-rw-r--r-- | app.json | 2 | ||||
-rw-r--r-- | ios/bluesky/Info.plist | 2 | ||||
-rw-r--r-- | package.json | 4 | ||||
-rw-r--r-- | src/state/models/cache/my-follows.ts | 1 | ||||
-rw-r--r-- | src/state/models/feed-view.ts | 7 | ||||
-rw-r--r-- | src/state/models/likes-view.ts | 2 | ||||
-rw-r--r-- | src/state/models/notifications-view.ts | 2 | ||||
-rw-r--r-- | src/view/com/post-thread/PostLikedBy.tsx | 6 | ||||
-rw-r--r-- | yarn.lock | 13 |
9 files changed, 28 insertions, 11 deletions
diff --git a/app.json b/app.json index 0e5bb2e03..bc0483c26 100644 --- a/app.json +++ b/app.json @@ -2,7 +2,7 @@ "expo": { "name": "bluesky", "slug": "bluesky", - "version": "1.11.0", + "version": "1.12.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", diff --git a/ios/bluesky/Info.plist b/ios/bluesky/Info.plist index f58ed1b55..28a15c6f0 100644 --- a/ios/bluesky/Info.plist +++ b/ios/bluesky/Info.plist @@ -21,7 +21,7 @@ <key>CFBundlePackageType</key> <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> <key>CFBundleShortVersionString</key> - <string>1.11</string> + <string>1.12</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleURLTypes</key> diff --git a/package.json b/package.json index 2ac5367a4..3c99d3510 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.11.0", + "version": "1.12.0", "private": true, "scripts": { "postinstall": "patch-package", @@ -21,7 +21,7 @@ "e2e:run": "detox test --configuration ios.sim.debug --take-screenshots all" }, "dependencies": { - "@atproto/api": "0.2.0", + "@atproto/api": "0.2.1", "@bam.tech/react-native-image-resizer": "^3.0.4", "@expo/webpack-config": "^18.0.1", "@fortawesome/fontawesome-svg-core": "^6.1.1", diff --git a/src/state/models/cache/my-follows.ts b/src/state/models/cache/my-follows.ts index 14eeaae21..eaab829bc 100644 --- a/src/state/models/cache/my-follows.ts +++ b/src/state/models/cache/my-follows.ts @@ -57,6 +57,7 @@ export class MyFollowsCache { await this.rootStore.agent.app.bsky.graph.follow.list({ repo: this.rootStore.me.did, rkeyStart, + reverse: true, }) records = records.concat(res.records) rkeyStart = res.cursor diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts index 8b62c958f..349723fbb 100644 --- a/src/state/models/feed-view.ts +++ b/src/state/models/feed-view.ts @@ -5,6 +5,7 @@ import { AppBskyFeedPost, AppBskyFeedGetAuthorFeed as GetAuthorFeed, RichText, + jsonToLex, } from '@atproto/api' import AwaitLock from 'await-lock' import {bundleAsync} from 'lib/async/bundle' @@ -50,12 +51,16 @@ export class FeedItemModel { this.postRecord = this.post.record this.richText = new RichText(this.postRecord, {cleanNewlines: true}) } else { + this.postRecord = undefined + this.richText = undefined rootStore.log.warn( 'Received an invalid app.bsky.feed.post record', valid.error, ) } } else { + this.postRecord = undefined + this.richText = undefined rootStore.log.warn( 'app.bsky.feed.getTimeline or app.bsky.feed.getAuthorFeed served an unexpected record type', this.post.record, @@ -634,6 +639,6 @@ async function getGoodStuff( return { success: res.status === 200, headers: resHeaders, - data: resBody, + data: jsonToLex(resBody), } } diff --git a/src/state/models/likes-view.ts b/src/state/models/likes-view.ts index 5f9df692e..80e0be0ef 100644 --- a/src/state/models/likes-view.ts +++ b/src/state/models/likes-view.ts @@ -97,7 +97,7 @@ export class LikesViewModel { this.hasLoaded = true this.error = cleanError(err) if (err) { - this.rootStore.log.error('Failed to fetch votes', err) + this.rootStore.log.error('Failed to fetch likes', err) } } diff --git a/src/state/models/notifications-view.ts b/src/state/models/notifications-view.ts index 4f7a52fd9..7089f0125 100644 --- a/src/state/models/notifications-view.ts +++ b/src/state/models/notifications-view.ts @@ -13,7 +13,7 @@ import {RootStoreModel} from './root-store' import {PostThreadViewModel} from './post-thread-view' import {cleanError} from 'lib/strings/errors' -const GROUPABLE_REASONS = ['vote', 'repost', 'follow'] +const GROUPABLE_REASONS = ['like', 'repost', 'follow'] const PAGE_SIZE = 30 const MS_1HR = 1e3 * 60 * 60 const MS_2DAY = MS_1HR * 48 diff --git a/src/view/com/post-thread/PostLikedBy.tsx b/src/view/com/post-thread/PostLikedBy.tsx index 9fb46702e..3ca147b8d 100644 --- a/src/view/com/post-thread/PostLikedBy.tsx +++ b/src/view/com/post-thread/PostLikedBy.tsx @@ -8,7 +8,7 @@ import {ProfileCardWithFollowBtn} from '../profile/ProfileCard' import {useStores} from 'state/index' import {usePalette} from 'lib/hooks/usePalette' -export const PostLikedBy = observer(function PostVotedBy({uri}: {uri: string}) { +export const PostLikedBy = observer(function ({uri}: {uri: string}) { const pal = usePalette('default') const store = useStores() const view = React.useMemo( @@ -17,7 +17,7 @@ export const PostLikedBy = observer(function PostVotedBy({uri}: {uri: string}) { ) useEffect(() => { - view.loadMore().catch(err => store.log.error('Failed to fetch votes', err)) + view.loadMore().catch(err => store.log.error('Failed to fetch likes', err)) }, [view, store.log]) const onRefresh = () => { @@ -26,7 +26,7 @@ export const PostLikedBy = observer(function PostVotedBy({uri}: {uri: string}) { const onEndReached = () => { view .loadMore() - .catch(err => view?.rootStore.log.error('Failed to load more votes', err)) + .catch(err => view?.rootStore.log.error('Failed to load more likes', err)) } if (!view.hasLoaded) { diff --git a/yarn.lock b/yarn.lock index 111e800f6..bfad9d5b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19,7 +19,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@atproto/api@*", "@atproto/api@0.2.0": +"@atproto/api@*": version "0.2.0" resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.2.0.tgz#4a60f8f1de91105ad93526d69abcf011bbeaa3be" integrity sha512-AntqYOVrMalBJapnNBV0akh/PWcsKdWq8zfuvv8hZW/jwOkJTVPTRFOP2OHJFcfz4WezytX43ml/L2kSG9z4+Q== @@ -30,6 +30,17 @@ tlds "^1.234.0" typed-emitter "^2.1.0" +"@atproto/api@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.2.1.tgz#034cab5928e1a6b0059e7237f6a82c57daadb264" + integrity sha512-ub92BFrHrm/r1En9IedqRc9r9BZy0i7J8mmFZ5EMxRJwdCJeMYB8CdmLfgNXQcsTPswbYF94pyZkrpeQNJWr1A== + dependencies: + "@atproto/common-web" "*" + "@atproto/uri" "*" + "@atproto/xrpc" "*" + tlds "^1.234.0" + typed-emitter "^2.1.0" + "@atproto/auth@*": version "0.0.1" resolved "https://registry.yarnpkg.com/@atproto/auth/-/auth-0.0.1.tgz#0ae07bfb6e4e86605504a20f0302e448ba3f8b0e" |