feat(web): space avatars with GIF support and live space list sync [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful

This commit is contained in:
justme committed 2026-10-17 13:44:16 +08:00
1 parent 96f92c2ba9
commit ba0b6c258a
14 files changed
+153 -33

No files matched your search

+4
View File
@@ -12,6 +12,8 @@ export interface ChannelInfo {
id: string;
/** 服务端 channel settings 中的共享名称,加入者可见。 */
name?: string;
/** 空间头像(data URL,可以是 GIF 动图) */
avatar?: string;
mode: ChannelMode;
role: 'owner' | 'member';
maxMembers: number;
@@ -51,6 +53,8 @@ export interface ChannelSettingsPatch {
joinPolicy?: 'open' | 'invite';
joinPassword?: string;
name?: string;
/** 空字符串表示移除头像 */
avatar?: string;
maxMembers?: number;
membersCanUpload?: boolean;
ttlSeconds?: number;
@@ -152,6 +152,7 @@ export async function updateChannelSettings(resourceId: string, patch: ChannelSe
if (!session.can('owner')) throw new Error('只有所有者可以修改空间设置');
const body: SettingsRequest = {};
if (patch.name !== undefined) body.name = patch.name.trim();
if (patch.avatar !== undefined) body.avatar = patch.avatar;
if (patch.maxMembers !== undefined) body.max_members = patch.maxMembers;
if (patch.membersCanUpload !== undefined) body.members_can_upload = patch.membersCanUpload;
if (patch.ttlSeconds !== undefined) body.ttl_seconds = patch.ttlSeconds;
+1
View File
@@ -10,6 +10,7 @@ export function toChannelInfo(raw: ChannelWire, saved: SavedResource): ChannelIn
creatorAccount: raw.creator_account ?? undefined,
joinPolicy, passwordRequired: raw.password_required,
name: raw.settings.name ?? undefined,
avatar: raw.avatar ?? undefined,
mode: raw.mode,
role: raw.can_manage_structure ? 'owner' : 'member',
canUpload: raw.can_upload,