flip the component type imports to the generated lexicons

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Samuel Newman
2026-08-04 04:20:42 +03:00
parent dd957dd123
commit e056c43116
109 changed files with 716 additions and 741 deletions
+19 -33
View File
@@ -1,6 +1,7 @@
import {type $Typed, ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api'
import {type ModerationOpts} from '@bsky.app/sdk/moderation'
import {type $Typed} from '@atproto/lex'
import {chat} from '#/lexicons'
import {EMOJI_REACTION_LIMIT} from '#/lib/constants'
import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted'
import {moderateProfile} from '#/lib/moderation/subjects'
@@ -77,7 +78,7 @@ export function localDateString(date: Date) {
}
export function hasAlreadyReacted(
message: ChatBskyConvoDefs.MessageView,
message: chat.bsky.convo.defs.MessageView,
myDid: string | undefined,
emoji: string,
): boolean {
@@ -98,9 +99,9 @@ export function hasAlreadyReacted(
* already render anonymously ("Someone reacted").
*/
export function filterBlockedReactions(
reactions: ChatBskyConvoDefs.ReactionView[] | undefined,
relatedProfiles: Map<string, ChatBskyActorDefs.ProfileViewBasic>,
): ChatBskyConvoDefs.ReactionView[] {
reactions: chat.bsky.convo.defs.ReactionView[] | undefined,
relatedProfiles: Map<string, chat.bsky.actor.defs.ProfileViewBasic>,
): chat.bsky.convo.defs.ReactionView[] {
if (!reactions) return []
return reactions.filter(reaction => {
const profile = relatedProfiles.get(reaction.sender.did)
@@ -109,7 +110,7 @@ export function filterBlockedReactions(
}
export function hasReachedReactionLimit(
message: ChatBskyConvoDefs.MessageView,
message: chat.bsky.convo.defs.MessageView,
myDid: string | undefined,
): boolean {
if (!message.reactions) {
@@ -170,25 +171,25 @@ export function canReact({
return true
}
export type GroupConvoMember = ChatBskyActorDefs.ProfileViewBasic & {
export type GroupConvoMember = chat.bsky.actor.defs.ProfileViewBasic & {
// can be missing if account deleted
kind?: $Typed<ChatBskyActorDefs.GroupConvoMember>
kind?: $Typed<chat.bsky.actor.defs.GroupConvoMember>
}
export type DirectConvoMember = ChatBskyActorDefs.ProfileViewBasic & {
kind: $Typed<ChatBskyActorDefs.DirectConvoMember>
export type DirectConvoMember = chat.bsky.actor.defs.ProfileViewBasic & {
kind: $Typed<chat.bsky.actor.defs.DirectConvoMember>
}
export type ConvoWithDetails = {view: ChatBskyConvoDefs.ConvoView} & (
export type ConvoWithDetails = {view: chat.bsky.convo.defs.ConvoView} & (
| {
kind: 'group'
details: $Typed<ChatBskyConvoDefs.GroupConvo>
details: $Typed<chat.bsky.convo.defs.GroupConvo>
primaryMember?: GroupConvoMember // the owner - may have left, thus optional
members: Array<GroupConvoMember>
}
| {
kind: 'direct'
details: $Typed<ChatBskyConvoDefs.DirectConvo>
details: $Typed<chat.bsky.convo.defs.DirectConvo>
primaryMember: DirectConvoMember // the other user
members: Array<DirectConvoMember>
}
@@ -199,24 +200,14 @@ export type ConvoWithDetails = {view: ChatBskyConvoDefs.ConvoView} & (
* and enforces the correct type for convo members.
*/
export function parseConvoView(
convoView: ChatBskyConvoDefs.ConvoView,
convoView: chat.bsky.convo.defs.ConvoView,
ownDid: string | undefined,
): ConvoWithDetails | null {
if (
bsky.dangerousIsType<ChatBskyConvoDefs.GroupConvo>(
convoView.kind,
ChatBskyConvoDefs.isGroupConvo,
)
) {
if (bsky.isType(chat.bsky.convo.defs.groupConvo, convoView.kind)) {
let owner: GroupConvoMember | undefined = undefined
for (const member of convoView.members) {
if (
bsky.dangerousIsType<ChatBskyActorDefs.GroupConvoMember>(
member.kind,
ChatBskyActorDefs.isGroupConvoMember,
)
) {
if (bsky.isType(chat.bsky.actor.defs.groupConvoMember, member.kind)) {
if (member.kind.role === 'owner') {
// have to do a type assertion here
// this works: {...member, kind: member.kind}
@@ -238,12 +229,7 @@ export function parseConvoView(
primaryMember: owner,
members: convoView.members as Array<GroupConvoMember>,
}
} else if (
bsky.dangerousIsType<ChatBskyConvoDefs.DirectConvo>(
convoView.kind,
ChatBskyConvoDefs.isDirectConvo,
)
) {
} else if (bsky.isType(chat.bsky.convo.defs.directConvo, convoView.kind)) {
const otherUser = convoView.members.find(m => m.did !== ownDid)
if (!otherUser) {
@@ -286,7 +272,7 @@ export function getConvoReportSubject(
const lastMessage = convo.view.lastMessage
const reportableMessage =
ChatBskyConvoDefs.isMessageView(lastMessage) &&
bsky.isType(chat.bsky.convo.defs.messageView, lastMessage) &&
lastMessage.sender?.did !== ownDid
? lastMessage
: null