Commit Graph
100 Commits
Author SHA1 Message Date
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
Simon Ser ee8b40aae4 Fix wrong variable name App.close 2020-08-03 15:29:21 +02:00
Simon Ser 67f6f99862 readme: add screenshot 2020-07-24 09:51:02 +02:00
Simon Ser 78140240cc Add keybinding to jump to next unread buffer 2020-07-23 10:14:11 +02:00
Simon Ser 2951c7810f Add keybinding infrastructure 2020-07-23 10:06:12 +02:00
Simon Ser 4d3a1548fe readme: add links to mailing list and issue tracker 2020-07-22 19:49:28 +02:00
Simon Ser 82e2cc2a38 Add .editorconfig 2020-07-22 14:51:37 +02:00
Simon Ser e041129a10 Use msgid in message URL if available 2020-07-21 14:48:04 +02:00
Simon Ser 0d9f7f35f0 Add message URLs, unify URL generation 2020-07-15 18:47:33 +02:00
Simon Ser 36df984b09 Fetch all unread messages on reconnect 2020-07-15 18:21:09 +02:00
Simon Ser 3b0253855e Mark FAIL as an error 2020-07-15 11:07:28 +02:00
Simon Ser a44ee8d170 Avoid sending multiple CHATHISTORY commands in parallel 2020-07-13 17:40:52 +02:00
Simon Ser 897e0977e2 Autocomplete commands 2020-07-13 17:28:49 +02:00
Simon Ser 476c135379 Extract commands to separate file 2020-07-13 17:22:24 +02:00
Simon Ser 9312edc20e Linkify topic 2020-07-13 13:00:49 +02:00
Simon Ser 343455091c Show offline user status
When the WHO reply is empty, it means user isn't connected to IRC.
2020-07-13 12:55:39 +02:00
Simon Ser 5090165f71 Hide horizontal scrollbars on Firefox
Firefox shows horizontal scrollbars when the member list overflows.
2020-07-13 11:44:24 +02:00
Simon Ser f284468aa6 Add shouldComponentUpdate to member list 2020-07-13 11:09:16 +02:00
Simon Ser b40fc76e82 Use strict equality comparison in shouldComponentUpdate 2020-07-13 11:03:34 +02:00
Simon Ser 2941dc0076 Fix TypeError in Composer.focus
Uncaught (in promise) TypeError: this.textInput.current is null
2020-07-13 09:45:30 +02:00
Simon Ser c9b07efc9c Implement chathistory support 2020-07-10 14:37:38 +02:00
Simon Ser 8809fdcd6a Optimize Buffer
Convert to classes and implement shouldComponentUpdate to avoid
re-rendering elements unnecessarily.
2020-07-09 23:36:03 +02:00
Simon Ser 0a825547a7 Don't use this in functional components
This works in preact, but doesn't with react.
2020-07-09 23:35:47 +02:00
Simon Ser 5cb38a9830 Implement /topic command 2020-07-09 17:36:28 +02:00
Simon Ser 44b1f28cb6 Handle QUIT messages 2020-07-08 18:39:24 +02:00
Simon Ser 8d2632ad9c readme: add link to sr.ht hub project 2020-07-02 11:03:16 +02:00
Simon Ser 7f0ca72d3e Remove outdated TODO 2020-07-02 11:02:29 +02:00
Simon Ser 72c51b6923 readme: add more detailed usage instructions 2020-07-01 14:46:49 +02:00
Simon Ser c309d3cff6 Allow paths in server URL query param 2020-07-01 12:25:57 +02:00
Simon Ser db13f34a40 Reply to PING 2020-07-01 12:12:56 +02:00
Simon Ser 1131ca05ee Only nag about notifications in server buffer 2020-07-01 11:58:30 +02:00
Simon Ser 2eb1ed3dd2 Fix RPL_NAMREPLY handling with multiple nicks 2020-06-30 10:27:24 +02:00
Simon Ser 99004165f2 Print IRC error messages in red 2020-06-29 14:29:31 +02:00
Simon Ser 20be67503b Add basic autocompletion 2020-06-29 12:36:17 +02:00
Simon Ser 2f284f183a Open notification on new highlight 2020-06-29 11:50:42 +02:00
Simon Ser abece1e3fd Detect highlights 2020-06-29 11:08:47 +02:00
Simon Ser ed6dccbb58 Hide composer input outline 2020-06-29 10:16:47 +02:00
Simon Ser b74fb90d47 Add button to join new channel 2020-06-29 10:12:46 +02:00
Simon Ser 28e96e0ad5 Expand buffer column
In some cases it wouldn't take all of the available space.
2020-06-29 09:04:21 +02:00
Simon Ser deb8d4c01e Avoid String.prototype.replaceAll
Not well supported in web browsers, except Firefox.
2020-06-28 15:40:57 +02:00
Simon Ser 73f14f38fa Add key attr to log lines 2020-06-28 15:13:06 +02:00
Simon Ser d1663315e3 Add reason arg to /part 2020-06-28 09:32:03 +02:00
Simon Ser 59b98d38ac Implement /me 2020-06-28 09:29:39 +02:00
Simon Ser 15c51d9ec7 Rename sidebar and topbar 2020-06-26 15:16:07 +02:00
Simon Ser 1b0ac4339f Listen to input evbent in composer
Avoids having the pending text removed when re-rendering the component.
2020-06-26 14:57:34 +02:00
Simon Ser 0aa8cca483 Enable echo-message 2020-06-26 14:50:29 +02:00
Simon Ser 9d7704ea54 Set key attr in buffer list items 2020-06-26 14:41:03 +02:00
Simon Ser 028c6fd8b3 Sort buffers and members 2020-06-26 14:40:27 +02:00
Simon Ser 806686bd49 Add member list 2020-06-26 14:32:56 +02:00
Simon Ser 0bd2e10631 Add away indicator 2020-06-26 12:45:27 +02:00
Simon Ser c59a8ff63c Request caps on CAP NEW 2020-06-26 12:37:45 +02:00
Simon Ser 1807f29d2d Parse RPL_MYINFO 2020-06-26 12:08:14 +02:00
Simon Ser 57ed3a13a3 Send WHO query when opening nick buffer 2020-06-26 12:00:10 +02:00
Simon Ser 74b720c131 Convert server/channel/nick links to irc:// scheme 2020-06-26 11:07:01 +02:00
Simon Ser 6d3621e1be Introduce buffer type 2020-06-26 10:35:38 +02:00
Simon Ser 5f30662fc0 Implement /buffer 2020-06-25 21:47:31 +02:00
Simon Ser 7a1d9c48cc Fix unclickable nick in NICK message 2020-06-25 21:28:04 +02:00
Simon Ser c05af5bb6d Make nick links clickable 2020-06-25 18:45:41 +02:00
Simon Ser 4485950b67 Add missing buffer-header.js 2020-06-25 18:30:21 +02:00
Simon Ser 3e33999619 Add buffer header
Only for channels for now
2020-06-25 18:28:54 +02:00
Simon Ser 2bb8f68f6f Linkify messages 2020-06-25 17:27:24 +02:00
Simon Ser 78002c22ee Fix buffer and buffer list padding 2020-06-25 14:26:33 +02:00
Simon Ser f8c4d1746c Fix buffer list overflow 2020-06-25 14:21:21 +02:00
Simon Ser 96aab8042e Change buffer list style 2020-06-25 12:41:31 +02:00
Simon Ser a475b6d844 Hide CAP and AUTHENTICATE messages in server buffer 2020-06-25 12:16:42 +02:00
Simon Ser 544303923c Save and restore buffer scroll position 2020-06-25 12:03:26 +02:00
Simon Ser 96f33019f8 Break long words in buffer 2020-06-24 20:44:45 +02:00
Simon Ser 9692f97c11 Set default connect params in App constructor
Fixes default params not populated in Connect component.
2020-06-24 18:14:46 +02:00
Simon Ser 34baafc77f Fix TypeError when auto-filling server URL 2020-06-24 17:52:24 +02:00
Simon Ser 80fee31f2c Fix unread indicator not showing up 2020-06-24 17:46:43 +02:00
Simon Ser 9223953e3a Store message date in addMessage 2020-06-24 17:16:49 +02:00
Simon Ser cbe76ab824 Mark buffers as unread on new message 2020-06-24 16:56:57 +02:00
Simon Ser 9ff1f164e0 Make setBufferState merge the new state with the prev one 2020-06-24 16:02:56 +02:00
Simon Ser 250d1c2ea7 Remove disconnect() 2020-06-24 15:57:21 +02:00
Simon Ser c1c9aa261e Implement /close 2020-06-24 15:56:30 +02:00
Simon Ser df0981e8e0 Add isChannel 2020-06-24 15:52:33 +02:00
Simon Ser f5106f1357 Fix missing channel name in setBufferState call 2020-06-24 15:45:55 +02:00
Simon Ser 0c79b9a3ee Add <noscript> message
Avoids a blank page when JS is disabled.
2020-06-24 15:43:19 +02:00
Simon Ser 61b0425128 Reset buffers on disconnect 2020-06-24 15:27:29 +02:00
Simon Ser d86c4a0566 readme: extend copyright holder 2020-06-24 14:56:22 +02:00
Simon Ser 575c367c7a readme: add usage 2020-06-24 14:55:49 +02:00
Simon Ser b449ace4b4 Switch to react
Under the hood, preact is used to reduce dependency size. We still don't
have a build stage, so htm is used instead of JSX.
2020-06-24 14:37:49 +02:00
Simon Ser 62300746d3 Remove assets/ 2020-06-24 11:18:51 +02:00
Simon Ser f9972dae5f Fix empty buffers on switch
Fixes: c6f9aae84c ("Fix TypeError when sending message")
2020-06-24 11:12:36 +02:00
Simon Ser eef5609dcf Introduce Client class 2020-06-23 20:00:49 +02:00
Simon Ser 65d675b461 Mark package as private 2020-06-23 17:33:32 +02:00
Simon Ser c6f9aae84c Fix TypeError when sending message 2020-06-21 16:26:41 +02:00
Simon Ser a1582dcc62 Switch to ES6 imports 2020-06-14 14:50:59 +02:00
Simon Ser 94a4563a45 Add dev server 2020-06-14 14:49:52 +02:00
Simon Ser 7f951e13bf Enable multi-prefix
We already support it.
2020-06-12 19:13:17 +02:00
Simon Ser 9ab72bdd44 Add support for server-time 2020-06-12 19:12:17 +02:00
Simon Ser 336ff377c3 Request message-tags cap 2020-06-12 18:56:08 +02:00
Simon Ser d4394498a2 Add support for message tags 2020-06-12 18:55:57 +02:00
Simon Ser b3bcd4d230 Move server URL to advanced options 2020-06-12 18:22:25 +02:00
Simon Ser ef23d44eed Add back form input for PASS 2020-06-12 18:19:59 +02:00
Simon Ser 69f0658b1e Add support for SASL PLAIN 2020-06-12 18:17:49 +02:00
Simon Ser 6787f90bdf Implement capability negociation
See [1].

[1]: https://ircv3.net/specs/core/capability-negotiation.html
2020-06-12 16:47:07 +02:00
Simon Ser dba59fe2c7 Keep track of channel members, add /nick command 2020-06-10 19:51:54 +02:00
Simon Ser 9a3409e970 Add support for TOPIC messages 2020-06-10 19:24:03 +02:00
Simon Ser e7a0274172 Add /msg command 2020-06-10 18:46:19 +02:00