Simon Ser
0705f4b182
lib/client: always populate prefix for incoming messages
2021-06-10 08:49:17 +02:00
Simon Ser
52ca3bb91c
lib/linkify: add comma to punctuation in channel regex
2021-06-09 16:28:07 +02:00
Simon Ser
0c0f0ab79e
Fix /me failing in user query buffers
...
This is a regression.
2021-06-09 10:17:32 +02:00
Simon Ser
2546d31af0
Blur the composer when hiding it
...
This should make toggling the composer in a server buffer more
reliable.
2021-06-07 15:18:15 +02:00
Simon Ser
a9c1abb064
Route channel mode and invite/except list to channel buffer
2021-06-07 14:13:00 +02:00
Simon Ser
dd753aab2e
Add support for /mode without arguments
2021-06-07 14:12:49 +02:00
Simon Ser
5b7ab2652b
Improve buffer header layout on mobile
...
Put buffer title above buffer description.
2021-06-06 17:27:05 +02:00
Simon Ser
a419e660c0
Don't match punctuation suffix when linkifying channels
2021-06-06 16:00:37 +02:00
Simon Ser
403d7ec7f7
Add case-mapping support to irc.isHighlight
...
Closes: https://todo.sr.ht/~emersion/gamja/77
2021-06-06 15:52:58 +02:00
Simon Ser
b9dc17db97
Disallow selecting text in <summary role="button">
...
This supersedes the cursor rule.
2021-06-06 12:08:21 +02:00
Simon Ser
6b75985f96
Make <summary> easier to click on Firefox Mobile
...
Add role=button to mark the element as a touch target.
Closes: https://todo.sr.ht/~emersion/gamja/80
2021-06-06 12:05:57 +02:00
Simon Ser
41c113be9a
Show connect form during connection
...
This improves UX when the connection parameters (server URL,
username, password, and so on) are incorrect.
2021-06-06 11:33:00 +02:00
Simon Ser
48ae55942f
Make @media queries whitespace consistent
2021-06-06 10:53:06 +02:00
Simon Ser
efabd69476
Increase buffer/member list item height on mobile
...
Closes: https://todo.sr.ht/~emersion/gamja/62
2021-06-06 10:46:41 +02:00
Simon Ser
0dfb7623db
Add support for labeled-response
...
It's just used to avoid mixing up messages coming from the server
so far.
2021-06-04 20:38:01 +02:00
Simon Ser
34078d5da7
Add support for draft/event-playback
2021-06-04 19:45:51 +02:00
Simon Ser
651e255ddb
Use ISUPPORT CHANTYPES in Client.isChannel
2021-06-04 19:17:39 +02:00
Simon Ser
db7aa337cb
Remove App.isChannel
...
Replace all remaining usage with Client.isChannel. Client will be
able to use the ISUPPORT tokens to check if a name is a channel.
2021-06-04 19:13:59 +02:00
Simon Ser
87588abf27
Add State.addMessage
2021-06-04 19:07:14 +02:00
Simon Ser
04362644bf
Handle TOPIC in State.handleMessage
2021-06-04 18:57:02 +02:00
Simon Ser
30a345298f
Handle JOIN/PART in State.handleMessage
2021-06-04 18:53:06 +02:00
Simon Ser
2af58f8d0b
Move createBuffer to State
2021-06-04 18:37:34 +02:00
Simon Ser
2c1bb4ce6a
Introduce State.handleMessage
...
Takes an IRC message, updates the state.
Doesn't yet handle all messages, this will be a step-by-step process.
2021-06-04 18:27:21 +02:00
Simon Ser
4d988cafeb
Move some state utilities to state.js
2021-06-04 18:03:03 +02:00
Simon Ser
791b742684
Allow config.server.ping to be a String
...
Workaround for existing config files in the wild.
2021-06-04 17:50:49 +02:00
Simon Ser
6e20ad872e
Add support for STATUSMSG
...
Closes: https://todo.sr.ht/~emersion/gamja/65
2021-06-03 13:31:43 +02:00
Simon Ser
3b5b693403
Use bufName in addMessage, fix missing Client.isMyNick()
2021-06-03 13:29:32 +02:00
Simon Ser
283f8af4b1
lib/irc: rename IRC prefix utilities
2021-06-03 13:18:28 +02:00
Simon Ser
04c9f0211a
Fix undefined server variable in BufferHeader
2021-06-03 13:10:44 +02:00
Simon Ser
fe9c483570
s/network/server/
...
Closes: https://todo.sr.ht/~emersion/gamja/46
2021-06-03 11:46:50 +02:00
Simon Ser
63a71e5f5d
Add support for incoming INVITE messages
2021-06-03 11:04:32 +02:00
Simon Ser
55882776b0
Make command descriptions more consistent
2021-06-03 10:28:04 +02:00
Simon Ser
291c9e177d
Add /unban
2021-06-03 10:25:33 +02:00
Simon Ser
a2dc045683
Add getActiveChannel
...
Simplifies the command logic
2021-06-03 10:19:09 +02:00
Simon Ser
9067b5a168
Make getActiveClient throw an error if disconnected
2021-06-03 10:19:09 +02:00
Simon Ser
a4294975a2
Add support for /ban without argument
2021-06-03 10:19:09 +02:00
Simon Ser
5004f6c89c
components/help: document that / allows to start writing a command
2021-06-02 22:53:28 +02:00
Simon Ser
91208a6d47
Add support for CHATHISTORY TARGETS
...
The main motivation is to avoid missing direct messages coming from
other users.
A nice side-effect is that we no longer need to issue CHATHISTORY
queries for each channel we JOIN: instead, we can only fetch
history for targets known to have new messages available (as indicated
by CHATHISTORY TARGETS).
We use read receipts instead of delivery receipts, so that reloading
the webapp restores the exact same state (ie, unread messages are
re-fetched).
References: https://github.com/ircv3/ircv3-specifications/pull/450
2021-06-02 20:37:20 +02:00
Simon Ser
74d9dea5bb
Use RegExp match indices in linkifyChannel
2021-06-01 09:53:11 +02:00
Simon Ser
9affdb894f
Make Alt+ArrowUp and Alt+ArrowDown wrap around
2021-05-31 19:21:54 +02:00
Simon Ser
9224ab9d0d
Set scrollbar style
2021-05-31 18:43:44 +02:00
Simon Ser
e38f35c578
Order buffers by priority in Alt+a
2021-05-31 18:26:04 +02:00
Simon Ser
958b6bf120
Set enterkeyhint in composer
2021-05-31 18:16:49 +02:00
Simon Ser
8c02cdc094
Hide server URL input if set in config or query
...
Closes: https://todo.sr.ht/~emersion/gamja/52
2021-05-31 18:13:44 +02:00
Simon Ser
04932317f6
Populate server URL in fillConnectParams
2021-05-31 18:11:33 +02:00
Simon Ser
4fff2b1b8d
Unify connect params keys
2021-05-31 18:04:02 +02:00
Simon Ser
c632ef4339
Don't save default username/realname in local storage
2021-05-31 17:57:17 +02:00
Simon Ser
bc7162ebe2
Pretty-print buffer name in buffer header
2021-05-31 17:39:37 +02:00
Simon Ser
6e16163103
Re-fold HTML in BufferList
2021-05-31 17:34:36 +02:00
Simon Ser
ced63b0abc
Print server status in header prior to RPL_MYINFO
2021-05-31 17:30:45 +02:00
Simon Ser
06ca812d06
Simplify Client.roundtrip callback arg
2021-05-31 17:14:46 +02:00
Simon Ser
619f1db08f
Introduce Client.who
2021-05-31 17:11:42 +02:00
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