feat: v0.1.1 - poll editing, notifications, fixes
- Poll editing by creator (title, options, deadline) - Notification panel with app notifications and click-to-navigate - Poll creation notifies group members - Invitation rejection notifies inviter - Fix: notification createRule, timezone, autocancel, nginx, tab timing Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { pb } from './pocketbase'
|
||||
import { awardPoints, deductPoints } from './points'
|
||||
import { createNotification } from './notifications'
|
||||
import type { Poll, PollOption, PollVote } from '@/types'
|
||||
|
||||
export async function createPoll(data: {
|
||||
@@ -33,6 +34,27 @@ export async function createPoll(data: {
|
||||
})
|
||||
}
|
||||
|
||||
// 给同群组其他成员发送通知
|
||||
try {
|
||||
const group = await pb.collection('groups').getOne(data.group)
|
||||
const typeLabel = data.type === 'rollcall' ? '接龙报名' : '投票'
|
||||
const otherMembers = (group.members || []).filter((id: string) => id !== user.id)
|
||||
await Promise.all(
|
||||
otherMembers.map((memberId: string) =>
|
||||
createNotification({
|
||||
user: memberId,
|
||||
type: 'poll_new',
|
||||
title: `新${typeLabel}`,
|
||||
content: `${data.title}`,
|
||||
relatedId: poll.id,
|
||||
relatedType: 'poll',
|
||||
})
|
||||
)
|
||||
)
|
||||
} catch {
|
||||
// 通知发送失败不影响主流程
|
||||
}
|
||||
|
||||
return poll as unknown as Poll
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user