Simon Ser
3a95fd5ba4
components/switcher-form: match topics and realnames
2023-06-14 11:52:54 +02:00
Simon Ser
44a064274d
Add buffer switcher
2023-06-08 15:07:28 +02:00
Simon Ser
fe016807da
components/help: fix typo for Ctrl key bindings
2023-06-08 12:15:53 +02:00
Simon Ser
a0ed50a8e2
Keep closed buffers in store
...
This retains their delivery receipts.
Closes: https://todo.sr.ht/~emersion/gamja/154
2023-06-08 11:54:16 +02:00
Simon Ser
2d651ef901
components/app: prevent multiple WHO channel commands in parallel
...
References: https://todo.sr.ht/~emersion/gamja/152
2023-04-19 12:56:12 +02:00
Simon Ser
535bdb2f52
Migrate to async/await
2023-04-19 12:51:13 +02:00
Simon Ser
57f64e9cc2
lib/irc: add formatURL
2023-04-19 11:43:45 +02:00
Simon Ser
2883234ff6
Don't perform OAuth redirection after server meteadata error
2023-03-10 14:14:37 +01:00
Giorgi Taba Kobakhidze
4f350ae223
components/app: ensure msg.tags is initialized
...
Fixes the following error when sending a message on a server
without echo-message:
Uncaught TypeError: t.tags is undefined
prepareChatMessage app.js:602
handleChatMessage app.js:616
privmsg app.js:1514
handleComposerSubmit app.js:1535
handleSubmit composer.js:30
Preact 15
handleMessage app.js:1013
connect app.js:791
handleMessage client.js:448
reconnect client.js:176
reconnect client.js:174
Yt client.js:151
connect app.js:754
handleConnectSubmit app.js:1279
handleSubmit connect-form.js:74
Preact 16
handleConfig app.js:382
<anonymous> app.js:238
promise callback* app.js:237
Preact 4
<anonymous> main.js:4
2023-02-17 23:36:46 +01:00
Simon Ser
f7459704f6
components/composer: focus composer on keydown if a link is active
...
Fixes message not typed after clicking on a link.
2023-01-31 18:28:51 +01:00
Juan Cruz Orioli
c547a32282
components: Use onInput instead of onChange
...
This is one of the differences between React and Preact:
https://preactjs.com/guide/v10/differences-to-react/#use-oninput-instead-of-onchange
Closes: https://todo.sr.ht/~emersion/gamja/128
2023-01-10 18:14:53 +01:00
Simon Ser
3f059567c5
Skip regular chat message handling for infinite scroll
...
Infinite scroll is special: it shouldn't trigger notifications.
Additionally we need to avoid sending on MARKREAD command per
message in the chathistory batch.
Split chat message handling into separate functions.
2022-11-30 12:23:12 +01:00
Simon Ser
4b306305bf
Move msg.tags fallback to client
2022-11-30 11:30:46 +01:00
Simon Ser
a172c810e9
Make first server check more robust when disconnecting
...
A disconnect/reconnect cycle will bump the server ID.
2022-11-30 11:21:54 +01:00
Simon Ser
ab3569e104
Close settings dialog when disconnecting
2022-11-30 11:18:23 +01:00
Simon Ser
24ba3f5189
Remove unnecessary whoChannelBuffer() call
...
switchBuffer() will do that already, no need to do it manually here.
We risk sending two duplicate WHO commands.
2022-10-23 20:21:27 +02:00
Simon Ser
90a2c91651
Load initial members state via WHO when channel is selected
...
Closes: https://todo.sr.ht/~emersion/gamja/13
2022-10-23 20:18:33 +02:00
Simon Ser
e815295503
Add support for OAuth 2.0 authentication
2022-10-14 10:52:44 +02:00
Simon Ser
84ca0a4408
components/connect-form: autofocus username field
2022-09-12 13:43:58 +02:00
Simon Ser
84b68308b9
components/app: switch off loading state atomically
...
Set connectParams together with loading, to avoid intermediate
state where loading = false but connectParams isn't set yet.
2022-09-12 13:42:44 +02:00
Simon Ser
4964782c30
Display error in loading state
2022-09-12 13:41:23 +02:00
Simon Ser
54e1fc93d9
Add config option to generate random nickname
...
Closes: https://todo.sr.ht/~emersion/gamja/136
2022-09-12 13:04:59 +02:00
Simon Ser
34d3bd6df9
Remove unnecessary if in App.handleConfig
...
config.json is merged with baseConfig. The latter is guaranteed
to contain a "server" field.
2022-09-12 09:54:38 +02:00
Simon Ser
a13f74d466
Disallow server.{autoconnect,auth} mismatch in config.json
...
This combination doesn't make sense.
2022-09-12 09:48:49 +02:00
Simon Ser
a603b79e33
components/buffer-list: show buffers with errors in red
2022-09-05 14:00:52 +02:00
Nolan Prescott
096fcbf829
Sort lists with localeCompare
...
The difference in case sensitivity is the most obvious change with
servers like soju that support CASEMAPPING ascii and
rfc1459. Currently the list:
'Alpha', 'aardvark', 'Charlie', 'comma'
currently sorts to:
'Alpha', 'Charlie', 'aardvark', 'comma'
with this change it will instead become:
'aardvark', 'Alpha', 'Charlie', 'comma'
If something like RFC 7613 gets broader support then there are a few
more differences for a list like:
'éclair', 'ecstatic, 'aardvark', 'zed', 'Gamma'
currently sorts to:
'Gamma', 'aardvark', 'ecstatic', 'zed', 'éclair'
with this patch would instead sort to:
'aardvark', 'éclair', 'ecstatic', 'Gamma', 'zed'
The above examples were run with a locale unspecified which fell back
to my browser/host default of 'en'.
2022-09-05 09:03:42 +02:00
Simon Ser
a2d2a11d44
Drop support for soju.im/read
...
It's been superseded by draft/read-marker.
2022-09-03 14:41:53 +02:00
Simon Ser
aa9aa78d71
Fix ignored MARKREAD messages
...
The prefix is a remnant of the soju extension. The IRCv3 one
doesn't have it.
Fixes: 1428ec4d49
("Add support for draft/read-marker")
2022-09-03 14:40:46 +02:00
Simon Ser
4780b9c709
Fetch read marker before backlog for user targets
2022-09-03 14:31:56 +02:00
Simon Ser
e7b69cec9a
Limit composer length
...
Often times IRC servers will truncate messages which are too big.
2022-08-28 19:16:41 +02:00
xse
cfbd91d257
Make use of destBuffers when fetching history.
...
Fixes an issue where messages intended to go on the server's buffer end up on their own
2022-08-22 12:46:03 +02:00
Simon Ser
7138e43710
Ignore RPL_CHANNEL_URL
2022-08-22 10:35:50 +02:00
Simon Ser
89647472ae
components/app: don't open buffer for CTCP messages
...
These are usually completely uninteresting messages, e.g. CTCP
VERSION or whatever.
2022-08-22 10:30:56 +02:00
Simon Ser
1428ec4d49
Add support for draft/read-marker
...
References: https://github.com/ircv3/ircv3-specifications/pull/489
2022-07-01 13:35:27 +02:00
Simon Ser
d0064dd647
components/buffer: show disclaimer for +draft/channel-context messages
2022-06-28 15:55:35 +02:00
delthas
b9693d53ec
Support @+draft/channel-context
...
See: https://github.com/ircv3/ircv3-specifications/pull/498
2022-06-28 15:33:38 +02:00
Simon Ser
f6ba40046f
components/buffer-header: fix duplicate settings button
2022-06-28 15:11:48 +02:00
Simon Ser
fa80a56516
Add button to enable protocol handler in settings
2022-06-27 17:01:15 +02:00
Simon Ser
7cabb6f85b
Add a setting for seconds in timestamps
2022-06-27 16:34:41 +02:00
Simon Ser
f0c398a10c
components/buffer-header: print bouncer network error if any
2022-06-09 15:54:29 +02:00
Simon Ser
baaf576d82
Add a settings dialog
...
Add an option to hide chat events or always expand them.
Closes: https://todo.sr.ht/~emersion/gamja/73
2022-06-08 16:57:16 +02:00
Simon Ser
e3c2d85a94
Fix ping config lost in ConnectForm
...
Reported-by: xse <xse@riseup.net>
References: https://lists.sr.ht/~emersion/public-inbox/patches/32126
2022-06-08 15:14:06 +02:00
Umar Getagazov
576b9d51eb
components/app: switch to server buffer on close only if active
...
If the buffer that's being closed is not the active one, there's no
point in switching the user away to another buffer.
2022-06-08 15:05:26 +02:00
Simon Ser
6b04cb1417
Add support for bot mode
...
References: https://ircv3.net/specs/extensions/bot-mode
2022-06-08 15:04:27 +02:00
Simon Ser
8507500d74
components/scroll-manager: don't crash when Buffer is empty
2022-04-22 12:32:54 +02:00
Simon Ser
cdd2da90a9
Update webpage title when switching buffer
2022-04-22 11:49:23 +02:00
Simon Ser
4a981997f0
Handle CHATHISTORY messages when reaching end of batch
...
Closes: https://todo.sr.ht/~emersion/gamja/115
2022-04-22 11:25:41 +02:00
Simon Ser
3dc98ec797
Convert remaining simple quotes to double quotes
2022-02-26 09:54:31 +01:00
Simon Ser
08578c9a21
components/app: fix missing semicolons
2022-02-21 15:26:12 +01:00
Simon Ser
37d7f4a1c5
Refactor backlog fetching into function
2022-02-13 15:34:11 +01:00