fix: rewrite backend hooks, fix invitation flow, align frontend API, fix component naming

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-04-17 16:30:05 +08:00
parent b1a9995767
commit 0acc1e12e1
6 changed files with 144 additions and 170 deletions
+4 -25
View File
@@ -1,8 +1,6 @@
// src/api/invitations.ts
import pb from './pocketbase'
import type { Invitation, InviteStatus } from '@/types'
import { joinTeamSession } from './sessions'
import { updateUserStatus } from './users'
import type { Invitation } from '@/types'
// 发送邀请
export async function sendInvitation(data: {
@@ -71,35 +69,16 @@ export async function respondInvitation(
response: 'accepted' | 'rejected',
rejectReason?: string
) {
const user = pb.authStore.model
if (!user) throw new Error('未登录')
const invitation = await pb.collection('invitations').getOne(invitationId)
if (invitation.to !== user.id) {
throw new Error('无权操作此邀请')
}
const updateData: Partial<Invitation> = {
status: response as InviteStatus,
respondedAt: new Date().toISOString()
const updateData: Record<string, unknown> = {
status: response
}
if (response === 'rejected' && rejectReason) {
updateData.rejectReason = rejectReason
}
// 更新邀请状态
// 后端 hook 会自动处理:加入 team members + 更新用户状态
await pb.collection('invitations').update(invitationId, updateData)
// 如果接受,加入临时小组
if (response === 'accepted') {
await joinTeamSession(invitation.teamSession)
// 更新用户状态
await updateUserStatus('in_team')
}
return updateData
}
// 订阅邀请变更