Simon Ser
02145b45ad
Remove unused arg from Client.whois
2021-05-31 17:04:52 +02:00
Simon Ser
e271a3cd0e
Add /who
2021-05-31 17:02:56 +02:00
Simon Ser
fff0907354
Make buffer title bold
2021-05-31 16:45:46 +02:00
Simon Ser
14dbb60aec
Fix null membership on JOIN
2021-05-31 16:08:33 +02:00
Simon Ser
e90c07e64e
Remove unnecessary if in /ban
...
If whois info is unavailable, the promise is rejected.
2021-05-31 14:53:56 +02:00
Simon Ser
a6cdd64444
readme: document server.ping in config section
2021-05-31 14:48:51 +02:00
Simon Ser
2c1e4b7bea
Fix commas in folded NICK messages
2021-05-31 14:08:30 +02:00
Simon Ser
e76e71c968
Fallback to first server buffer in Alt+a keybind
...
Previously we switched to the server buffer for the current network.
2021-05-31 13:24:23 +02:00
Simon Ser
ab11af3965
Init App.config
2021-05-31 12:26:57 +02:00
Simon Ser
b3d825c9d1
Hide composer when disconnected from server
2021-05-31 12:04:54 +02:00
Simon Ser
68753afb8e
Ensure connect form has padding
...
Even on small screens.
2021-05-31 10:55:26 +02:00
Simon Ser
8fbc0a5c62
Fix Alt+h messing up all buffers
2021-05-31 10:46:41 +02:00
Simon Ser
b0671fe336
Group folded events by type
2021-05-31 10:35:34 +02:00
Simon Ser
ce239e5785
Improve FoldGroup key and shouldComponentUpdate
2021-05-31 10:35:34 +02:00
Simon Ser
8b20b463ff
Display last event time when folding messages
2021-05-31 10:35:34 +02:00
Simon Ser
2bc89a6655
Filter out PART → JOIN pairs
2021-05-31 10:35:34 +02:00
Simon Ser
64674bdd9f
Fold unimportant messages together
2021-05-31 10:35:34 +02:00
Simon Ser
b4367eb13c
Simplify /query usage string
2021-05-28 13:58:39 +02:00
Simon Ser
9e9dcff401
Mute date separator line color in dark theme
2021-05-28 11:22:18 +02:00
Simon Ser
5b29cf83f6
Add /motd
2021-05-28 11:17:37 +02:00
Simon Ser
e080e87cb7
Pretty-print MOTD
2021-05-28 10:50:42 +02:00
Simon Ser
8123ff3844
Misc theme improvements
...
- Mute unimportant messages on dark theme
- Adjust button background on light theme
2021-05-28 10:34:39 +02:00
Simon Ser
99ac0151a5
Use Client.isMyNick in NOTICE/PRIVMSG handling
2021-05-28 10:24:40 +02:00
Simon Ser
5a3edf4769
Fix WHOIS DB not using case-mapping fallback
...
In case the server advertises an unsupported case-mapping, we have
a fallback.
2021-05-28 09:59:51 +02:00
Simon Ser
7b762b3e8a
Unregister PING timer when destroying client
2021-05-28 09:58:06 +02:00
Simon Ser
24fe62f1de
Ensure msg.prefix is always populated
2021-05-28 09:49:21 +02:00
Simon Ser
e9d90d4927
Fix TypeError in isHighlight
...
TypeError: msg.prefix is null
2021-05-28 09:49:21 +02:00
Simon Ser
fc9dfa2dca
Implement case-mapping for buffers and message handler
2021-05-27 23:40:08 +02:00
Simon Ser
558548e6f7
Fix typo in Unread.union
2021-05-27 22:35:41 +02:00
Simon Ser
06f7651bef
Ignore TAGMSG messages
...
We get these from clients that support typing notifications, for
instance.
2021-05-27 21:58:37 +02:00
Simon Ser
74dc78a20b
Fix lib/irc.js import path in commands.js
2021-05-27 21:46:56 +02:00
Simon Ser
9567d56f53
Switch to channel buffer on /join
...
Closes: https://todo.sr.ht/~emersion/gamja/37
2021-05-27 19:10:42 +02:00
Simon Ser
70c0dd1d78
readme: add notes about nginx
2021-05-27 17:47:31 +02:00
Simon Ser
f36bba897e
Fix cross-network mixups when handling QUIT and NICK
...
Only mutate buffers if they belong to our connection.
2021-05-27 15:19:28 +02:00
Simon Ser
b2cdab86aa
Add case-mapping support for channel members
...
Make a buffer's members an irc.CaseMapMap.
2021-05-27 15:17:18 +02:00
Simon Ser
615e746ec5
lib/client: add Client.cm
...
This contains the current connection case-mapping, parsed from the
CASEMAPPING ISUPPORT token.
2021-05-27 15:14:03 +02:00
Simon Ser
3110a9e2df
lib/irc: add case-mapping primitives
...
irc.CaseMapping contains the basic canonicalization functions for
the three supported case-mappings. irc.CaseMapMap is a Map-like
class that supports case-mapped keys.
2021-05-27 15:13:32 +02:00
Simon Ser
d880b23d32
Add hint to run /help in unknown command error message
2021-05-27 12:55:28 +02:00
Simon Ser
45c12fb684
Add nick URL param
...
Closes: https://todo.sr.ht/~emersion/gamja/40
2021-05-27 12:32:22 +02:00
Simon Ser
37492e319b
Style dialogs for dark theme
...
Closes: https://todo.sr.ht/~emersion/gamja/32
2021-05-27 12:05:24 +02:00
Simon Ser
fa80817168
Accomodate for empty BOUNCER host
...
BOUNCER doesn't support describing UNIX domain socket connections.
2021-05-27 11:51:29 +02:00
Simon Ser
071c2626d5
Open error bubbles for IRC numeric errors
2021-05-27 11:34:23 +02:00
Simon Ser
b8c4bb3112
Improve command error reporting
...
state.error is expected to be a String, not an Error.
2021-05-27 11:26:42 +02:00
Simon Ser
d5e21097f8
Add /quote command
...
Closes: https://todo.sr.ht/~emersion/gamja/22
2021-05-27 11:22:34 +02:00
Simon Ser
1d983bd142
Downgrade IRC network logging to debug level
2021-05-27 10:39:24 +02:00
Simon Ser
08678ba57e
Always parse autojoin channels from URL params
...
Even if connection parameters were previously saved to local storage.
2021-05-27 10:36:03 +02:00
Simon Ser
ac5bbafdc3
Fix config.json relative path
...
The path should be relative to index.html, not the JS file.
2021-05-26 23:17:23 +02:00
Simon Ser
17cd38f0b9
Read auto-join channels from browser URL hash
...
This is easier to type than trying to escape the # in ?channels=#XXX.
2021-05-26 22:57:49 +02:00
Simon Ser
7c81fa6e8c
Set the viewport meta tag
2021-05-26 22:42:35 +02:00
Simon Ser
695b02caaa
Introduce store helper
...
Responsible for serializing/deserializing data to be saved in
localStorage. Add a prefix to all localStorage entries to avoid
conflicts with other webapps. Stop guarding against localStorage
not existing, browsers can just implement a dumb interface to
disable it.
2021-05-26 18:43:11 +02:00
Simon Ser
12a38ace90
Add support for IRCv3 setname
2021-05-25 20:22:21 +02:00
Simon Ser
92535fae24
Ignore BOUNCER NETWORK messages if we're already bound to a network
2021-05-25 17:11:06 +02:00
Simon Ser
9dba1b3736
Add vendor prefix to bouncer-networks BATCH type
2021-05-25 17:03:29 +02:00
Simon Ser
1b21f5f076
Display bouncer network status
2021-05-25 17:01:57 +02:00
Simon Ser
6524dc5dd2
Add support for the soju.im/bouncer-networks-notify cap
2021-05-25 17:01:20 +02:00
Simon Ser
94fba920cd
Fix close() for bouncer networks
2021-05-25 17:01:18 +02:00
Simon Ser
5165df718f
Disconnect on BOUNCER BIND error
2021-05-25 16:59:59 +02:00
Simon Ser
11642e1ab4
Add UI to edit/delete a network
2021-05-25 16:59:59 +02:00
Simon Ser
f84334c31e
Add UI to add a new bouncer network
2021-05-25 16:59:57 +02:00
Simon Ser
4c62b7571e
Indent channels and nicks in buffer list
2021-05-25 16:58:50 +02:00
Simon Ser
b429243573
Add support for the soju.im/bouncer-networks extension
2021-05-25 16:58:50 +02:00
Simon Ser
982a945932
Fix TypeError in handleBufferScrollTop
...
Fixes the following:
TypeError: client is undefined
2021-05-25 14:28:48 +02:00
Simon Ser
ed92c3c61a
Clear local storage when clicking "Disconnect"
2021-05-25 12:57:40 +02:00
Simon Ser
811984878c
Switch to query params for msgid/timestamp in irc:// URLs
...
The hash is confusing because channels often start with a # too.
Instead, use a query parameter. This is consistent with [1], which
uses query params for the channel key.
[1]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
2021-05-25 12:46:00 +02:00
Simon Ser
9e163b7647
Switch it isuser in irc:// URLs
...
This is what the most recent draft [1] uses.
[1]: https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04
2021-05-25 12:42:24 +02:00
Simon Ser
07c10b3b1f
Only switch to autojoin channel once
2021-05-25 12:40:33 +02:00
Simon Ser
f943d8ea15
readme: update IRC channel
2021-05-25 12:35:43 +02:00
Simon Ser
d261886199
Add support for config file
...
Closes: https://todo.sr.ht/~emersion/gamja/20
2021-05-25 12:33:22 +02:00
Simon Ser
e0cde27d66
Add simple /mode command
2021-05-23 11:41:04 +02:00
Simon Ser
22e54dac56
Update dependencies
...
Fixes a security vuln.
2021-05-17 09:52:42 +02:00
Simon Ser
f122e44e9b
Use ISUPPORT CHATHISTORY to discover max page size
2021-05-11 16:10:50 +02:00
Simon Ser
305ffb569c
Parse ISUPPORT tokens in client
2021-05-11 16:03:16 +02:00
Simon Ser
e242d5222e
Fix TypeError in App.render()
...
Fixes the following error:
Uncaught (in promise) TypeError: activeBuffer is undefined
2021-05-10 15:09:49 +02:00
Simon Ser
870a9b6be5
Add CSS for email fields
2021-04-27 12:25:57 +02:00
Simon Ser
5b29e2656e
Improve dark theme style for text inputs
2021-04-27 11:23:44 +02:00
Simon Ser
727331c859
Remove client from map on disconnect
2021-03-10 11:01:04 +01:00
Simon Ser
4991518ed5
Display error popup on FAIL
2021-03-09 21:48:04 +01:00
Simon Ser
97e75805fa
Add some space between error message and close button
2021-03-09 21:47:39 +01:00
Simon Ser
d0b5f63a22
Move dialog submit buttons to the right
2021-03-09 19:08:16 +01:00
Simon Ser
88c0e5ae94
Break long tag attributes on multiple lines
...
Makes that stuff more readable.
2021-03-09 18:11:59 +01:00
Simon Ser
8ab10cf2a5
lib/irc: escape/unescape everything in tags
...
Without the greedy flag on the regexp, String.replace will just
replace the first match.
While at it, also make sure to convert to a string when formatting
tag values. This allows tag values to be e.g. numbers.
2021-03-09 17:40:57 +01:00
Simon Ser
2d4409e7aa
lib/irc: accept tags without value
2021-03-09 17:31:12 +01:00
Simon Ser
4257463b46
Rename Connect/Join to ConnectForm/JoinForm
2021-03-09 13:25:31 +01:00
Simon Ser
c83a74cc50
Cleanup compareBuffers
2021-03-09 12:04:12 +01:00
Simon Ser
5fea13df0a
Trigger client error if server doesn't support SASL
2021-03-09 09:44:48 +01:00
Simon Ser
56e705b6de
Only switch buffer on connect if there's no active buffer
2021-03-09 09:38:55 +01:00
Simon Ser
bf30038b41
Fix whitespace issues
2021-03-09 09:17:01 +01:00
Simon Ser
bc45fce557
readme: add IRC discussion channel
2021-03-08 19:04:38 +01:00
Simon Ser
6c5f4f73df
readme: document query params
2021-03-08 19:02:31 +01:00
Simon Ser
7139e4511b
Remove unused DEFAULT_NETWORK constant
2021-03-08 17:34:00 +01:00
Simon Ser
ed5a771ea0
Fix overflowed dialogs
2021-03-08 17:26:51 +01:00
Simon Ser
78f22fce4e
Add help section for commands
2021-03-08 17:25:00 +01:00
Simon Ser
17a2d48b2e
Add help dialog with keybindings reference
2021-03-08 17:05:48 +01:00
Simon Ser
30157383e8
Add dialog for join form
2021-03-08 16:23:16 +01:00
Simon Ser
996d7d06d4
Extract error message popup
2021-03-08 15:05:43 +01:00
Simon Ser
194168c062
Display server messages in server buffer
...
References: https://todo.sr.ht/~emersion/gamja/21
2021-03-08 14:27:05 +01:00
Simon Ser
718929f0d2
Sort commands by name
2021-03-07 21:06:26 +01:00
Simon Ser
6c0878eeac
Remove duplicate command impl
2021-03-07 21:03:52 +01:00
Simon Ser
6430fa252a
lib/client: log close code
2021-03-03 18:30:15 +01:00
Simon Ser
aa79067179
lib/client: extract fetchBatch function from roundtripChatHistory
2021-03-03 14:13:05 +01:00