9273eb5f2e
P3-1: Message Bookmarks — right-click any message to bookmark; saved to io.lotus.bookmarks account data (max 500, syncs across devices); star icon in sidebar opens BookmarksPanel with filter, Jump-to-message, and remove buttons; reactive to AccountData events P3-2: Message Scheduling (MSC4140) — clock button next to send opens ScheduleMessageModal with datetime-local picker; validates ≥1 min future; calls PUT org.matrix.msc4140 delayed event API; collapsible ScheduledMessagesTray above composer lists pending messages with cancel; local Jotai atom tracks scheduled messages per room P3-3: File Upload Compression — opt-in checkbox per JPEG/PNG file ≥200KB in upload preview; canvas API compresses at 0.82 quality; shows before/ after size estimate; compressed blob used in upload when checked P3-7: Room Insights — new Insights tab in room settings; top 5 active members (bar chart), top 5 reactions (chips), media breakdown (4 tiles), 24-hour activity heatmap (CSS bar chart); all from local cache only with disclaimer banner; never the first tab shown Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
22 lines
407 B
TypeScript
22 lines
407 B
TypeScript
import { atom } from 'jotai';
|
|
|
|
export enum RoomSettingsPage {
|
|
GeneralPage,
|
|
MembersPage,
|
|
PermissionsPage,
|
|
EmojisStickersPage,
|
|
DeveloperToolsPage,
|
|
ExportPage,
|
|
ActivityLogPage,
|
|
ServerACLPage,
|
|
InsightsPage,
|
|
}
|
|
|
|
export type RoomSettingsState = {
|
|
page?: RoomSettingsPage;
|
|
roomId: string;
|
|
spaceId?: string;
|
|
};
|
|
|
|
export const roomSettingsAtom = atom<RoomSettingsState | undefined>(undefined);
|