Simon Ser
ada9ff3b71
components/buffer-header: fix missing "join" button for parted channel
2021-12-03 19:09:52 +01:00
Simon Ser
93ba0e6443
Disable debug logs in production
...
console.debug logs cause some performance issues because the browser
is forced to save the logged objects just in case the user opens the
debugging tools.
They can be force-enabled back by adding ?debug=1 to the URL.
Only console.debug is disabled, console.log and other levels are a lot
less verbose and still enabled by default.
2021-12-01 11:40:59 +01:00
Simon Ser
a1ff1be342
Mark auth dialog as loading
2021-11-30 16:05:08 +01:00
Simon Ser
47f56f06b9
Mark register/verify dialogs as loading
2021-11-30 15:49:52 +01:00
Simon Ser
1e84412172
Show "Manage network" even if upstream is disconnected
...
Fixes: 86853eb2e5
("components/buffer-header: hide action buttons when disconnected")
2021-11-30 15:29:24 +01:00
Simon Ser
451bb4c73f
Add link to verify account next to VERIFICATION_REQUIRED message
2021-11-30 15:13:34 +01:00
Simon Ser
be08302c1f
Add support for draft/account-registration
...
A new UI to register and verify accounts is added.
2021-11-30 14:59:44 +01:00
Simon Ser
c4a78283af
Linkify error messages
...
Sometimes servers will put links and channels in their error
messages. Make it easy for users to click them.
2021-11-29 13:38:07 +01:00
Simon Ser
25e69a551e
Clear channel joined field when disconnected
2021-11-29 11:44:45 +01:00
Simon Ser
86853eb2e5
components/buffer-header: hide action buttons when disconnected
2021-11-29 11:44:28 +01:00
Simon Ser
1800b6bea1
components/member-list: re-render on State.users update
2021-11-28 20:13:08 +01:00
Simon Ser
fcce340846
Dim away users in member list
...
References: https://todo.sr.ht/~emersion/gamja/13
2021-11-28 20:09:48 +01:00
Simon Ser
0d2067e33e
components/connect-form: replace auto-join text field with checkbox
...
The intent of the auto-join field is to ask the user whether they
really want to join the pre-filled channel. Users rarely want to
customize this field, they can just manually click "Join" after
connecting if they want to join another channel.
2021-11-27 12:08:23 +01:00
Simon Ser
3e309e9dfe
Ignore RPL_AWAY
2021-11-23 17:58:49 +01:00
Simon Ser
3e2ac307f6
Add post-connect UI to login via SASL
...
If the server supports SASL and if we aren't logged in with any
account, add a UI to authenticate via SASL. This allows users to
login anonymously then login via SASL.
This will also ease the draft/account-registration implementation.
2021-11-21 16:40:46 +01:00
Simon Ser
e37c2a2cec
Auto-dismiss client error on reconnect
...
References: https://todo.sr.ht/~emersion/gamja/74
2021-11-17 10:12:36 +01:00
Simon Ser
82e5a2795d
Properly handle port in irc:// URLs
2021-11-16 11:52:38 +01:00
Simon Ser
a0b250df3f
Reword ProtocolHandlerNagger message
2021-11-16 11:30:33 +01:00
Simon Ser
321140327e
Add UI to enable protocol handler
2021-11-16 11:19:25 +01:00
Simon Ser
195e4ca371
Don't stop fetching backlog on error
...
Some servers allow fetching history from some targets but not
others. Don't completely stop fetching chat history on error.
The root cause was a variable shadowing in Client.fetchBatch.
2021-11-10 09:53:17 +01:00
Simon Ser
94901f1662
Request WHO info w/ empty message list in switchBuffer
2021-11-08 15:03:05 +01:00
Simon Ser
9475ffb8c6
Don't auto-join without prompting user
2021-11-08 13:01:54 +01:00
Simon Ser
f3c48a3748
Add "open" URL param
...
This can be set to an irc:// URL to open. This is useful for
bouncers.
2021-11-08 12:33:02 +01:00
Simon Ser
14031c594b
Ask confirmation before JOIN on irc:// link click
2021-11-08 10:44:10 +01:00
Simon Ser
74fe6ee944
Auto-join when adding new network on irc:// link click
...
Closes: https://todo.sr.ht/~emersion/gamja/111
2021-11-07 19:47:49 +01:00
Simon Ser
a58befd6d7
s/var/let/
2021-11-07 13:51:39 +01:00
Simon Ser
38a3075a2c
Disconnect previous server on connect re-submit
2021-11-07 13:50:26 +01:00
Simon Ser
96dd8476ad
De-duplicate nicks in folded JOIN/PART/QUIT lines
2021-11-05 15:00:08 +01:00
Simon Ser
800f5ceb6a
Keep track of channel join status
...
This makes us behave better when we receive a self-PART message
from the server.
2021-11-05 11:49:56 +01:00
Simon Ser
50f10a43dd
components/buffer: show MODE target if different from buffer name
...
This happens for user modes, for instance.
2021-11-03 21:58:26 +01:00
Simon Ser
a1ab87c71c
Route self-NICK messages to server buffer
2021-11-03 21:49:53 +01:00
Simon Ser
8ebb61cb0e
Route user MODE messages to server buffer
2021-11-03 21:44:24 +01:00
Simon Ser
8f90613951
components/buffer-header: add help text for user details
...
This makes it easier for users new to IRC to figure out what these
things mean. Additionally, it's not possible for a malicious user
to spoof the <abbr> style.
2021-11-03 17:23:32 +01:00
Simon Ser
0888af4a6f
Request more messages for event-playback infinite scrolling
...
When the server supports draft/event-playback, some messages (like
join/part/etc) may be collapsed together. Request more messages to
avoid ending up with a half-filled page.
2021-11-03 16:31:12 +01:00
Simon Ser
eec4126562
components/buffer-header: mark unauthenticated users as such
2021-11-02 18:04:53 +01:00
Simon Ser
6acf6d544a
components/buffer-header: skip account name if it matches nick
2021-11-02 18:01:07 +01:00
Simon Ser
85e73d0ee8
Add RPL_WELCOME to server buffer
2021-11-02 15:27:24 +01:00
Simon Ser
483f0c65b1
Add hint in server operators buffer header
2021-11-01 18:45:16 +01:00
Simon Ser
33c3cf3278
Remove unnecessary irc.formatDate call
2021-10-29 16:34:50 +02:00
Simon Ser
a1057092e0
state: move in QUIT and NICK update logic
2021-10-23 23:24:11 +02:00
Simon Ser
bf471abb1b
Add App.routeMessage
...
This splits handleMessage into two functions: one decides in which
buffers the message should be appended to, the other performs
message side-effects like auto-join.
2021-10-23 23:01:32 +02:00
Simon Ser
49a59077b7
lib/irc: extend parseURL to support flags and skip auth + options
2021-10-20 14:33:16 +02:00
Simon Ser
2d032259db
Pretty-print RPL_LOGGEDIN and RPL_LOGGEDOUT
2021-10-18 22:11:14 +02:00
Simon Ser
3d09c43a91
Don't add RPL_YOURHOST to server buffer
2021-10-18 22:08:21 +02:00
Simon Ser
e7054eab13
Don't add RPL_SASLSUCCESS to server buffer
2021-10-18 22:05:25 +02:00
Simon Ser
34aea84dde
Close buffer tabs on middle click
2021-10-17 19:33:02 +02:00
Simon Ser
a120d79585
Handle IRC URLs without channel name
2021-10-13 16:47:01 +02:00
Simon Ser
3562478946
Open dialog to create new network on IRC URL click
...
If we're running under a bouncer and the user clicks a link with
a server we aren't connected to yet, open the dialog to add a new
network.
References: https://todo.sr.ht/~emersion/gamja/71
2021-10-13 16:40:34 +02:00
Simon Ser
405bc51c26
Handle click on irc:// channel URLs inside buffers
...
References: https://todo.sr.ht/~emersion/gamja/71
2021-10-13 16:18:59 +02:00
Simon Ser
21a4a71542
Add support for SASL EXTERNAL
...
Can be useful when the server is using e.g. a cookie for
authentication purposes.
2021-10-12 17:29:56 +02:00
Simon Ser
a890665775
Allow revealing server field with ?server
2021-10-09 13:33:01 +02:00
Simon Ser
a920914b4c
Add nick to config.json
2021-10-09 10:45:44 +02:00
Simon Ser
47b12cc5d9
Add autoconnect to config.json
2021-10-09 10:45:44 +02:00
Simon Ser
312a3f812e
Don't allow overriding server URL if set in config.json
...
This has security implications.
2021-10-09 10:34:51 +02:00
Simon Ser
e3e3315125
Inherit from default connectParams in handleConfig
...
When handleConfig is called, this.state.connectParams will be set
to its default value. Inherit from it so that autoconnect isn't
missing any. If we ever add a new connect parameter, we don't want
an old localStorage to break connect() because it's missing the
param.
2021-10-09 10:10:51 +02:00
Simon Ser
d2ac1e152a
Add more type checks for config.json
2021-10-09 09:57:54 +02:00
Simon Ser
4577f0a27f
components/buffer: pretty-print RPL_CHANNELMODEIS and RPL_CREATIONTIME
2021-10-06 12:12:49 +02:00
Simon Ser
19ee5553f6
components/buffer: add RPL_UMODEIS pretty-printing
2021-10-05 11:22:20 +02:00
Simon Ser
0b4302e059
Clear autojoin when loading autoconnect
...
This is handled by the buffer store.
2021-09-21 19:25:59 +02:00
Simon Ser
7bf9a0ca25
Auto-join previous channels on reconnect
...
Closes: https://todo.sr.ht/~emersion/gamja/47
2021-09-21 19:20:39 +02:00
Simon Ser
65674cb45d
Narrow down syncBufferUnread to new buffers
...
syncBufferUnread might override the previous unread value.
Closes: https://todo.sr.ht/~emersion/gamja/105
2021-09-21 18:41:14 +02:00
Simon Ser
1dd55367e9
Send WHO queries for saved user buffers after ISUPPORT
...
This allows WHOX to be used.
2021-09-21 18:31:11 +02:00
Simon Ser
184b29b6e3
Hide meaningless real names
2021-09-21 17:24:39 +02:00
Simon Ser
da4da01e34
Query WHO when switching to a user buffer without info
...
Closes: https://todo.sr.ht/~emersion/gamja/101
2021-09-21 17:06:32 +02:00
Simon Ser
329f9063d0
Add support for WHOX
...
This allows querying the account of the user.
2021-09-21 16:58:00 +02:00
Simon Ser
0b32d9295a
Display account name
2021-09-21 15:38:59 +02:00
Simon Ser
d12e1109b3
Add support for account-notify
2021-09-21 14:49:32 +02:00
Simon Ser
8e631f97ef
Add tooltip with full date to timestamp component
2021-09-21 14:34:30 +02:00
Simon Ser
11878aaaa9
Add support for extended-join
2021-09-21 14:29:31 +02:00
Simon Ser
010009e3e0
Display username/hostname in member list
2021-09-21 14:19:30 +02:00
Simon Ser
ecb2ee041b
Update user on QUIT and NICK
2021-09-21 14:00:52 +02:00
Simon Ser
c66ce61029
Introduce per-server user map
...
This allows us to store information about users in a signle place,
instead of putting it in user buffers. This is required to display
metadata about users in the channel members list.
2021-09-21 13:33:15 +02:00
Simon Ser
e7f8620933
Add State.create()
2021-09-21 12:33:22 +02:00
Simon Ser
c428e504fe
Don't show unread marker for outgoing messages
...
Closes: https://todo.sr.ht/~emersion/gamja/100
2021-08-30 10:27:24 +02:00
Simon Ser
77683937d7
Narrow down syncBufferUnread call to self-JOIN
2021-08-25 08:46:37 +02:00
Simon Ser
4278265c65
Open new buffer on self-message
...
Closes: https://todo.sr.ht/~emersion/gamja/96
2021-08-24 14:46:51 +02:00
Simon Ser
8a5e52ed9a
Rename buffer lastReadReceipt to prevReadReceipt
...
This field is intentionally behind the latest read receipt. Let's
rename it to make that clearer.
2021-08-24 14:01:57 +02:00
Simon Ser
6e59a77672
Don't drop unread marker in addMessage
...
Closes: https://todo.sr.ht/~emersion/gamja/76
2021-08-24 13:59:33 +02:00
Simon Ser
b14cddc0d0
Ignore server buffer in latestReceipt
...
When we've received RPL_WELCOME, latestReceipt will return the
current time if we don't filter out the server buffer.
2021-08-24 13:49:25 +02:00
Simon Ser
e283d9c7ab
Add support for MONITOR
2021-08-24 12:53:46 +02:00
Simon Ser
dd67e0789e
Auto-complete channel names
...
Closes: https://todo.sr.ht/~emersion/gamja/84
2021-08-23 15:21:24 +02:00
Simon Ser
aa9ce73d5a
Restore channel unread status from local storage
...
Closes: https://todo.sr.ht/~emersion/gamja/75
Closes: https://todo.sr.ht/~emersion/gamja/89
2021-08-23 14:17:58 +02:00
Simon Ser
c470c9f2c0
Fix typo
2021-08-23 12:31:11 +02:00
Simon Ser
c47af780f6
Restore user query buffer unread status
2021-08-23 12:25:43 +02:00
Simon Ser
016ca27f2d
Restore opened user query buffers
...
Closes: https://todo.sr.ht/~emersion/gamja/93
2021-08-23 12:02:36 +02:00
Simon Ser
d18cbbafb0
composer: focus on paste
2021-07-21 19:48:09 +02:00
Simon Ser
5b53fb6fe9
connect-form: improve HTML indentation
2021-07-04 21:51:42 +02:00
Simon Ser
a1d79cda4b
Drop ConnectForm key
2021-07-04 21:43:47 +02:00
Simon Ser
52ddda4e82
Unify dialog data in App.state
2021-07-04 21:41:36 +02:00
Simon Ser
af1e2e144a
Hide everything while loading config.json
2021-07-04 21:29:15 +02:00
Simon Ser
dee9e06b2f
connect-form: focus nickname input
2021-07-04 21:28:45 +02:00
Simon Ser
00eebc9859
composer: cycle through auto-completions
...
Closes: https://todo.sr.ht/~emersion/gamja/42
2021-06-30 22:20:40 +02:00
Simon Ser
08aefc9dc5
composer: add smart suffix after auto-completion
...
Append a space after a command name, so that arguments can be typed
directly. Append a colon after a nickname.
2021-06-30 21:56:45 +02:00
Simon Ser
856dd021e2
composer: auto-complete word at carret position
2021-06-30 21:50:55 +02:00
Simon Ser
b289fd10b7
Always mark own messages as read
2021-06-24 18:04:26 +02:00
Simon Ser
429450e060
Handle RPL_INVITING
2021-06-24 18:01:24 +02:00
Simon Ser
bc05fd5c11
Treat server broadcasts as highlights
2021-06-23 19:52:45 +02:00
Simon Ser
095006e961
Don't focus composer on key press if modifier is also pressed
2021-06-22 17:25:24 +02:00
Simon Ser
0d36e8a3fc
Turn dialog close button into a <button>
...
This is semantically more correct.
2021-06-22 16:02:55 +02:00
Simon Ser
1ea3180f5b
Use semantically more correct elements for error bubble
2021-06-22 15:48:42 +02:00