aim.ts RawHistoryFolder

1import type { Id } from '../../convex/_generated/dataModel';
2
3export type AimStatus = 'online' | 'away' | 'busy' | 'idle' | 'offline';
4
5/** Public user shape returned by Convex queries (getUsersPublic, getMyBuddies…) */
6export interface AimUser {
7	id: Id<'users'>;
8	nickname: string;
9	status: AimStatus;
10	avatarUrl?: string | null;
11	lastSeen?: number | null;
12	awayMessage?: string;
13	createdAt?: number;
14}
15
16export interface Buddy extends AimUser {
17	group: string;
18	addedAt: number;
19}
20
21export interface DirectRoomSummary {
22	id: Id<'chatRooms'>;
23	other: AimUser | null;
24	lastMessage: { content: string; timestamp: number; senderId: Id<'users'> } | null;
25	unreadCount: number;
26}
27
28export interface GroupRoomSummary {
29	id: Id<'chatRooms'>;
30	name: string;
31	topic?: string;
32	createdAt: number;
33	isDefault: boolean;
34}
35
36export const DEFAULT_BUDDY_GROUPS = ['Buddies', 'Family', 'Co-Workers'] as const;
37
38export const STATUS_LABELS_FR: Record<AimStatus, string> = {
39	online: 'En ligne',
40	away: 'Absent',
41	busy: 'Occupé',
42	idle: 'Inactif',
43	offline: 'Hors ligne'
44};

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 3

Tags 9

↑↓ moveenter openesc close