Simon Ser
d2ac1e152a
Add more type checks for config.json
2021-10-09 09:57:54 +02:00
Simon Ser
8cc61bf577
lib/client: handle MONITOR without value in ISUPPORT
2021-10-07 21:49:54 +02:00
Simon Ser
4577f0a27f
components/buffer: pretty-print RPL_CHANNELMODEIS and RPL_CREATIONTIME
2021-10-06 12:12:49 +02:00
Simon Ser
19ee5553f6
components/buffer: add RPL_UMODEIS pretty-printing
2021-10-05 11:22:20 +02:00
Simon Ser
0b4302e059
Clear autojoin when loading autoconnect
...
This is handled by the buffer store.
2021-09-21 19:25:59 +02:00
Simon Ser
7bf9a0ca25
Auto-join previous channels on reconnect
...
Closes: https://todo.sr.ht/~emersion/gamja/47
2021-09-21 19:20:39 +02:00
Simon Ser
5c90764718
Upgrade dependencies
2021-09-21 18:50:59 +02:00
Simon Ser
65674cb45d
Narrow down syncBufferUnread to new buffers
...
syncBufferUnread might override the previous unread value.
Closes: https://todo.sr.ht/~emersion/gamja/105
2021-09-21 18:41:14 +02:00
Simon Ser
1dd55367e9
Send WHO queries for saved user buffers after ISUPPORT
...
This allows WHOX to be used.
2021-09-21 18:31:11 +02:00
Simon Ser
fdb90ec95d
Drop dangling var keyword
2021-09-21 18:26:42 +02:00
Simon Ser
184b29b6e3
Hide meaningless real names
2021-09-21 17:24:39 +02:00
Simon Ser
a9cfbcd6b6
Fix duplicate declaration in State.handleMessage
2021-09-21 17:24:13 +02:00
Simon Ser
da4da01e34
Query WHO when switching to a user buffer without info
...
Closes: https://todo.sr.ht/~emersion/gamja/101
2021-09-21 17:06:32 +02:00
Simon Ser
329f9063d0
Add support for WHOX
...
This allows querying the account of the user.
2021-09-21 16:58:00 +02:00
Simon Ser
0b32d9295a
Display account name
2021-09-21 15:38:59 +02:00
Simon Ser
d12e1109b3
Add support for account-notify
2021-09-21 14:49:32 +02:00
Simon Ser
8e631f97ef
Add tooltip with full date to timestamp component
2021-09-21 14:34:30 +02:00
Simon Ser
11878aaaa9
Add support for extended-join
2021-09-21 14:29:31 +02:00
Simon Ser
010009e3e0
Display username/hostname in member list
2021-09-21 14:19:30 +02:00
Simon Ser
3746095175
Update user username/hostname on JOIN
2021-09-21 14:12:07 +02:00
Simon Ser
ecb2ee041b
Update user on QUIT and NICK
2021-09-21 14:00:52 +02:00
Simon Ser
c66ce61029
Introduce per-server user map
...
This allows us to store information about users in a signle place,
instead of putting it in user buffers. This is required to display
metadata about users in the channel members list.
2021-09-21 13:33:15 +02:00
Simon Ser
e7f8620933
Add State.create()
2021-09-21 12:33:22 +02:00
Simon Ser
0b0467f019
lib/irc: drop CRLF for outgoing messages
...
Trailing CRLF must not be included in WebSocket messages.
Closes: https://todo.sr.ht/~emersion/gamja/104
2021-09-18 12:16:54 +02:00
Simon Ser
9f0177dea0
store: fix undefined load call in Buffer.clear
2021-09-13 10:33:14 +02:00
Simon Ser
f17d61ed86
lib/irc: fix formatMessage when last arg starts with colon
...
Fixes: a51be5037d ("lib/irc: only add colon to trailing arg when necessary")
2021-09-08 10:42:36 +02:00
Simon Ser
76f097e8a8
lib/client: error out on unsupported WebSocket data type
2021-09-06 17:15:52 +02:00
Simon Ser
beef13d273
lib/client: remove WebSocket error event handler
...
The error event handler is useless, because the error event is never
emitted without a close event, and doesn't give any details about
the error.
2021-09-06 17:11:28 +02:00
Simon Ser
ed41f08ba4
Get rid of a wild var keyword
2021-09-06 16:53:25 +02:00
Simon Ser
0137a95268
Add support for chghost
...
See https://ircv3.net/specs/extensions/chghost
2021-09-06 11:20:33 +02:00
Simon Ser
a51be5037d
lib/irc: only add colon to trailing arg when necessary
...
This mirrors go-irc's behavior:
https://github.com/go-irc/irc/blob/7ba1a1858f5ee2a44f18501b486ec11dd1990018/parser.go#L374
Closes: https://todo.sr.ht/~emersion/gamja/103
2021-09-06 10:52:06 +02:00
Simon Ser
c428e504fe
Don't show unread marker for outgoing messages
...
Closes: https://todo.sr.ht/~emersion/gamja/100
2021-08-30 10:27:24 +02:00
Simon Ser
c65ecd66eb
Avoid sending empty MONITOR command on startup
...
Closes: https://todo.sr.ht/~emersion/gamja/102
2021-08-30 10:14:05 +02:00
Simon Ser
73a2bcab94
Update buffer store when marking all buffers as read
2021-08-25 08:47:35 +02:00
Simon Ser
77683937d7
Narrow down syncBufferUnread call to self-JOIN
2021-08-25 08:46:37 +02:00
Simon Ser
4278265c65
Open new buffer on self-message
...
Closes: https://todo.sr.ht/~emersion/gamja/96
2021-08-24 14:46:51 +02:00
Simon Ser
8a5e52ed9a
Rename buffer lastReadReceipt to prevReadReceipt
...
This field is intentionally behind the latest read receipt. Let's
rename it to make that clearer.
2021-08-24 14:01:57 +02:00
Simon Ser
6e59a77672
Don't drop unread marker in addMessage
...
Closes: https://todo.sr.ht/~emersion/gamja/76
2021-08-24 13:59:33 +02:00
Simon Ser
b14cddc0d0
Ignore server buffer in latestReceipt
...
When we've received RPL_WELCOME, latestReceipt will return the
current time if we don't filter out the server buffer.
2021-08-24 13:49:25 +02:00
Simon Ser
e283d9c7ab
Add support for MONITOR
2021-08-24 12:53:46 +02:00
Simon Ser
dd67e0789e
Auto-complete channel names
...
Closes: https://todo.sr.ht/~emersion/gamja/84
2021-08-23 15:21:24 +02:00
Simon Ser
aa9ce73d5a
Restore channel unread status from local storage
...
Closes: https://todo.sr.ht/~emersion/gamja/75
Closes: https://todo.sr.ht/~emersion/gamja/89
2021-08-23 14:17:58 +02:00
Simon Ser
c470c9f2c0
Fix typo
2021-08-23 12:31:11 +02:00
Simon Ser
c47af780f6
Restore user query buffer unread status
2021-08-23 12:25:43 +02:00
Simon Ser
016ca27f2d
Restore opened user query buffers
...
Closes: https://todo.sr.ht/~emersion/gamja/93
2021-08-23 12:02:36 +02:00
Simon Ser
4dd1fac002
Hide buffer focus outline
2021-08-18 08:55:23 +02:00
Simon Ser
2fb4393f24
store: remove dead code
2021-07-30 18:01:42 +02:00
Simon Ser
d18cbbafb0
composer: focus on paste
2021-07-21 19:48:09 +02:00
Simon Ser
c98ad539d5
Add message arg to /query
...
Closes: https://todo.sr.ht/~emersion/gamja/94
2021-07-21 15:21:58 +02:00
Simon Ser
51883292f9
lib/client: fix caps with equal sign in value
...
CAP=a=b wouldn't parse correctly.
2021-07-04 22:26:31 +02:00
Simon Ser
5b53fb6fe9
connect-form: improve HTML indentation
2021-07-04 21:51:42 +02:00
Simon Ser
a1d79cda4b
Drop ConnectForm key
2021-07-04 21:43:47 +02:00
Simon Ser
52ddda4e82
Unify dialog data in App.state
2021-07-04 21:41:36 +02:00
Simon Ser
af1e2e144a
Hide everything while loading config.json
2021-07-04 21:29:15 +02:00
Simon Ser
dee9e06b2f
connect-form: focus nickname input
2021-07-04 21:28:45 +02:00
Simon Ser
7b11b10955
Add /whowas command
2021-07-03 19:24:20 +02:00
Simon Ser
00eebc9859
composer: cycle through auto-completions
...
Closes: https://todo.sr.ht/~emersion/gamja/42
2021-06-30 22:20:40 +02:00
Simon Ser
08aefc9dc5
composer: add smart suffix after auto-completion
...
Append a space after a command name, so that arguments can be typed
directly. Append a colon after a nickname.
2021-06-30 21:56:45 +02:00
Simon Ser
856dd021e2
composer: auto-complete word at carret position
2021-06-30 21:50:55 +02:00
Simon Ser
b289fd10b7
Always mark own messages as read
2021-06-24 18:04:26 +02:00
Simon Ser
429450e060
Handle RPL_INVITING
2021-06-24 18:01:24 +02:00
Simon Ser
0fa6381c07
Preserve white space sequences in log lines
...
This allows e.g. the MOTD to have properly-formatted ASCII art.
2021-06-24 10:41:48 +02:00
Simon Ser
bc05fd5c11
Treat server broadcasts as highlights
2021-06-23 19:52:45 +02:00
Simon Ser
095006e961
Don't focus composer on key press if modifier is also pressed
2021-06-22 17:25:24 +02:00
Simon Ser
0d36e8a3fc
Turn dialog close button into a <button>
...
This is semantically more correct.
2021-06-22 16:02:55 +02:00
Simon Ser
1ea3180f5b
Use semantically more correct elements for error bubble
2021-06-22 15:48:42 +02:00
Simon Ser
724d7318cf
Focus buffer scrollview instead of composer
...
Instead of focusing the composer, focus the buffer scrollview when
switching to a buffer. This allows keyboard navigation to work as
expected, with arrow up/down and page up/down scrolling the buffer
instead of doing nothing.
Focus back the composer when a KeyboardEvent produces text. This
allows users to start typing a message right after switching to a
buffer.
Closes: https://todo.sr.ht/~emersion/gamja/64
2021-06-22 14:47:39 +02:00
Simon Ser
dc8f95c74d
Improve composer form indentation
2021-06-22 13:38:05 +02:00
Simon Ser
7d15525c7d
Allow resetting nick and auto-join with query params
2021-06-22 10:44:20 +02:00
Simon Ser
ca8649c506
Add web app manifest
...
We'll need this to register protocol handlers.
2021-06-22 10:42:16 +02:00
Simon Ser
c187eac3c8
lib/client: reject Client.roundtrip promise on disconnect
2021-06-21 00:18:17 +02:00
Simon Ser
f8060c9be2
Allow resetting server URL with query param
2021-06-20 13:00:40 +02:00
Simon Ser
2203553519
Use cursor pointer for buttons
...
I'm usually not a fan of changing the default browser styles for
things like the cursor image, but here it actually improves
accessibility: it's clearer for the user what can be clicked on.
Closes: https://todo.sr.ht/~emersion/gamja/81
2021-06-11 14:46:45 +02:00
Simon Ser
f875426826
Add /unvoice
2021-06-11 13:02:04 +02:00
Simon Ser
0b3f5ef88b
Add irc.forEachChannelModeUpdate helper
2021-06-11 12:54:42 +02:00
Simon Ser
37cff435a3
Move MODE state updates outof App
2021-06-11 12:44:14 +02:00
Simon Ser
ef50e62498
Add STATUSMSG indicator
...
Closes: https://todo.sr.ht/~emersion/gamja/65
2021-06-11 11:18:29 +02:00
Simon Ser
d19f127952
Move message key generation to State.addMessage
2021-06-11 10:58:09 +02:00
Simon Ser
c05dcffa7a
readme: s/bare-bones/simple/
...
We used to be bare-bones, we're a little bit more than that now.
2021-06-11 10:19:46 +02:00
Simon Ser
02ba4be438
Don't try to reconnect if the network is down
2021-06-11 09:36:11 +02:00
Simon Ser
56c18e3810
Make "Remove network" button red
2021-06-11 00:33:22 +02:00
Simon Ser
4249da4ba8
Add /quiet and /unquiet
2021-06-11 00:27:19 +02:00
Simon Ser
5507b3253b
Mark server buffer as unread after server query command
...
When a command will print its reply in the server buffer, mark it
as unread to make it more obvious where to look.
Closes: https://todo.sr.ht/~emersion/gamja/53
2021-06-10 19:33:59 +02:00
Simon Ser
61e35dd68a
Bump direct message unread priority
2021-06-10 18:57:57 +02:00
Simon Ser
e56deb35c9
Ensure config has a server object
...
Simplifies code accessing the config.
2021-06-10 18:34:34 +02:00
Simon Ser
093eecff91
readme: make it clear server.url can be a path in config.json
2021-06-10 18:28:44 +02:00
Simon Ser
77030931cb
Reset config.server.auth when using custom server URL
2021-06-10 18:28:01 +02:00
Simon Ser
4df9328be8
Move auto-join field out of advanced options if pre-filled
...
Closes: https://todo.sr.ht/~emersion/gamja/82
2021-06-10 18:21:18 +02:00
Simon Ser
8972130252
s/var/let/
2021-06-10 18:11:11 +02:00
Simon Ser
4db845a4b1
Show again connect form when last server is closed
2021-06-10 18:06:45 +02:00
Simon Ser
6039e13411
Add notification tags
...
This makes it so multiple messages from the same user will only
produce a single notification.
2021-06-10 17:11:21 +02:00
Simon Ser
63773f99ee
Add Notification workaround for Chrome on Android
...
Closes: https://todo.sr.ht/~emersion/gamja/78
2021-06-10 17:08:24 +02:00
Simon Ser
a952742d86
Make Client.roundtripChatHistory return an array of messages
2021-06-10 12:47:28 +02:00
Simon Ser
5b0bb43a24
Make Client.fetchBatch more reliable
2021-06-10 12:43:09 +02:00
Simon Ser
ba92b3f677
lib/client: fix batch cleanup
2021-06-10 12:10:08 +02:00
Simon Ser
20f20b18df
Linkify MOTD
2021-06-10 12:09:07 +02:00
Simon Ser
02800dd21b
Don't open a new buffer on NOTICE
2021-06-10 12:07:17 +02:00
Simon Ser
dd8eca1cfe
Switch to server buffer on server name click
...
Closes: https://todo.sr.ht/~emersion/gamja/68
2021-06-10 12:03:50 +02:00
Simon Ser
d2e41666ad
lib/client: set a default server prefix
...
Set the default server prefix to "*". This allows the rest of the
code to assume all messages always have a prefix.
2021-06-10 11:53:53 +02:00
Simon Ser
e28769216a
Remove callback arg from App.createBuffer
2021-06-10 10:56:18 +02:00