atagen

malice

public
Star0
Watch0

Commit 5e9271c9b8f1

tarball

atagen <boss@atagen.co>2026-10-24 08:17 UTC

1 file changed+4-17
web: let /roomnick and /roomavatar with no argument drop the per-room override

macltok treats a None override as copying your current global name or avatar into the member event, so an empty argument maps to that. /roomavatar no longer opens a file picker, so per-room avatars come from an mxc link.
Modified file: web/src/App.svelte+4 additions−17 deletions
@@ -28,7 +28,6 @@
2828 sendMessage,
2929 uploadAttachment,
3030 uploadAvatar,
31- uploadRoomAvatar,
3231 editMessage
3332 } from './lib/api';
3433 import { isKnownCommand, parseCommand, splitTarget, unescapeCommand } from './lib/commands';
@@ -96,7 +95,6 @@
9695 let composerEl: HTMLTextAreaElement | null = null;
9796 let fileInput: HTMLInputElement | null = null;
9897 let avatarInput: HTMLInputElement | null = null;
99- let avatarRoom: string | null = null;
10098 let uploadBusy = false;
10199 let uploadName: string | null = null;
102100 interface StagedAttachment {
@@ -701,14 +699,8 @@
701699 await runCommand({ op: 'set_room_display_name', room_id: roomId, name: args || null });
702700 break;
703701 case 'roomavatar':
704- if (!args) {
705- avatarRoom = roomId;
706- avatarInput?.click();
707- } else if (args.startsWith('mxc://')) {
708- await runCommand({ op: 'set_room_avatar', room_id: roomId, mxc: args });
709- } else {
710- throw new Error('/roomavatar takes an mxc:// link, or nothing to pick a file');
711- }
702+ if (args && !args.startsWith('mxc://')) throw new Error('/roomavatar takes an mxc:// link, or nothing to drop the override');
703+ await runCommand({ op: 'set_room_avatar', room_id: roomId, mxc: args || null });
712704 break;
713705 case 'delete': {
714706 const eventId = reply?.event_id ?? lastOwnEventId();
@@ -722,7 +714,6 @@
722714 break;
723715 case 'globalavatar':
724716 if (!args) {
725- avatarRoom = null;
726717 avatarInput?.click();
727718 } else if (args.startsWith('mxc://')) {
728719 await runCommand({ op: 'set_avatar', mxc: args });
@@ -742,12 +733,8 @@
742733 if (avatarInput) avatarInput.value = '';
743734 if (!file) return;
744735 try {
745- if (avatarRoom) {
746- await uploadRoomAvatar(avatarRoom, file);
747- } else {
748- await uploadAvatar(file);
749- await loadProfile();
750- }
736+ await uploadAvatar(file);
737+ await loadProfile();
751738 } catch (e) {
752739 pushBanner(e instanceof Error ? e.message : 'Avatar upload failed');
753740 }