···1import {AtUri} from '../third-party/uri'
2-import {Entity} from '../third-party/api/src/client/types/app/bsky/feed/post'
03import {PROD_SERVICE} from '../state'
4import {isNetworkError} from './errors'
5import TLDs from 'tlds'
···1import {AtUri} from '../third-party/uri'
2+import {AppBskyFeedPost} from '@atproto/api'
3+type Entity = AppBskyFeedPost.Entity
4import {PROD_SERVICE} from '../state'
5import {isNetworkError} from './errors'
6import TLDs from 'tlds'
+1-2
src/state/index.ts
···1import {autorun} from 'mobx'
2import {Platform} from 'react-native'
3-import {sessionClient as AtpApi} from '../third-party/api'
4-import type {SessionServiceClient} from '../third-party/api/src/index'
5import {RootStoreModel} from './models/root-store'
6import * as libapi from './lib/api'
7import * as storage from './lib/storage'
···1import {autorun} from 'mobx'
2import {Platform} from 'react-native'
3+import {sessionClient as AtpApi, SessionServiceClient} from '@atproto/api'
04import {RootStoreModel} from './models/root-store'
5import * as libapi from './lib/api'
6import * as storage from './lib/storage'
+6-4
src/state/lib/api.ts
···4 */
56// import {ReactNativeStore} from './auth'
7-import {sessionClient as AtpApi} from '../../third-party/api'
000008import {AtUri} from '../../third-party/uri'
9-import {APP_BSKY_GRAPH} from '../../third-party/api'
10-import * as AppBskyEmbedImages from '../../third-party/api/src/client/types/app/bsky/embed/images'
11-import * as AppBskyEmbedExternal from '../../third-party/api/src/client/types/app/bsky/embed/External'
12import {RootStoreModel} from '../models/root-store'
13import {extractEntities} from '../../lib/strings'
14import {isNetworkError} from '../../lib/errors'
···4 */
56// import {ReactNativeStore} from './auth'
7+import {
8+ sessionClient as AtpApi,
9+ APP_BSKY_GRAPH,
10+ AppBskyEmbedImages,
11+ AppBskyEmbedExternal,
12+} from '@atproto/api'
13import {AtUri} from '../../third-party/uri'
00014import {RootStoreModel} from '../models/root-store'
15import {extractEntities} from '../../lib/strings'
16import {isNetworkError} from '../../lib/errors'
+9-7
src/state/models/feed-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2-import * as GetTimeline from '../../third-party/api/src/client/types/app/bsky/feed/getTimeline'
3import {
4- Main as FeedViewPost,
5- ReasonTrend,
6- ReasonRepost,
7-} from '../../third-party/api/src/client/types/app/bsky/feed/feedViewPost'
8-import {View as PostView} from '../../third-party/api/src/client/types/app/bsky/feed/post'
9-import * as GetAuthorFeed from '../../third-party/api/src/client/types/app/bsky/feed/getAuthorFeed'
00010import {AtUri} from '../../third-party/uri'
11import {RootStoreModel} from './root-store'
12import * as apilib from '../lib/api'
···1import {makeAutoObservable, runInAction} from 'mobx'
02import {
3+ AppBskyFeedGetTimeline as GetTimeline,
4+ AppBskyFeedFeedViewPost,
5+ AppBskyFeedPost,
6+ AppBskyFeedGetAuthorFeed as GetAuthorFeed,
7+} from '@atproto/api'
8+type FeedViewPost = AppBskyFeedFeedViewPost.Main
9+type ReasonTrend = AppBskyFeedFeedViewPost.ReasonTrend
10+type ReasonRepost = AppBskyFeedFeedViewPost.ReasonRepost
11+type PostView = AppBskyFeedPost.View
12import {AtUri} from '../../third-party/uri'
13import {RootStoreModel} from './root-store'
14import * as apilib from '../lib/api'
+2-3
src/state/models/get-assertions-view.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as GetAssertions from '../../third-party/api/src/client/types/app/bsky/graph/getAssertions'
3import {RootStoreModel} from './root-store'
45-type ResponseAssertion = GetAssertions.OutputSchema['assertions'][number]
6-export type Assertion = ResponseAssertion & {
7 _reactKey: string
8}
9
···1import {makeAutoObservable} from 'mobx'
2+import {AppBskyGraphGetAssertions as GetAssertions} from '@atproto/api'
3import {RootStoreModel} from './root-store'
45+export type Assertion = GetAssertions.Assertion & {
06 _reactKey: string
7}
8
+5-3
src/state/models/members-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2-import * as GetMembers from '../../third-party/api/src/client/types/app/bsky/graph/getMembers'
3-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
4-import {APP_BSKY_GRAPH} from '../../third-party/api'
005import {AtUri} from '../../third-party/uri'
6import {RootStoreModel} from './root-store'
7
···1import {makeAutoObservable, runInAction} from 'mobx'
2+import {
3+ AppBskyGraphGetMembers as GetMembers,
4+ AppBskyActorRef as ActorRef,
5+ APP_BSKY_GRAPH,
6+} from '@atproto/api'
7import {AtUri} from '../../third-party/uri'
8import {RootStoreModel} from './root-store'
9
+4-2
src/state/models/memberships-view.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as GetMemberships from '../../third-party/api/src/client/types/app/bsky/graph/getMemberships'
3-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
004import {RootStoreModel} from './root-store'
56export type MembershipItem = GetMemberships.Membership & {
···1import {makeAutoObservable} from 'mobx'
2+import {
3+ AppBskyGraphGetMemberships as GetMemberships,
4+ AppBskyActorRef as ActorRef,
5+} from '@atproto/api'
6import {RootStoreModel} from './root-store'
78export type MembershipItem = GetMemberships.Membership & {
+5-3
src/state/models/notifications-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2-import * as ListNotifications from '../../third-party/api/src/client/types/app/bsky/notification/list'
3-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
0004import {RootStoreModel} from './root-store'
5import {PostThreadViewModel} from './post-thread-view'
6import {hasProp} from '../lib/type-guards'
7-import {APP_BSKY_GRAPH} from '../../third-party/api'
8import {cleanError} from '../../lib/strings'
910const UNGROUPABLE_REASONS = ['trend', 'assertion']
···1import {makeAutoObservable, runInAction} from 'mobx'
2+import {
3+ AppBskyNotificationList as ListNotifications,
4+ AppBskyActorRef as ActorRef,
5+ APP_BSKY_GRAPH,
6+} from '@atproto/api'
7import {RootStoreModel} from './root-store'
8import {PostThreadViewModel} from './post-thread-view'
9import {hasProp} from '../lib/type-guards'
010import {cleanError} from '../../lib/strings'
1112const UNGROUPABLE_REASONS = ['trend', 'assertion']
+2-3
src/state/models/post-thread-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2-import {AppBskyFeedGetPostThread as GPT} from '../../third-party/api'
3-import type * as GetPostThread from '../../third-party/api/src/client/types/app/bsky/feed/getPostThread'
4import {AtUri} from '../../third-party/uri'
5import {RootStoreModel} from './root-store'
6import * as apilib from '../lib/api'
···297 this.isRefreshing = false
298 this.hasLoaded = true
299 this.error = err ? err.toString() : ''
300- this.notFound = err instanceof GPT.NotFoundError
301 }
302303 // loader functions
···1import {makeAutoObservable, runInAction} from 'mobx'
2+import {AppBskyFeedGetPostThread as GetPostThread} from '@atproto/api'
03import {AtUri} from '../../third-party/uri'
4import {RootStoreModel} from './root-store'
5import * as apilib from '../lib/api'
···296 this.isRefreshing = false
297 this.hasLoaded = true
298 this.error = err ? err.toString() : ''
299+ this.notFound = err instanceof GetPostThread.NotFoundError
300 }
301302 // loader functions
+1-1
src/state/models/post.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as Post from '../../third-party/api/src/client/types/app/bsky/feed/post'
3import {AtUri} from '../../third-party/uri'
4import {RootStoreModel} from './root-store'
5import {cleanError} from '../../lib/strings'
···1import {makeAutoObservable} from 'mobx'
2+import {AppBskyFeedPost as Post} from '@atproto/api'
3import {AtUri} from '../../third-party/uri'
4import {RootStoreModel} from './root-store'
5import {cleanError} from '../../lib/strings'
+8-4
src/state/models/profile-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {Image as PickedImage} from 'react-native-image-crop-picker'
3-import * as GetProfile from '../../third-party/api/src/client/types/app/bsky/actor/getProfile'
4-import * as Profile from '../../third-party/api/src/client/types/app/bsky/actor/profile'
5-import {Main as DeclRef} from '../../third-party/api/src/client/types/app/bsky/system/declRef'
6-import {Entity} from '../../third-party/api/src/client/types/app/bsky/feed/post'
00007import {extractEntities} from '../../lib/strings'
8import {RootStoreModel} from './root-store'
9import * as apilib from '../lib/api'
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {Image as PickedImage} from 'react-native-image-crop-picker'
3+import {
4+ AppBskyActorGetProfile as GetProfile,
5+ AppBskyActorProfile as Profile,
6+ AppBskySystemDeclRef,
7+ AppBskyFeedPost,
8+} from '@atproto/api'
9+type DeclRef = AppBskySystemDeclRef.Main
10+type Entity = AppBskyFeedPost.Entity
11import {extractEntities} from '../../lib/strings'
12import {RootStoreModel} from './root-store'
13import * as apilib from '../lib/api'
+1-1
src/state/models/profiles-view.ts
···1import {makeAutoObservable} from 'mobx'
2import {LRUMap} from 'lru_map'
3import {RootStoreModel} from './root-store'
4-import * as GetProfile from '../../third-party/api/src/client/types/app/bsky/actor/getProfile'
56type CacheValue = Promise<GetProfile.Response> | GetProfile.Response
7export class ProfilesViewModel {
···1import {makeAutoObservable} from 'mobx'
2import {LRUMap} from 'lru_map'
3import {RootStoreModel} from './root-store'
4+import {AppBskyActorGetProfile as GetProfile} from '@atproto/api'
56type CacheValue = Promise<GetProfile.Response> | GetProfile.Response
7export class ProfilesViewModel {
+5-2
src/state/models/reposted-by-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {AtUri} from '../../third-party/uri'
3-import * as GetRepostedBy from '../../third-party/api/src/client/types/app/bsky/feed/getRepostedBy'
4-import {Main as DeclRef} from '../../third-party/api/src/client/types/app/bsky/system/declRef'
0005import {RootStoreModel} from './root-store'
67export class RepostedByViewItemModel implements GetRepostedBy.RepostedBy {
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {AtUri} from '../../third-party/uri'
3+import {
4+ AppBskyFeedGetRepostedBy as GetRepostedBy,
5+ AppBskySystemDeclRef,
6+} from '@atproto/api'
7+type DeclRef = AppBskySystemDeclRef.Main
8import {RootStoreModel} from './root-store'
910export class RepostedByViewItemModel implements GetRepostedBy.RepostedBy {
+1-2
src/state/models/root-store.ts
···3 */
45import {makeAutoObservable} from 'mobx'
6-import {sessionClient as AtpApi} from '../../third-party/api'
7-import type {SessionServiceClient} from '../../third-party/api/src/index'
8import {createContext, useContext} from 'react'
9import {isObj, hasProp} from '../lib/type-guards'
10import {SessionModel} from './session'
···3 */
45import {makeAutoObservable} from 'mobx'
6+import {sessionClient as AtpApi, SessionServiceClient} from '@atproto/api'
07import {createContext, useContext} from 'react'
8import {isObj, hasProp} from '../lib/type-guards'
9import {SessionModel} from './session'
+5-5
src/state/models/session.ts
···1import {makeAutoObservable} from 'mobx'
2-import {sessionClient as AtpApi} from '../../third-party/api/index'
3-import type {
4- SessionServiceClient,
5 Session,
6-} from '../../third-party/api/src/index'
7-import type * as GetAccountsConfig from '../../third-party/api/src/client/types/com/atproto/server/getAccountsConfig'
08import {isObj, hasProp} from '../lib/type-guards'
9import {RootStoreModel} from './root-store'
10import {isNetworkError} from '../../lib/errors'
···1import {makeAutoObservable} from 'mobx'
2+import {
3+ sessionClient as AtpApi,
04 Session,
5+ SessionServiceClient,
6+ ComAtprotoServerGetAccountsConfig as GetAccountsConfig,
7+} from '@atproto/api'
8import {isObj, hasProp} from '../lib/type-guards'
9import {RootStoreModel} from './root-store'
10import {isNetworkError} from '../../lib/errors'
+1-1
src/state/models/suggested-actors-view.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as GetSuggestions from '../../third-party/api/src/client/types/app/bsky/actor/getSuggestions'
3import {RootStoreModel} from './root-store'
45export type SuggestedActor = GetSuggestions.Actor & {
···1import {makeAutoObservable} from 'mobx'
2+import {AppBskyActorGetSuggestions as GetSuggestions} from '@atproto/api'
3import {RootStoreModel} from './root-store'
45export type SuggestedActor = GetSuggestions.Actor & {
+1-1
src/state/models/suggested-invites-view.ts
···2import {RootStoreModel} from './root-store'
3import {UserFollowsViewModel, FollowItem} from './user-follows-view'
4import {GetAssertionsView} from './get-assertions-view'
5-import {APP_BSKY_SYSTEM, APP_BSKY_GRAPH} from '../../third-party/api'
67export interface SuggestedInvitesViewParams {
8 sceneDid: string
···2import {RootStoreModel} from './root-store'
3import {UserFollowsViewModel, FollowItem} from './user-follows-view'
4import {GetAssertionsView} from './get-assertions-view'
5+import {APP_BSKY_SYSTEM, APP_BSKY_GRAPH} from '@atproto/api'
67export interface SuggestedInvitesViewParams {
8 sceneDid: string
+4-2
src/state/models/user-autocomplete-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2-import * as GetFollows from '../../third-party/api/src/client/types/app/bsky/graph/getFollows'
3-import * as SearchTypeahead from '../../third-party/api/src/client/types/app/bsky/actor/searchTypeahead'
004import {RootStoreModel} from './root-store'
56export class UserAutocompleteViewModel {
···1import {makeAutoObservable, runInAction} from 'mobx'
2+import {
3+ AppBskyGraphGetFollows as GetFollows,
4+ AppBskyActorSearchTypeahead as SearchTypeahead,
5+} from '@atproto/api'
6import {RootStoreModel} from './root-store'
78export class UserAutocompleteViewModel {
+4-2
src/state/models/user-followers-view.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as GetFollowers from '../../third-party/api/src/client/types/app/bsky/graph/getFollowers'
3-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
004import {RootStoreModel} from './root-store'
56export type FollowerItem = GetFollowers.Follower & {
···1import {makeAutoObservable} from 'mobx'
2+import {
3+ AppBskyGraphGetFollowers as GetFollowers,
4+ AppBskyActorRef as ActorRef,
5+} from '@atproto/api'
6import {RootStoreModel} from './root-store'
78export type FollowerItem = GetFollowers.Follower & {
+4-2
src/state/models/user-follows-view.ts
···1import {makeAutoObservable} from 'mobx'
2-import * as GetFollows from '../../third-party/api/src/client/types/app/bsky/graph/getFollows'
3-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
004import {RootStoreModel} from './root-store'
56export type FollowItem = GetFollows.Follow & {
···1import {makeAutoObservable} from 'mobx'
2+import {
3+ AppBskyGraphGetFollows as GetFollows,
4+ AppBskyActorRef as ActorRef,
5+} from '@atproto/api'
6import {RootStoreModel} from './root-store'
78export type FollowItem = GetFollows.Follow & {
+4-2
src/state/models/votes-view.ts
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {AtUri} from '../../third-party/uri'
3-import * as GetVotes from '../../third-party/api/src/client/types/app/bsky/feed/getVotes'
4-import * as ActorRef from '../../third-party/api/src/client/types/app/bsky/actor/ref'
005import {RootStoreModel} from './root-store'
67export class VotesViewItemModel implements GetVotes.Vote {
···1import {makeAutoObservable, runInAction} from 'mobx'
2import {AtUri} from '../../third-party/uri'
3+import {
4+ AppBskyFeedGetVotes as GetVotes,
5+ AppBskyActorRef as ActorRef,
6+} from '@atproto/api'
7import {RootStoreModel} from './root-store'
89export class VotesViewItemModel implements GetVotes.Vote {
···1-export * from './client';
2-export { default } from './client';
3-export * from './session';
4-export { default as sessionClient } from './session';
···10 View,
11} from 'react-native'
12import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
013import * as EmailValidator from 'email-validator'
14import {Logo} from './Logo'
15import {Picker} from '../util/Picker'
···24import {useStores, DEFAULT_SERVICE} from '../../../state'
25import {ServiceDescription} from '../../../state/models/session'
26import {ServerInputModal} from '../../../state/models/shell-ui'
27-import {ComAtprotoAccountCreate} from '../../../third-party/api/index'
2829export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
30 const store = useStores()
···10 View,
11} from 'react-native'
12import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
13+import {ComAtprotoAccountCreate} from '@atproto/api'
14import * as EmailValidator from 'email-validator'
15import {Logo} from './Logo'
16import {Picker} from '../util/Picker'
···25import {useStores, DEFAULT_SERVICE} from '../../../state'
26import {ServiceDescription} from '../../../state/models/session'
27import {ServerInputModal} from '../../../state/models/shell-ui'
02829export const CreateAccount = ({onPressBack}: {onPressBack: () => void}) => {
30 const store = useStores()
+1-2
src/view/com/login/Signin.tsx
···10} from 'react-native'
11import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
12import * as EmailValidator from 'email-validator'
013import {Logo} from './Logo'
14import {Text} from '../util/Text'
15import {s, colors} from '../../lib/styles'
···18import {ServiceDescription} from '../../../state/models/session'
19import {ServerInputModal} from '../../../state/models/shell-ui'
20import {isNetworkError} from '../../../lib/errors'
21-import {sessionClient as AtpApi} from '../../../third-party/api/index'
22-import type {SessionServiceClient} from '../../../third-party/api/src/index'
2324enum Forms {
25 Login,
···10} from 'react-native'
11import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
12import * as EmailValidator from 'email-validator'
13+import {sessionClient as AtpApi, SessionServiceClient} from '@atproto/api'
14import {Logo} from './Logo'
15import {Text} from '../util/Text'
16import {s, colors} from '../../lib/styles'
···19import {ServiceDescription} from '../../../state/models/session'
20import {ServerInputModal} from '../../../state/models/shell-ui'
21import {isNetworkError} from '../../../lib/errors'
002223enum Forms {
24 Login,
+1-1
src/view/com/modals/CreateScene.tsx
···8} from 'react-native'
9import LinearGradient from 'react-native-linear-gradient'
10import {BottomSheetScrollView, BottomSheetTextInput} from '@gorhom/bottom-sheet'
011import {ErrorMessage} from '../util/ErrorMessage'
12import {Text} from '../util/Text'
13import {useStores} from '../../../state'
···19 MAX_DISPLAY_NAME,
20 MAX_DESCRIPTION,
21} from '../../../lib/strings'
22-import {AppBskyActorCreateScene} from '../../../third-party/api/index'
2324export const snapPoints = ['60%']
25
···8} from 'react-native'
9import LinearGradient from 'react-native-linear-gradient'
10import {BottomSheetScrollView, BottomSheetTextInput} from '@gorhom/bottom-sheet'
11+import {AppBskyActorCreateScene} from '@atproto/api'
12import {ErrorMessage} from '../util/ErrorMessage'
13import {Text} from '../util/Text'
14import {useStores} from '../../../state'
···20 MAX_DISPLAY_NAME,
21 MAX_DESCRIPTION,
22} from '../../../lib/strings'
02324export const snapPoints = ['60%']
25
+2-2
src/view/com/post-thread/PostThreadItem.tsx
···3import {StyleSheet, View} from 'react-native'
4import Clipboard from '@react-native-clipboard/clipboard'
5import {AtUri} from '../../../third-party/uri'
6-import * as PostType from '../../../third-party/api/src/client/types/app/bsky/feed/post'
7import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
8import {PostThreadViewPostModel} from '../../../state/models/post-thread-view'
9import {Link} from '../util/Link'
···32}) {
33 const store = useStores()
34 const [deleted, setDeleted] = useState(false)
35- const record = item.post.record as unknown as PostType.Record
36 const hasEngagement = item.post.upvoteCount || item.post.repostCount
3738 const itemHref = useMemo(() => {
···3import {StyleSheet, View} from 'react-native'
4import Clipboard from '@react-native-clipboard/clipboard'
5import {AtUri} from '../../../third-party/uri'
6+import {AppBskyFeedPost} from '@atproto/api'
7import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
8import {PostThreadViewPostModel} from '../../../state/models/post-thread-view'
9import {Link} from '../util/Link'
···32}) {
33 const store = useStores()
34 const [deleted, setDeleted] = useState(false)
35+ const record = item.post.record as unknown as AppBskyFeedPost.Record
36 const hasEngagement = item.post.upvoteCount || item.post.repostCount
3738 const itemHref = useMemo(() => {
+2-2
src/view/com/post/Post.tsx
···9import {observer} from 'mobx-react-lite'
10import Clipboard from '@react-native-clipboard/clipboard'
11import {AtUri} from '../../../third-party/uri'
12-import * as PostType from '../../../third-party/api/src/client/types/app/bsky/feed/post'
13import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
14import {PostThreadViewModel} from '../../../state/models/post-thread-view'
15import {Link} from '../util/Link'
···77 // loaded
78 // =
79 const item = view.thread
80- const record = view.thread?.post.record as unknown as PostType.Record
8182 const itemUrip = new AtUri(item.post.uri)
83 const itemHref = `/profile/${item.post.author.handle}/post/${itemUrip.rkey}`
···9import {observer} from 'mobx-react-lite'
10import Clipboard from '@react-native-clipboard/clipboard'
11import {AtUri} from '../../../third-party/uri'
12+import {AppBskyFeedPost} from '@atproto/api'
13import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
14import {PostThreadViewModel} from '../../../state/models/post-thread-view'
15import {Link} from '../util/Link'
···77 // loaded
78 // =
79 const item = view.thread
80+ const record = view.thread?.post.record as unknown as AppBskyFeedPost.Record
8182 const itemUrip = new AtUri(item.post.uri)
83 const itemHref = `/profile/${item.post.author.handle}/post/${itemUrip.rkey}`
+2-2
src/view/com/posts/FeedItem.tsx
···4import Clipboard from '@react-native-clipboard/clipboard'
5import Svg, {Circle, Line} from 'react-native-svg'
6import {AtUri} from '../../../third-party/uri'
7-import * as PostType from '../../../third-party/api/src/client/types/app/bsky/feed/post'
8import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
9import {FeedItemModel} from '../../../state/models/feed-view'
10import {Link} from '../util/Link'
···28}) {
29 const store = useStores()
30 const [deleted, setDeleted] = useState(false)
31- const record = item.post.record as unknown as PostType.Record
32 const itemHref = useMemo(() => {
33 const urip = new AtUri(item.post.uri)
34 return `/profile/${item.post.author.handle}/post/${urip.rkey}`
···4import Clipboard from '@react-native-clipboard/clipboard'
5import Svg, {Circle, Line} from 'react-native-svg'
6import {AtUri} from '../../../third-party/uri'
7+import {AppBskyFeedPost} from '@atproto/api'
8import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
9import {FeedItemModel} from '../../../state/models/feed-view'
10import {Link} from '../util/Link'
···28}) {
29 const store = useStores()
30 const [deleted, setDeleted] = useState(false)
31+ const record = item.post.record as unknown as AppBskyFeedPost.Record
32 const itemHref = useMemo(() => {
33 const urip = new AtUri(item.post.uri)
34 return `/profile/${item.post.author.handle}/post/${urip.rkey}`
+1-2
src/view/com/util/PostEmbeds.tsx
···1import React from 'react'
2import {ImageStyle, StyleSheet, StyleProp, View, ViewStyle} from 'react-native'
3-import * as AppBskyEmbedImages from '../../../third-party/api/src/client/types/app/bsky/embed/images'
4-import * as AppBskyEmbedExternal from '../../../third-party/api/src/client/types/app/bsky/embed/external'
5import {Link} from '../util/Link'
6import {Text} from '../util/Text'
7import {colors} from '../../lib/styles'
···1import React from 'react'
2import {ImageStyle, StyleSheet, StyleProp, View, ViewStyle} from 'react-native'
3+import {AppBskyEmbedImages, AppBskyEmbedExternal} from '@atproto/api'
04import {Link} from '../util/Link'
5import {Text} from '../util/Text'
6import {colors} from '../../lib/styles'
+1-1
src/view/com/util/UserInfoText.tsx
···1import React, {useState, useEffect} from 'react'
2-import * as GetProfile from '../../../third-party/api/src/client/types/app/bsky/actor/getProfile'
3import {StyleProp, TextStyle} from 'react-native'
4import {Link} from './Link'
5import {Text} from './Text'
···1import React, {useState, useEffect} from 'react'
2+import {AppBskyActorGetProfile as GetProfile} from '@atproto/api'
3import {StyleProp, TextStyle} from 'react-native'
4import {Link} from './Link'
5import {Text} from './Text'