Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@atproto/api@next integration #7344

Open
wants to merge 113 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 110 commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
3375460
Bump SDK
estrattonbailey Jan 2, 2025
f7ee3a5
Use consistent type in profile query
estrattonbailey Jan 2, 2025
e47f7a1
Omit from constraint for profile shadow
estrattonbailey Jan 2, 2025
8579fa9
Replace isRecord with isValidRecord in QuoteEmbed
estrattonbailey Jan 2, 2025
a9e6164
Omit type from constraint for old ProfileCard
estrattonbailey Jan 2, 2025
1c956a2
Omit type from constraint in profile queries where appropriate
estrattonbailey Jan 2, 2025
ae48fdf
Use correct type for update profile mutation
estrattonbailey Jan 2, 2025
cb4add1
Conslidate and fix check for isValidRecord in Post.tsx
estrattonbailey Jan 2, 2025
c98a97e
Replace isRecord with isValidRecord in PostThreadItem
estrattonbailey Jan 2, 2025
05eae07
Remove redundant cast in PostThreadFollowBtn
estrattonbailey Jan 2, 2025
f02f254
Ignore errors in DebugMod screen
estrattonbailey Jan 2, 2025
5c7e38e
Use matching type in ProfileFollows screen
estrattonbailey Jan 2, 2025
3ea6ec1
Use matching type in ProfileFollowers screen
estrattonbailey Jan 2, 2025
b0d195a
Migrate to isValidRecord in PostFeedItem
estrattonbailey Jan 2, 2025
aac65a8
Use matching type if PostRepostedBy
estrattonbailey Jan 2, 2025
ac55917
Omit type from constraint in avatar props
estrattonbailey Jan 2, 2025
b7da85d
Use matching types in NotificationFeedItem
estrattonbailey Jan 2, 2025
a238666
Todo
estrattonbailey Jan 2, 2025
2c782d7
Use isValidRecord in NotfyFeedItem
estrattonbailey Jan 2, 2025
9182a6a
Improve MediaPreview types
estrattonbailey Jan 2, 2025
37c5329
Migrate another isValidRecord in NotificationFeedItem
estrattonbailey Jan 2, 2025
b068561
Migrate to isValidView in queries/util
estrattonbailey Jan 2, 2025
68626a5
Migrate to isValidRecord in threadgate/util
estrattonbailey Jan 2, 2025
1e8823a
Fix types in threadgates
estrattonbailey Jan 2, 2025
876ce4a
Fix up types in starter-packs queries
estrattonbailey Jan 2, 2025
a7b0111
Todo
estrattonbailey Jan 2, 2025
3b3a5e0
Specify exact types in search-posts
estrattonbailey Jan 2, 2025
a5c1fd7
Use internal type util to align types
estrattonbailey Jan 2, 2025
626cfc8
Ditto last
estrattonbailey Jan 2, 2025
f2a8c5c
Migrate postgate/index
estrattonbailey Jan 3, 2025
46bf56e
Specify exact types in post-thread
estrattonbailey Jan 3, 2025
0531cc7
Use correct type in post-quotes
estrattonbailey Jan 3, 2025
16addd8
FIX potential bug in post-thread
estrattonbailey Jan 3, 2025
aa18e81
Use correct type in post-feed
estrattonbailey Jan 3, 2025
beb62f4
Add correct type guards to notifications/feed
estrattonbailey Jan 3, 2025
4053b72
Migrate a guard in notifications/util
estrattonbailey Jan 3, 2025
6c7cfc0
Migrate guard in Wizard/State
estrattonbailey Jan 3, 2025
e23ce16
[@next] Profile handling, migrate `ProfileCard` (#7347)
estrattonbailey Jan 6, 2025
55055c1
Add parseEmbed utils
estrattonbailey Jan 6, 2025
9e7d34a
Expand AnyProfileView to include chat profile view, update post shado…
estrattonbailey Jan 6, 2025
a4e4e12
Cast for perf reasons
estrattonbailey Jan 6, 2025
e1a60bf
Tighten up types now that we have AnyProfileView
estrattonbailey Jan 6, 2025
e4b6972
Add fastIsType util
estrattonbailey Jan 6, 2025
f58dc57
Use `assertDid`
estrattonbailey Jan 7, 2025
4e9388a
Use util types
estrattonbailey Jan 7, 2025
b100d18
Comment
estrattonbailey Jan 7, 2025
09cb5aa
Use fastIsType where no validation was happening before
estrattonbailey Jan 7, 2025
31ae185
suggestions (#7382)
matthieusieben Jan 7, 2025
1c8b989
Use new util
estrattonbailey Jan 7, 2025
248bff2
Rename to dangerousIsType
estrattonbailey Jan 7, 2025
964fc20
Convert object shape
estrattonbailey Jan 7, 2025
31673b6
Use dangerous util
estrattonbailey Jan 7, 2025
44cb25d
Use dangerous util
estrattonbailey Jan 7, 2025
e2c3600
Use dangerous util, we can trust post records
estrattonbailey Jan 7, 2025
7dcf6b8
Use dangerous util
estrattonbailey Jan 7, 2025
9990c83
Use AnyProfileVIew
estrattonbailey Jan 7, 2025
a5e03d1
Convert object shape
estrattonbailey Jan 7, 2025
9499e2f
Clean up handling
estrattonbailey Jan 7, 2025
54a5d56
Patch moderateProfile to accept known profile views, to discuss
estrattonbailey Jan 7, 2025
4a1695b
Add AnyStarterPackView and related, implement in first usage
estrattonbailey Jan 7, 2025
5dbb2c2
Remove validation, fix type, fix ref
estrattonbailey Jan 7, 2025
23672e0
Migrate over list-conversations
estrattonbailey Jan 7, 2025
283a647
Clarify intent behind precacheProfile and its unstable query cache
estrattonbailey Jan 7, 2025
e034443
Clean up unstable profile cache
estrattonbailey Jan 7, 2025
94d8253
Fix types during label creation in PwiOptOut (#7346)
estrattonbailey Jan 7, 2025
29ef63c
Tighten types in queries/list
estrattonbailey Jan 7, 2025
1b13ea5
Chat: use correct profile views
estrattonbailey Jan 7, 2025
374d28d
Chat: fix log type check
estrattonbailey Jan 7, 2025
d7d3b9e
Chat: construct lexically correct shape, even though it's only intern…
estrattonbailey Jan 7, 2025
996e857
Chat: use correct profile types
estrattonbailey Jan 7, 2025
227bef8
Chat: fix type check in logs
estrattonbailey Jan 7, 2025
085492e
Starter: use correct profile types
estrattonbailey Jan 7, 2025
ea4c2de
Starter: use correct profile types
estrattonbailey Jan 7, 2025
4299f0a
Starter: tighten types to match lex
estrattonbailey Jan 7, 2025
61bf929
Any profile type will work in blocked-and-muted
estrattonbailey Jan 7, 2025
2622c85
Use dangerous util
estrattonbailey Jan 7, 2025
9449edf
Use dangerousIsType
estrattonbailey Jan 7, 2025
ad71585
Update new ProfileCard to use AnyProfileView
estrattonbailey Jan 7, 2025
763dd5b
Use dangerousIsType
estrattonbailey Jan 7, 2025
839be5f
Remove outdated todo
estrattonbailey Jan 7, 2025
f5530aa
Use correct profile type
estrattonbailey Jan 7, 2025
db63cc1
Use correct profile types
estrattonbailey Jan 7, 2025
c691f7b
Tighten up types
estrattonbailey Jan 8, 2025
1cbbf2b
Use dangerousIsType
estrattonbailey Jan 8, 2025
cf814ed
Chat: more type fixes
estrattonbailey Jan 8, 2025
30fd3f5
Remove unused file
estrattonbailey Jan 8, 2025
6f1fab4
Add a few utils
estrattonbailey Jan 8, 2025
d35df90
Remove unused file
estrattonbailey Jan 8, 2025
3047644
Ignore feedPost.__source
estrattonbailey Jan 8, 2025
5d15b25
Clean up types, leave validation in critical path
estrattonbailey Jan 8, 2025
4020584
Use dangerousIstype
estrattonbailey Jan 8, 2025
7dea8b0
Use ANyProfileView
estrattonbailey Jan 8, 2025
9773355
Use isValidRecord
estrattonbailey Jan 8, 2025
f6488dd
Use dangerousIsType
estrattonbailey Jan 8, 2025
e7b17b5
Fix types in ListCard
estrattonbailey Jan 8, 2025
a9c8c77
Fix FeedInterstitials types
estrattonbailey Jan 8, 2025
d7c45f0
Fix types in FeedCard
estrattonbailey Jan 8, 2025
54ecbd7
Fix types in dms ReportDialog
estrattonbailey Jan 8, 2025
696e3f9
Fix types in SearchablePeopleList
estrattonbailey Jan 8, 2025
5641308
Fix bad type in composer opts
estrattonbailey Jan 8, 2025
18e329c
Starter: ok these need to be loose too
estrattonbailey Jan 8, 2025
c4810cb
Clarify docs
estrattonbailey Jan 8, 2025
976e830
Less code
estrattonbailey Jan 8, 2025
0d28fd5
Use package exports
estrattonbailey Jan 8, 2025
2f0dd92
Use package exports
estrattonbailey Jan 8, 2025
40db806
Bump sdk, update $Typed imports
estrattonbailey Jan 8, 2025
af3dcb2
Format
estrattonbailey Jan 8, 2025
fad1685
Format
estrattonbailey Jan 8, 2025
7822bcd
Fix weird TS error
estrattonbailey Jan 8, 2025
be7c6cb
Remove patch
estrattonbailey Jan 8, 2025
d05a11b
Beter name
estrattonbailey Jan 8, 2025
c488e92
It's memo, can validate
estrattonbailey Jan 8, 2025
27fe260
Tighten up parseEmbed, dogfood
estrattonbailey Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"icons:optimize": "svgo -f ./assets/icons"
},
"dependencies": {
"@atproto/api": "^0.13.21",
"@atproto/api": "0.14.0-next.2",
"@braintree/sanitize-url": "^6.0.2",
"@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet",
"@emoji-mart/react": "^1.1.1",
Expand Down
4 changes: 2 additions & 2 deletions src/components/FeedCard.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React from 'react'
import {GestureResponderEvent, View} from 'react-native'
import {
AppBskyActorDefs,
AppBskyFeedDefs,
AppBskyGraphDefs,
AtUri,
Expand Down Expand Up @@ -32,6 +31,7 @@ import {Loader} from '#/components/Loader'
import * as Prompt from '#/components/Prompt'
import {RichText, RichTextProps} from '#/components/RichText'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

type Props = {
view: AppBskyFeedDefs.GeneratorView
Expand Down Expand Up @@ -115,7 +115,7 @@ export function TitleAndByline({
creator,
}: {
title: string
creator?: AppBskyActorDefs.ProfileViewBasic
creator?: atp.profile.AnyProfileView
}) {
const t = useTheme()

Expand Down
5 changes: 3 additions & 2 deletions src/components/FeedInterstitials.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import {View} from 'react-native'
import {ScrollView} from 'react-native-gesture-handler'
import {AppBskyActorDefs, AppBskyFeedDefs, AtUri} from '@atproto/api'
import {AppBskyFeedDefs, AtUri} from '@atproto/api'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useNavigation} from '@react-navigation/native'
Expand All @@ -26,6 +26,7 @@ import {PersonPlus_Stroke2_Corner0_Rounded as Person} from '#/components/icons/P
import {InlineLinkText} from '#/components/Link'
import * as ProfileCard from '#/components/ProfileCard'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'
import {ProgressGuideList} from './ProgressGuide/List'

const MOBILE_CARD_WIDTH = 300
Expand Down Expand Up @@ -225,7 +226,7 @@ export function ProfileGrid({
viewContext = 'feed',
}: {
isSuggestionsLoading: boolean
profiles: AppBskyActorDefs.ProfileViewDetailed[]
profiles: atp.profile.AnyProfileView[]
error: Error | null
viewContext: 'profile' | 'feed'
}) {
Expand Down
4 changes: 2 additions & 2 deletions src/components/ListCard.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React from 'react'
import {View} from 'react-native'
import {
AppBskyActorDefs,
AppBskyGraphDefs,
AtUri,
moderateUserList,
Expand All @@ -26,6 +25,7 @@ import {
import {Link as InternalLink, LinkProps} from '#/components/Link'
import * as Hider from '#/components/moderation/Hider'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

/*
* This component is based on `FeedCard` and is tightly coupled with that
Expand Down Expand Up @@ -107,7 +107,7 @@ export function TitleAndByline({
modUi,
}: {
title: string
creator?: AppBskyActorDefs.ProfileViewBasic
creator?: atp.profile.AnyProfileView
purpose?: AppBskyGraphDefs.ListView['purpose']
modUi?: ModerationUI
}) {
Expand Down
58 changes: 22 additions & 36 deletions src/components/MediaPreview.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
import React from 'react'
import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native'
import {Image} from 'expo-image'
import {
AppBskyEmbedExternal,
AppBskyEmbedImages,
AppBskyEmbedRecordWithMedia,
AppBskyEmbedVideo,
} from '@atproto/api'
import {AppBskyFeedDefs} from '@atproto/api'
import {Trans} from '@lingui/macro'

import {parseTenorGif} from '#/lib/strings/embed-player'
import {isTenorGifUri} from '#/lib/strings/embed-player'
import {atoms as a, useTheme} from '#/alf'
import {MediaInsetBorder} from '#/components/MediaInsetBorder'
import {Text} from '#/components/Typography'
import {PlayButtonIcon} from '#/components/video/PlayButtonIcon'
import {parseEmbed} from '#/types/atproto/post'

/**
* Streamlined MediaPreview component which just handles images, gifs, and videos
Expand All @@ -22,20 +18,17 @@ export function Embed({
embed,
style,
}: {
embed?:
| AppBskyEmbedImages.View
| AppBskyEmbedRecordWithMedia.View
| AppBskyEmbedExternal.View
| AppBskyEmbedVideo.View
| {[k: string]: unknown}
embed: AppBskyFeedDefs.PostView['embed']
style?: StyleProp<ViewStyle>
}) {
let media = AppBskyEmbedRecordWithMedia.isView(embed) ? embed.media : embed
const e = parseEmbed(embed)

if (AppBskyEmbedImages.isView(media)) {
if (!e) return null

if (e.type === 'images') {
return (
<Outer style={style}>
{media.images.map(image => (
{e.view.images.map(image => (
<ImageItem
key={image.thumb}
thumbnail={image.thumb}
Expand All @@ -44,28 +37,21 @@ export function Embed({
))}
</Outer>
)
} else if (AppBskyEmbedExternal.isView(media) && media.external.thumb) {
let url: URL | undefined
try {
url = new URL(media.external.uri)
} catch {}
if (url) {
const {success} = parseTenorGif(url)
if (success) {
return (
<Outer style={style}>
<GifItem
thumbnail={media.external.thumb}
alt={media.external.title}
/>
</Outer>
)
}
}
} else if (AppBskyEmbedVideo.isView(media)) {
} else if (e.type === 'link') {
if (!e.view.external.thumb) return null
if (!isTenorGifUri(e.view.external.uri)) return null
return (
<Outer style={style}>
<GifItem
thumbnail={e.view.external.thumb}
alt={e.view.external.title}
/>
</Outer>
)
} else if (e.type === 'video') {
return (
<Outer style={style}>
<VideoItem thumbnail={media.thumbnail} alt={media.alt} />
<VideoItem thumbnail={e.view.thumbnail} alt={e.view.alt} />
</Outer>
)
}
Expand Down
23 changes: 11 additions & 12 deletions src/components/ProfileCard.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React from 'react'
import {GestureResponderEvent, View} from 'react-native'
import {
AppBskyActorDefs,
moderateProfile,
ModerationOpts,
RichText as RichTextApi,
Expand All @@ -25,13 +24,14 @@ import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus
import {Link as InternalLink, LinkProps} from '#/components/Link'
import {RichText} from '#/components/RichText'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

export function Default({
profile,
moderationOpts,
logContext = 'ProfileCard',
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
logContext?: 'ProfileCard' | 'StarterPackProfilesList'
}) {
Expand All @@ -51,7 +51,7 @@ export function Card({
moderationOpts,
logContext = 'ProfileCard',
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
logContext?: 'ProfileCard' | 'StarterPackProfilesList'
}) {
Expand Down Expand Up @@ -101,7 +101,7 @@ export function Link({
style,
...rest
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
} & Omit<LinkProps, 'to' | 'label'>) {
const {_} = useLingui()
return (
Expand All @@ -126,7 +126,7 @@ export function Avatar({
profile,
moderationOpts,
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
}) {
const moderation = moderateProfile(profile, moderationOpts)
Expand Down Expand Up @@ -161,7 +161,7 @@ export function NameAndHandle({
profile,
moderationOpts,
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
}) {
const t = useTheme()
Expand Down Expand Up @@ -224,17 +224,16 @@ export function Description({
profile: profileUnshadowed,
numberOfLines = 3,
}: {
profile: AppBskyActorDefs.ProfileViewDetailed
profile: atp.profile.AnyProfileView
numberOfLines?: number
}) {
const profile = useProfileShadow(profileUnshadowed)
const {description} = profile
const rt = React.useMemo(() => {
if (!description) return
const rt = new RichTextApi({text: description || ''})
if (!('description' in profile)) return
const rt = new RichTextApi({text: profile.description || ''})
rt.detectFacetsWithoutResolution()
return rt
}, [description])
}, [profile])
if (!rt) return null
if (
profile.viewer &&
Expand Down Expand Up @@ -281,7 +280,7 @@ export function DescriptionPlaceholder({
}

export type FollowButtonProps = {
profile: AppBskyActorDefs.ProfileViewBasic
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
logContext: LogEvents['profile:follow']['logContext'] &
LogEvents['profile:unfollow']['logContext']
Expand Down
8 changes: 7 additions & 1 deletion src/components/StarterPack/QrCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import {useTheme} from '#/alf'
import {atoms as a} from '#/alf'
import {LinearGradientBackground} from '#/components/LinearGradientBackground'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

const LazyViewShot = React.lazy(
// @ts-expect-error dynamic import
Expand All @@ -30,7 +31,12 @@ export const QrCode = React.forwardRef<ViewShot, Props>(function QrCode(
) {
const {record} = starterPack

if (!AppBskyGraphStarterpack.isRecord(record)) {
if (
!atp.dangerousIsType<AppBskyGraphStarterpack.Record>(
record,
AppBskyGraphStarterpack.isRecord,
)
) {
return null
}

Expand Down
2 changes: 1 addition & 1 deletion src/components/StarterPack/QrCodeDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ export function QrCodeDialog({
} else {
setIsProcessing(true)

if (!AppBskyGraphStarterpack.isRecord(starterPack.record)) {
if (!AppBskyGraphStarterpack.isValidRecord(starterPack.record)) {
return
}

Expand Down
20 changes: 13 additions & 7 deletions src/components/StarterPack/StarterPackCard.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react'
import {View} from 'react-native'
import {Image} from 'expo-image'
import {AppBskyGraphDefs, AppBskyGraphStarterpack, AtUri} from '@atproto/api'
import {AppBskyGraphStarterpack, AtUri} from '@atproto/api'
import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useQueryClient} from '@tanstack/react-query'
Expand All @@ -15,11 +15,12 @@ import {atoms as a, useTheme} from '#/alf'
import {StarterPack} from '#/components/icons/StarterPack'
import {Link as BaseLink, LinkProps as BaseLinkProps} from '#/components/Link'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

export function Default({
starterPack,
}: {
starterPack?: AppBskyGraphDefs.StarterPackViewBasic
starterPack?: atp.starterPack.AnyStarterPackView
}) {
if (!starterPack) return null
return (
Expand All @@ -32,7 +33,7 @@ export function Default({
export function Notification({
starterPack,
}: {
starterPack?: AppBskyGraphDefs.StarterPackViewBasic
starterPack?: atp.starterPack.AnyStarterPackView
}) {
if (!starterPack) return null
return (
Expand All @@ -47,7 +48,7 @@ export function Card({
noIcon,
noDescription,
}: {
starterPack: AppBskyGraphDefs.StarterPackViewBasic
starterPack: atp.starterPack.AnyStarterPackView
noIcon?: boolean
noDescription?: boolean
}) {
Expand All @@ -57,7 +58,12 @@ export function Card({
const t = useTheme()
const {currentAccount} = useSession()

if (!AppBskyGraphStarterpack.isRecord(record)) {
if (
!atp.dangerousIsType<AppBskyGraphStarterpack.Record>(
record,
AppBskyGraphStarterpack.isRecord,
)
) {
return null
}

Expand Down Expand Up @@ -100,7 +106,7 @@ export function Link({
starterPack,
children,
}: {
starterPack: AppBskyGraphDefs.StarterPackViewBasic
starterPack: atp.starterPack.AnyStarterPackView
onPress?: () => void
children: BaseLinkProps['children']
}) {
Expand Down Expand Up @@ -139,7 +145,7 @@ export function Link({
export function Embed({
starterPack,
}: {
starterPack: AppBskyGraphDefs.StarterPackViewBasic
starterPack: atp.starterPack.AnyStarterPackView
}) {
const t = useTheme()
const imageUri = getStarterPackOgCard(starterPack)
Expand Down
2 changes: 1 addition & 1 deletion src/components/StarterPack/Wizard/WizardEditListDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export function WizardEditListDialog({
state: WizardState
dispatch: (action: WizardAction) => void
moderationOpts: ModerationOpts
profile: AppBskyActorDefs.ProfileViewBasic
profile: AppBskyActorDefs.ProfileViewDetailed
}) {
const {_} = useLingui()
const t = useTheme()
Expand Down
3 changes: 2 additions & 1 deletion src/components/StarterPack/Wizard/WizardListCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {Button, ButtonText} from '#/components/Button'
import * as Toggle from '#/components/forms/Toggle'
import {Checkbox} from '#/components/forms/Toggle'
import {Text} from '#/components/Typography'
import * as atp from '#/types/atproto'

function WizardListCard({
type,
Expand Down Expand Up @@ -123,7 +124,7 @@ export function WizardProfileCard({
btnType: 'checkbox' | 'remove'
state: WizardState
dispatch: (action: WizardAction) => void
profile: AppBskyActorDefs.ProfileViewBasic
profile: atp.profile.AnyProfileView
moderationOpts: ModerationOpts
}) {
const {currentAccount} = useSession()
Expand Down
Loading
Loading