feat(chat): add composer action menu

This commit is contained in:
2026-07-21 10:58:40 +08:00
parent 17e5656f53
commit 7789673fff
11 changed files with 632 additions and 62 deletions
@@ -69,6 +69,19 @@ export type PendingChatImageReturn = z.output<
typeof PendingChatImageReturnSchema
>;
export function createPendingChatPromotion(
promotionType: PendingChatPromotionType,
characterId: string,
): PendingChatPromotion {
return PendingChatPromotionSchema.parse({
characterId,
promotionType,
lockType: toPromotionLockType(promotionType),
clientLockId: `promotion_${createUuidV4()}`,
createdAt: Date.now(),
});
}
/**
* NavigationStorage owns short-lived cross-route sessions.
*
@@ -180,13 +193,10 @@ export class NavigationStorage {
promotionType: PendingChatPromotionType,
characterId: string,
): Promise<PendingChatPromotion> {
const promotion: PendingChatPromotion = {
characterId,
const promotion = createPendingChatPromotion(
promotionType,
lockType: toPromotionLockType(promotionType),
clientLockId: `promotion_${createUuidV4()}`,
createdAt: Date.now(),
};
characterId,
);
await SessionAsyncUtil.setJson(
StorageKeys.pendingChatPromotion,
promotion,