Commit graph

341 commits

Author SHA1 Message Date
Simon Ser
30a345298f Handle JOIN/PART in State.handleMessage 2021-06-04 18:53:06 +02:00
Simon Ser
2af58f8d0b Move createBuffer to State 2021-06-04 18:37:34 +02:00
Simon Ser
2c1bb4ce6a Introduce State.handleMessage
Takes an IRC message, updates the state.

Doesn't yet handle all messages, this will be a step-by-step process.
2021-06-04 18:27:21 +02:00
Simon Ser
4d988cafeb Move some state utilities to state.js 2021-06-04 18:03:03 +02:00
Simon Ser
791b742684 Allow config.server.ping to be a String
Workaround for existing config files in the wild.
2021-06-04 17:50:49 +02:00
Simon Ser
6e20ad872e Add support for STATUSMSG
Closes: https://todo.sr.ht/~emersion/gamja/65
2021-06-03 13:31:43 +02:00
Simon Ser
3b5b693403 Use bufName in addMessage, fix missing Client.isMyNick() 2021-06-03 13:29:32 +02:00
Simon Ser
283f8af4b1 lib/irc: rename IRC prefix utilities 2021-06-03 13:18:28 +02:00
Simon Ser
04c9f0211a Fix undefined server variable in BufferHeader 2021-06-03 13:10:44 +02:00
Simon Ser
fe9c483570 s/network/server/
Closes: https://todo.sr.ht/~emersion/gamja/46
2021-06-03 11:46:50 +02:00
Simon Ser
63a71e5f5d Add support for incoming INVITE messages 2021-06-03 11:04:32 +02:00
Simon Ser
55882776b0 Make command descriptions more consistent 2021-06-03 10:28:04 +02:00
Simon Ser
291c9e177d Add /unban 2021-06-03 10:25:33 +02:00
Simon Ser
a2dc045683 Add getActiveChannel
Simplifies the command logic
2021-06-03 10:19:09 +02:00
Simon Ser
9067b5a168 Make getActiveClient throw an error if disconnected 2021-06-03 10:19:09 +02:00
Simon Ser
a4294975a2 Add support for /ban without argument 2021-06-03 10:19:09 +02:00
Simon Ser
5004f6c89c components/help: document that / allows to start writing a command 2021-06-02 22:53:28 +02:00
Simon Ser
91208a6d47 Add support for CHATHISTORY TARGETS
The main motivation is to avoid missing direct messages coming from
other users.

A nice side-effect is that we no longer need to issue CHATHISTORY
queries for each channel we JOIN: instead, we can only fetch
history for targets known to have new messages available (as indicated
by CHATHISTORY TARGETS).

We use read receipts instead of delivery receipts, so that reloading
the webapp restores the exact same state (ie, unread messages are
re-fetched).

References: https://github.com/ircv3/ircv3-specifications/pull/450
2021-06-02 20:37:20 +02:00
Simon Ser
74d9dea5bb Use RegExp match indices in linkifyChannel 2021-06-01 09:53:11 +02:00
Tom Lebreux
0bcd044f10 Linkify channel names 2021-06-01 09:37:35 +02:00
Simon Ser
9affdb894f Make Alt+ArrowUp and Alt+ArrowDown wrap around 2021-05-31 19:21:54 +02:00
Simon Ser
9224ab9d0d Set scrollbar style 2021-05-31 18:43:44 +02:00
Simon Ser
e38f35c578 Order buffers by priority in Alt+a 2021-05-31 18:26:04 +02:00
Simon Ser
958b6bf120 Set enterkeyhint in composer 2021-05-31 18:16:49 +02:00
Simon Ser
8c02cdc094 Hide server URL input if set in config or query
Closes: https://todo.sr.ht/~emersion/gamja/52
2021-05-31 18:13:44 +02:00
Simon Ser
04932317f6 Populate server URL in fillConnectParams 2021-05-31 18:11:33 +02:00
Simon Ser
4fff2b1b8d Unify connect params keys 2021-05-31 18:04:02 +02:00
Simon Ser
c632ef4339 Don't save default username/realname in local storage 2021-05-31 17:57:17 +02:00
Simon Ser
bc7162ebe2 Pretty-print buffer name in buffer header 2021-05-31 17:39:37 +02:00
Simon Ser
6e16163103 Re-fold HTML in BufferList 2021-05-31 17:34:36 +02:00
Simon Ser
ced63b0abc Print server status in header prior to RPL_MYINFO 2021-05-31 17:30:45 +02:00
Simon Ser
06ca812d06 Simplify Client.roundtrip callback arg 2021-05-31 17:14:46 +02:00
Simon Ser
619f1db08f Introduce Client.who 2021-05-31 17:11:42 +02:00
Simon Ser
02145b45ad Remove unused arg from Client.whois 2021-05-31 17:04:52 +02:00
Simon Ser
e271a3cd0e Add /who 2021-05-31 17:02:56 +02:00
Simon Ser
fff0907354 Make buffer title bold 2021-05-31 16:45:46 +02:00
Simon Ser
14dbb60aec Fix null membership on JOIN 2021-05-31 16:08:33 +02:00
Drew DeVault
be1ecf607d Display prefixes in member list
Closes: https://todo.sr.ht/~emersion/gamja/43
2021-05-31 15:56:08 +02:00
Simon Ser
e90c07e64e Remove unnecessary if in /ban
If whois info is unavailable, the promise is rejected.
2021-05-31 14:53:56 +02:00
Simon Ser
a6cdd64444 readme: document server.ping in config section 2021-05-31 14:48:51 +02:00
Simon Ser
2c1e4b7bea Fix commas in folded NICK messages 2021-05-31 14:08:30 +02:00
Simon Ser
e76e71c968 Fallback to first server buffer in Alt+a keybind
Previously we switched to the server buffer for the current network.
2021-05-31 13:24:23 +02:00
Simon Ser
ab11af3965 Init App.config 2021-05-31 12:26:57 +02:00
Simon Ser
b3d825c9d1 Hide composer when disconnected from server 2021-05-31 12:04:54 +02:00
Simon Ser
68753afb8e Ensure connect form has padding
Even on small screens.
2021-05-31 10:55:26 +02:00
Simon Ser
8fbc0a5c62 Fix Alt+h messing up all buffers 2021-05-31 10:46:41 +02:00
Simon Ser
b0671fe336 Group folded events by type 2021-05-31 10:35:34 +02:00
Simon Ser
ce239e5785 Improve FoldGroup key and shouldComponentUpdate 2021-05-31 10:35:34 +02:00
Simon Ser
8b20b463ff Display last event time when folding messages 2021-05-31 10:35:34 +02:00
Simon Ser
2bc89a6655 Filter out PART → JOIN pairs 2021-05-31 10:35:34 +02:00