feat: backup/restore, user profile popover, image compress, video blur, wake lock

- backup/restore dialog + user profile popover components
- image compression, video blur, wake lock utilities
- message cache + conversation messages hook refinements
- call context, active speakers, screen share dialog tweaks
- audio + screen share settings persistence
- refreshed app icons (smaller sizes) across all platforms
This commit is contained in:
2026-04-21 12:11:09 +02:00
parent 48ac9d2922
commit 1303c8e26f
71 changed files with 1077 additions and 114 deletions
+13 -1
View File
@@ -39,6 +39,10 @@ export interface TextMessagePayload {
type?: 'text';
text: string;
attachments: AttachmentHandle[];
/** When set, the message self-destructs `expireMs` milliseconds after the
* server's createdAt. Sender initiates the delete; receivers hide locally
* as soon as the window elapses. Added in /tempmsg support. */
expireMs?: number;
}
export interface CallEventPayload {
@@ -52,7 +56,12 @@ export interface CallEventPayload {
export type MessagePayload = TextMessagePayload | CallEventPayload;
export type ParsedMessagePayload =
| { kind: 'text'; text: string; attachments: AttachmentHandle[] }
| {
kind: 'text';
text: string;
attachments: AttachmentHandle[];
expireMs?: number;
}
| {
kind: 'call_event';
status: CallEventStatus;
@@ -91,6 +100,9 @@ export function parseMessagePayload(raw: string | null): ParsedMessagePayload {
kind: 'text',
text: typeof t.text === 'string' ? t.text : '',
attachments: Array.isArray(t.attachments) ? t.attachments : [],
...(typeof t.expireMs === 'number' && t.expireMs > 0
? { expireMs: t.expireMs }
: {}),
};
}
} catch {