Simon Ser
3771b39979
doc/setup: improve gamja config instructions for webircgateway
2023-11-12 10:18:57 +01:00
Simon Ser
ca4b3575b1
Move docs to a separate directory
2023-11-12 10:09:50 +01:00
Simon Ser
68cb6c56c4
components/buffer: drop duplicate MONITOR events
2023-11-10 18:11:34 +01:00
Simon Ser
e0de4d1b36
Set targets.default.context in package.json
...
parcel doesn't auto-detect that field properly due to "engines".
Closes: https://todo.sr.ht/~emersion/gamja/158
2023-10-21 12:51:06 +02:00
Simon Ser
06f7cf9565
Fix ReferenceError when adding new bouncer network
...
Fixes the following:
ReferenceError: can't access lexical declaration 'client' before initialization
handleNetworkSubmit app.js:1868
2023-10-03 11:43:00 +02:00
Simon Ser
5e33919cce
Show MONITOR online/offline notifications in user buffers
...
We were only showing QUIT, which was weird because it wouldn't
say when the user becomes online again. Use MONITOR instead.
2023-08-25 13:10:05 +02:00
Simon Ser
97b5970acb
state: simplify MONITOR reply handling
2023-08-25 13:09:14 +02:00
Simon Ser
ffbbde7f28
Upgrade dependencies
2023-08-17 10:50:31 +02:00
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