Simon Ser
8f29f0c35d
lib/client: ensure server prefix is never null
...
Fixes a null deref in handleChatMessage, because incoming message
prefixes are populated with the server's if null.
2023-08-17 10:45:56 +02:00
Simon Ser
3b383308d4
Send PING on window focus
...
References: https://todo.sr.ht/~emersion/gamja/148
2023-06-23 16:05:45 +02:00
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
10d988b891
store: fix undefined Unread
2023-06-08 12:09:24 +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
2f627eecad
state: handle WHO replies in bulk
2023-04-19 13:04:58 +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
57809be989
Upgrade dependencies
2023-04-04 19:10:10 +02:00
Simon Ser
6c26ee2156
store: fix clearing buffers for a specific server
2023-04-04 17:00:05 +02:00
Simon Ser
5db0105dbd
store: protect against dup buffers
2023-04-04 16:51:23 +02:00
Simon Ser
c8fda8ed53
store: stop matching server URL and nick
...
This was supposed to accomodate for multi-server support, but to
be honest this is out of scope for gamja.
Closes: https://todo.sr.ht/~emersion/gamja/151
2023-04-04 16:46:58 +02:00
Simon Ser
fd63c169ed
lib/client: encode empty SASL response as "+"
2023-03-21 17:57:09 +01:00
Simon Ser
2c3fbdd605
readme: document default for server.url in config.json
2023-03-13 20:36:47 +01: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
Simon Ser
c6024e643a
Upgrade dependencies
2023-01-16 12:10:31 +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
delthas
081f5743be
Fix stripping hex color formatting
...
Hex colors can be set with the same formats as the regular colors:
<CODE>, <CODE><COLOR>, or <CODE><COLOR>,<COLOR>.
Previously we only supporteed <CODE><COLOR>.
This patch enables stripping colors for all valid color formats.
Co-authored-by: Simon Ser <contact@emersion.fr>
2022-12-02 16:03:14 +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
dc5e64aaac
lib/client: unify checks for chathistory end
2022-11-30 10:17:50 +01:00
Simon Ser
2d27168529
Use ratified extended-monitor cap name
...
References: https://github.com/ircv3/ircv3-specifications/pull/508
2022-11-06 20:40:00 +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
bbc94c88c0
Upgrade dependencies
2022-09-18 20:08:13 +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
e6618c8a1f
Fix draft/read-marker cap not negotiated
...
Fixes: 1428ec4d49
("Add support for draft/read-marker")
2022-09-03 14:40:54 +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
e2dc32c0d3
Update dependencies
2022-07-11 21:02:12 +02:00