ayn2op
|
cb4c82d3e1
|
perf(messageslist): keep each message's built view instead of rebuilding it on every draw (#850)
|
2026-10-18 22:40:59 -04:00 |
|
ayn2op
|
1bcd7650c8
|
build(markdown): add no_syntax_highlighting tag to build without chroma (#849)
|
2026-10-18 20:27:14 -04:00 |
|
ayn2op
|
bee05cbb25
|
refactor(ui): rename keybind funcs to *Keybind and move them to keymap.go
|
2026-10-18 19:15:49 -04:00 |
|
ayn2op
|
b46624796d
|
refactor(messageslist): draw embeds and the date separator as boxes
|
2026-10-18 19:11:30 -04:00 |
|
ayn2op
|
68ee346501
|
refactor(ui): drop custom widgets where tview's do the job, for the mentions, the login field labels and the composer
|
2026-10-18 19:11:30 -04:00 |
|
ayn2op
|
f25149a05e
|
build: update tview and tcell, with titles and footers as widgets styled by ui.Label
|
2026-10-18 19:11:30 -04:00 |
|
ayn2op
|
23b45b9c16
|
refactor(qr): draw the code centered with the image widget in a white margin, encoded once
|
2026-10-18 19:11:30 -04:00 |
|
ayn2op
|
b860df0a25
|
feat(messageslist): show custom emoji images in messages, with options to show their names
|
2026-10-17 17:52:12 -04:00 |
|
ayn2op
|
997a77c033
|
feat(messageslist): show custom emoji images in reactions, wrapped with a separator
|
2026-10-17 16:00:54 -04:00 |
|
ayn2op
|
805621bc2e
|
refactor: move to the tview text widget and go-uucode
|
2026-10-16 22:13:15 -04:00 |
|
ayn2op
|
03d1ef13d2
|
test(chat): set message fields directly on the create event
|
2026-10-16 19:04:04 -04:00 |
|
ayn2op
|
78c26e88fb
|
refactor: drop unused receivers and exports
|
2026-10-16 19:04:04 -04:00 |
|
ayn2op
|
f7bd6ef441
|
refactor: replace magic numbers with named constants
|
2026-10-16 18:52:34 -04:00 |
|
ayn2op
|
e38b7490ad
|
refactor(messageslist): split model into files by concern
|
2026-10-16 18:52:27 -04:00 |
|
ayn2op
|
25957fd3fd
|
refactor(ui): alias the keybinds config in key switches
|
2026-10-16 18:52:15 -04:00 |
|
ayn2op
|
12a4a6af48
|
refactor(ui): share one clipboard write command
|
2026-10-16 18:52:15 -04:00 |
|
ayn2op
|
b9e310e7fa
|
fix(markdown): fix nested lists and simplify the renderer
|
2026-10-16 18:52:15 -04:00 |
|
ayn2op
|
f8141b8f8d
|
refactor: break up long inline expressions
|
2026-10-16 18:52:15 -04:00 |
|
ayn2op
|
f9f53a0f55
|
build: regenerate config docs and build number
|
2026-10-16 18:15:44 -04:00 |
|
ayn2op
|
8c87531e75
|
refactor(voice): split nested expressions when seeking
|
2026-10-16 18:13:41 -04:00 |
|
ayn2op
|
9c1a39ca76
|
fix(voice): bound header slice when seeking truncated audio
|
2026-10-16 17:59:55 -04:00 |
|
ayn2op
|
f647d96fab
|
feat(config): allow audio attachments by default
|
2026-10-16 16:22:13 -04:00 |
|
ayn2op
|
3b28429a37
|
build(deps): migrate to goldmark v2
|
2026-10-16 00:32:26 -04:00 |
|
ayn2op
|
2d698f0c7e
|
refactor(http): drop custom transport and let the client set Accept-Encoding (#847)
|
2026-10-15 23:31:09 -04:00 |
|
ayn2op
|
39222f1073
|
ci: add golangci-lint
|
2026-10-15 21:00:02 -04:00 |
|
ayn2op
|
9320e20983
|
refactor(config)!: move the image protocol to the messages list for avatars and attachments
|
2026-10-15 19:58:45 -04:00 |
|
ayn2op
|
b03d757299
|
build: bump client build number
|
2026-10-15 19:52:09 -04:00 |
|
ayn2op
|
22d5af012e
|
feat(root): confirm before quitting
|
2026-10-15 19:52:09 -04:00 |
|
ayn2op
|
871f36759c
|
perf(messageslist): stop copying the model and message to the heap per item build
|
2026-10-15 19:38:27 -04:00 |
|
ayn2op
|
60aa5f52f1
|
feat(messageslist)!: group consecutive messages by the same author
|
2026-10-15 18:02:59 -04:00 |
|
ayn2op
|
3562b4d546
|
fix(messageslist): fetch older messages once on scrolling to the top
|
2026-10-15 16:50:37 -04:00 |
|
ayn2op
|
4b3e457e7c
|
fix(composer): check the thread send permission in a thread
|
2026-10-13 21:22:24 -04:00 |
|
ayn2op
|
95f5fb91a1
|
refactor(ui): hold widget state as plain values in the models
|
2026-10-13 19:03:59 -04:00 |
|
ayn2op
|
7e5c3dc62c
|
feat(messageslist): play voice messages by click and seek by dragging
|
2026-10-13 18:10:59 -04:00 |
|
ayn2op
|
bba502cba8
|
feat(messageslist): show avatar preview
|
2026-10-12 22:21:50 -04:00 |
|
ayn2op
|
5d518d7521
|
feat(messageslist): add compact and gap layout options
Closes #735
|
2026-10-12 19:38:49 -04:00 |
|
ayn2op
|
d9e9339bf6
|
feat(chat): confirm before logging out
|
2026-10-12 13:05:29 -04:00 |
|
ayn2op
|
71f2928ecd
|
fix(messageslist): focus No first when confirming a delete
|
2026-10-12 13:00:30 -04:00 |
|
ayn2op
|
ac05d55da9
|
fix(chat): show a dialog when the token is rejected
Closes #685
|
2026-10-12 12:53:49 -04:00 |
|
ayn2op
|
817306b1ad
|
fix(gateway): show the login when the token is rejected
Closes #843
|
2026-10-12 12:42:20 -04:00 |
|
ayn2op
|
4534f130b3
|
fix(messageslist): open only http and https links
|
2026-10-12 12:24:42 -04:00 |
|
ayn2op
|
6465a1c5f2
|
feat: play voice messages
Closes #493
|
2026-10-12 12:21:12 -04:00 |
|
ayn2op
|
95f247def8
|
feat(config): select up and down with the arrow keys
|
2026-10-11 18:58:34 -04:00 |
|
ayn2op
|
d0f53d0722
|
feat: implement voice support
Closes #166
|
2026-10-11 18:16:53 -04:00 |
|
ayn2op
|
688cb05f67
|
refactor(ui): move help keybinds to keymap.go
|
2026-10-09 18:29:39 -04:00 |
|
ayn2op
|
2e6fa88608
|
fix(ui): hide the tree's up and down keybinds at its ends
|
2026-10-09 18:29:39 -04:00 |
|
ayn2op
|
6449f7d470
|
refactor(ui): scroll the trees and lists with a viewport
|
2026-10-08 19:10:20 -04:00 |
|
ayn2op
|
715ed5aaeb
|
feat(config): add keybinds to scroll the trees
|
2026-10-08 17:42:35 -04:00 |
|
ayn2op
|
84835018c9
|
feat(config): generate docs/config.md from the config structs (#842)
|
2026-10-07 18:06:07 -04:00 |
|
ayn2op
|
534c4e3c64
|
refactor(config)!: move non-style theme options to [ui]
|
2026-10-07 15:37:03 -04:00 |
|