Commit Graph
100 Commits
Author SHA1 Message Date
Simon Ser 982a945932 Fix TypeError in handleBufferScrollTop
Fixes the following:

    TypeError: client is undefined
2021-05-25 14:28:48 +02:00
Simon Ser ed92c3c61a Clear local storage when clicking "Disconnect" 2021-05-25 12:57:40 +02:00
Simon Ser 811984878c Switch to query params for msgid/timestamp in irc:// URLs
The hash is confusing because channels often start with a # too.
Instead, use a query parameter. This is consistent with [1], which
uses query params for the channel key.

[1]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
2021-05-25 12:46:00 +02:00
Simon Ser 9e163b7647 Switch it isuser in irc:// URLs
This is what the most recent draft [1] uses.

[1]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
2021-05-25 12:42:24 +02:00
Simon Ser 07c10b3b1f Only switch to autojoin channel once 2021-05-25 12:40:33 +02:00
Simon Ser f943d8ea15 readme: update IRC channel 2021-05-25 12:35:43 +02:00
Simon Ser d261886199 Add support for config file
Closes: https://todo.sr.ht/~emersion/gamja/20
2021-05-25 12:33:22 +02:00
Simon Ser e0cde27d66 Add simple /mode command 2021-05-23 11:41:04 +02:00
Simon Ser 22e54dac56 Update dependencies
Fixes a security vuln.
2021-05-17 09:52:42 +02:00
Simon Ser f122e44e9b Use ISUPPORT CHATHISTORY to discover max page size 2021-05-11 16:10:50 +02:00
Simon Ser 305ffb569c Parse ISUPPORT tokens in client 2021-05-11 16:03:16 +02:00
Simon Ser e242d5222e Fix TypeError in App.render()
Fixes the following error:

    Uncaught (in promise) TypeError: activeBuffer is undefined
2021-05-10 15:09:49 +02:00
Simon Ser 870a9b6be5 Add CSS for email fields 2021-04-27 12:25:57 +02:00
Simon Ser 5b29e2656e Improve dark theme style for text inputs 2021-04-27 11:23:44 +02:00
Simon Ser 727331c859 Remove client from map on disconnect 2021-03-10 11:01:04 +01:00
Simon Ser 4991518ed5 Display error popup on FAIL 2021-03-09 21:48:04 +01:00
Simon Ser 97e75805fa Add some space between error message and close button 2021-03-09 21:47:39 +01:00
Simon Ser d0b5f63a22 Move dialog submit buttons to the right 2021-03-09 19:08:16 +01:00
Simon Ser 88c0e5ae94 Break long tag attributes on multiple lines
Makes that stuff more readable.
2021-03-09 18:11:59 +01:00
Simon Ser 8ab10cf2a5 lib/irc: escape/unescape everything in tags
Without the greedy flag on the regexp, String.replace will just
replace the first match.

While at it, also make sure to convert to a string when formatting
tag values. This allows tag values to be e.g. numbers.
2021-03-09 17:40:57 +01:00
Simon Ser 2d4409e7aa lib/irc: accept tags without value 2021-03-09 17:31:12 +01:00
Simon Ser 4257463b46 Rename Connect/Join to ConnectForm/JoinForm 2021-03-09 13:25:31 +01:00
Simon Ser c83a74cc50 Cleanup compareBuffers 2021-03-09 12:04:12 +01:00
Simon Ser 5fea13df0a Trigger client error if server doesn't support SASL 2021-03-09 09:44:48 +01:00
Simon Ser 56e705b6de Only switch buffer on connect if there's no active buffer 2021-03-09 09:38:55 +01:00
Simon Ser bf30038b41 Fix whitespace issues 2021-03-09 09:17:01 +01:00
Simon Ser bc45fce557 readme: add IRC discussion channel 2021-03-08 19:04:38 +01:00
Simon Ser 6c5f4f73df readme: document query params 2021-03-08 19:02:31 +01:00
Simon Ser 7139e4511b Remove unused DEFAULT_NETWORK constant 2021-03-08 17:34:00 +01:00
Simon Ser ed5a771ea0 Fix overflowed dialogs 2021-03-08 17:26:51 +01:00
Simon Ser 78f22fce4e Add help section for commands 2021-03-08 17:25:00 +01:00
Simon Ser 17a2d48b2e Add help dialog with keybindings reference 2021-03-08 17:05:48 +01:00
Simon Ser 30157383e8 Add dialog for join form 2021-03-08 16:23:16 +01:00
Simon Ser 996d7d06d4 Extract error message popup 2021-03-08 15:05:43 +01:00
Simon Ser 194168c062 Display server messages in server buffer
References: https://todo.sr.ht/~emersion/gamja/21
2021-03-08 14:27:05 +01:00
Simon Ser 718929f0d2 Sort commands by name 2021-03-07 21:06:26 +01:00
Simon Ser 6c0878eeac Remove duplicate command impl 2021-03-07 21:03:52 +01:00
Simon Ser 6430fa252a lib/client: log close code 2021-03-03 18:30:15 +01:00
Simon Ser aa79067179 lib/client: extract fetchBatch function from roundtripChatHistory 2021-03-03 14:13:05 +01:00
Simon Ser 3ece5f1ca5 Fix buffer not removed in close() 2021-03-03 09:59:40 +01:00
Simon Ser ae914d4106 Fix buffer refs in commands 2021-03-03 09:58:09 +01:00
Simon Ser 72977b30b4 Log errors to console on command failure 2021-03-03 09:56:23 +01:00
Simon Ser eaf3b0a5ac Fix TypeError when clicking on nick in buffer 2021-03-03 09:41:19 +01:00
Simon Ser 3536331f94 lib/client: throw error in send if disconnected 2021-03-03 09:37:26 +01:00
Simon Ser 8a5fa4d5c2 lib/client: reset state when websocket is closed 2021-03-03 09:36:48 +01:00
Simon Ser 80e0175d36 Make all resource paths relative
Closes: https://todo.sr.ht/~emersion/gamja/17
2021-03-02 22:46:48 +01:00
Simon Ser a5608a40d5 Fix server URL field not auto-populated 2021-03-02 22:46:15 +01:00
Simon Ser 81f3159e8f Make date separators more readable 2021-03-02 22:17:52 +01:00
Simon Ser 525df515bc Fix messages in current buffer not marked as read 2021-03-02 21:29:13 +01:00
Simon Ser a83d3f7425 Improve scroll position save/restore mechanism 2021-03-02 20:48:49 +01:00
Simon Ser 6c40561f61 Move join button to buffer header 2021-03-02 16:14:55 +01:00
Simon Ser b0a3cd23e4 Fix inverted condition in fetchHistoryBefore 2021-01-23 12:23:30 +01:00
Simon Ser 4d540d55ac Fix undefined CHATHISTORY_PAGE_SIZE 2021-01-23 12:19:40 +01:00
Simon Ser bfc0960200 Use buffer ID in BufferItem.onBufferClick 2021-01-22 21:43:58 +01:00
Simon Ser 0e078932c0 Harmonise client connection params 2021-01-22 21:00:39 +01:00
Simon Ser 1f640a4010 Log WebSocket constructor error in the console 2021-01-22 20:59:17 +01:00
Simon Ser 987f0b3389 Spread it like butter 2021-01-22 20:58:57 +01:00
Simon Ser 430373dd13 Move chat history operations into Client 2021-01-22 18:51:38 +01:00
Simon Ser 4e1f06b960 Move auto-reconnect logic into Client 2021-01-22 18:44:06 +01:00
Simon Ser 41cd2153cf Keep track of client status in Client 2021-01-22 18:29:22 +01:00
Simon Ser 0261bc11e7 Delay Client error event
Right now the caller won't receive the event, because it's triggered
before the function returns.
2021-01-22 17:50:52 +01:00
Simon Ser 2f70256037 Multiple clients per app 2021-01-22 17:36:53 +01:00
Simon Ser 95daea0ef7 Use buffer IDs in endOfHistory 2021-01-22 15:49:22 +01:00
Simon Ser 06eb639ee9 Convert caps to lower case 2021-01-22 12:27:32 +01:00
Simon Ser df2b46175a Fix composer not hidden in server buffer 2021-01-22 12:05:45 +01:00
Simon Ser e6592d7d8b Print current connection status 2021-01-22 11:53:17 +01:00
Simon Ser 51523f4014 Extract network name from ISUPPORT 2021-01-22 11:43:47 +01:00
Simon Ser b3f8b0c97d Add support for RPL_ISUPPORT 2021-01-22 11:34:04 +01:00
Simon Ser 4acacc1f22 Nuke DEFAULT_NETWORK 2021-01-22 10:49:08 +01:00
Simon Ser 6cb2dd59de Remove network from map when closing 2021-01-22 10:41:28 +01:00
Simon Ser 3975467764 Drop state.activeNetwork
Just grab it from state.activeBuffer's network.
2021-01-22 10:38:07 +01:00
Simon Ser d2ff88d946 Sort buffers by network 2021-01-22 10:37:58 +01:00
Simon Ser 002b91a599 Take buffer ID in close 2021-01-22 10:26:53 +01:00
Simon Ser ffed801b0e Take a buffer ID in switchBuffer 2021-01-21 22:15:33 +01:00
Simon Ser dd35f1df95 Take a buffer ID in getBuffer 2021-01-21 22:02:53 +01:00
Simon Ser 50ea6e121e Introduce buffer IDs 2021-01-21 20:41:44 +01:00
Simon Ser abc2fbcfb1 Add network to buffer state 2021-01-21 19:27:04 +01:00
Simon Ser 5a1e6ba813 Introduce state.networks 2021-01-21 19:01:50 +01:00
Simon Ser 218b131608 Update preact 2021-01-12 16:04:49 +01:00
Simon Ser f35f316577 Add disconnect/reconnect commands 2021-01-12 10:35:38 +01:00
Simon Ser 4b165054a4 Reconnect when loosing connection 2021-01-11 18:12:28 +01:00
Simon Ser 57ca2c44ad Add unread message separator
Closes: https://todo.sr.ht/~emersion/gamja/4
2020-09-03 11:51:52 +02:00
Simon Ser 0b03f9d767 Ignore RPL_TOPICWHOTIME
We don't need this piece of information yet, and we don't want to
clutter the server buffer with channel messages.
2020-09-03 11:36:08 +02:00
Simon Ser 516de5b3ea Better handle registration errors 2020-08-25 11:42:40 +02:00
Simon Ser b23f55a840 Format NOTICE messages differently
Use dashes instead of angle brackets for NOTICE to be able to tell them
apart from regular PRIVMSG messages.
2020-08-17 15:08:37 +02:00
Simon Ser 0f2d1c3e71 Add date separators to buffer
Closes: https://todo.sr.ht/~emersion/gamja/5
2020-08-13 19:00:56 +02:00
Simon Ser bce216b7fb Parse all CTCP messages
We display them nicely, however we never reply to them.
2020-08-13 16:04:39 +02:00
Simon Ser 012b9f515a Make Alt+a fallback to server buffer 2020-08-13 15:41:38 +02:00
Simon Ser 028382aab3 Strip ANSI sequences from notifications text 2020-08-13 15:38:12 +02:00
Simon Ser 8fa91f7c4a Don't send CHATHISTORY command if server doesn't support it 2020-08-13 12:18:52 +02:00
Simon Ser 9cc44fbe98 Display messages with a highlight differently 2020-08-13 12:02:05 +02:00
Simon Ser 917b348992 lib/irc: make isHighlight operate on messages
Makes it easier to re-use elsewhere.
2020-08-13 11:44:41 +02:00
Simon Ser 11660e4409 Add /notice command 2020-08-13 11:04:39 +02:00
Simon Ser 9df58971ea Improve SASL error message 2020-08-10 15:01:48 +02:00
Simon Ser c6c3c66fc4 Clear error when submitting connect form 2020-08-10 14:57:54 +02:00
Simon Ser 96c890f1f5 Strip ANSI escape sequences
References: https://todo.sr.ht/~emersion/gamja/11
2020-08-04 14:25:05 +02:00
Simon Ser b37dfb77fe Fix inverted channel list sorting 2020-08-04 13:47:27 +02:00
Simon Ser 0157dd4cc6 Handle RPL_NOTOPIC 2020-08-03 18:59:54 +02:00
Simon Ser aaa33d7f36 Add Alt+Up/Down key bindings 2020-08-03 15:49:30 +02:00
Simon Ser 6c93bd13d1 Sort buffers when inserting, not when rendering
This allows all state.buffers users to iterate over the list in the
correct order.
2020-08-03 15:43:20 +02:00