Commit graph

572 commits

Author SHA1 Message Date
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
Simon Ser
bf76eaa669 Add State.createServer 2021-06-10 10:54:33 +02:00
Simon Ser
5fcbfa446c Use server buffer if name is unspecified in State.getBuffer 2021-06-10 09:25:17 +02:00
Simon Ser
41354d3035 lib/client: gracefully handle null in isMyNick/isChannel 2021-06-10 08:51:59 +02:00
Simon Ser
0705f4b182 lib/client: always populate prefix for incoming messages 2021-06-10 08:49:17 +02:00
Simon Ser
52ca3bb91c lib/linkify: add comma to punctuation in channel regex 2021-06-09 16:28:07 +02:00
Simon Ser
0c0f0ab79e Fix /me failing in user query buffers
This is a regression.
2021-06-09 10:17:32 +02:00
Simon Ser
2546d31af0 Blur the composer when hiding it
This should make toggling the composer in a server buffer more
reliable.
2021-06-07 15:18:15 +02:00
Simon Ser
a9c1abb064 Route channel mode and invite/except list to channel buffer 2021-06-07 14:13:00 +02:00
Simon Ser
dd753aab2e Add support for /mode without arguments 2021-06-07 14:12:49 +02:00
Simon Ser
5b7ab2652b Improve buffer header layout on mobile
Put buffer title above buffer description.
2021-06-06 17:27:05 +02:00
Simon Ser
a419e660c0 Don't match punctuation suffix when linkifying channels 2021-06-06 16:00:37 +02:00
Simon Ser
403d7ec7f7 Add case-mapping support to irc.isHighlight
Closes: https://todo.sr.ht/~emersion/gamja/77
2021-06-06 15:52:58 +02:00
Simon Ser
b9dc17db97 Disallow selecting text in <summary role="button">
This supersedes the cursor rule.
2021-06-06 12:08:21 +02:00
Simon Ser
6b75985f96 Make <summary> easier to click on Firefox Mobile
Add role=button to mark the element as a touch target.

Closes: https://todo.sr.ht/~emersion/gamja/80
2021-06-06 12:05:57 +02:00
Simon Ser
41c113be9a Show connect form during connection
This improves UX when the connection parameters (server URL,
username, password, and so on) are incorrect.
2021-06-06 11:33:00 +02:00
Simon Ser
48ae55942f Make @media queries whitespace consistent 2021-06-06 10:53:06 +02:00
Simon Ser
efabd69476 Increase buffer/member list item height on mobile
Closes: https://todo.sr.ht/~emersion/gamja/62
2021-06-06 10:46:41 +02:00
Simon Ser
0dfb7623db Add support for labeled-response
It's just used to avoid mixing up messages coming from the server
so far.
2021-06-04 20:38:01 +02:00
Simon Ser
34078d5da7 Add support for draft/event-playback 2021-06-04 19:45:51 +02:00
Simon Ser
651e255ddb Use ISUPPORT CHANTYPES in Client.isChannel 2021-06-04 19:17:39 +02:00
Simon Ser
db7aa337cb Remove App.isChannel
Replace all remaining usage with Client.isChannel. Client will be
able to use the ISUPPORT tokens to check if a name is a channel.
2021-06-04 19:13:59 +02:00
Simon Ser
87588abf27 Add State.addMessage 2021-06-04 19:07:14 +02:00
Simon Ser
04362644bf Handle TOPIC in State.handleMessage 2021-06-04 18:57:02 +02:00
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