Commit Graph

2538 Commits

Author SHA1 Message Date
Max Leiter
2a92ec0e03 fix: hide Account settings tab on public instance, sometimes hide General (#5063)
on public TL instances like the demo, this is what the account and
general tabs look like in Firefox:
 
| General | Account |
|--------|--------|
| <img width="600" height="auto" alt="image"
src="https://github.com/user-attachments/assets/6cb1b9a2-da93-4412-893a-e70004376705"
/> | <img width="600" height="auto" alt="image"
src="https://github.com/user-attachments/assets/429f8c1a-4b38-49b4-bb14-b3a935860aa7"
/> |

1. we should just always hide account if mode is public, its useless
2. if file uploads are off, there's nothing to show in General except
the native app install, which i figure is fine/not really necessary for
public instances (and isn't supported by Firefox, hence the blankness)
2026-04-12 09:25:28 -07:00
Reto Brunner
7d5834807b Merge fix/5032-pwa-cloudflare-access 2026-04-12 12:07:39 +02:00
Nycki
c148344c65 client: opt out of browser completion in the chat input (#5068)
Closes https://github.com/thelounge/thelounge/issues/5067.
2026-04-11 14:25:38 -07:00
Max Leiter
eb75c4b77c chore: refactor Mentions, add isIgnoredUser util (#5051)
- Mentions were doing a bunch of mutations; not just uses derived state
- no need for a separate `ClientMention` 
- added `extractInputHistory` for shared logic
- tests made by claude
2026-04-11 07:59:14 -07:00
Max Leiter
8e66e0ca50 Fix PWA installation behind Cloudflare Access (#5032)
Add crossorigin="use-credentials" to the manifest link tag so the
browser includes authentication cookies when fetching the web manifest.
Without this, Cloudflare Access (and similar auth proxies) redirect the
credentialless manifest request to a login page, which blocks PWA
installation.
2026-04-10 13:04:43 -07:00
Max Leiter
c94c68ebee fix: strip IRC color codes from topic hover text (fixes #4840) 2026-04-10 13:04:19 -07:00
Taavi Väänänen
da23453133 Show STATUSMSG indication for actions as well (#5004)
It is possible to send actions (/me et al.) to a STATUSMSG target
(+#channel etc), even though thelounge does not currently support
sending that. Show the statusmsg indicator on such messages.
2026-04-10 08:47:31 -07:00
Max Leiter
119eff9ab9 Fix mobile viewport (#5029)
Fixes #4752 (Chromium) and also Firefox's different behaviour of not moving the content at all, making the keyboard overlay the bottom half of the app.
2026-04-09 22:36:24 -05:00
Max Leiter
3deeb80f62 fix: call stack size exceeded (#5023) 2026-04-09 22:35:09 -05:00
Jay2k1
ca4a6a4af1 Fix mobile viewport
Make content resize again when the keyboard is slid out
2026-02-09 12:08:54 +01:00
Reto Brunner
91fb1ee343 add cleartopic command
Fixes: https://github.com/thelounge/thelounge/issues/4687
2026-02-09 08:16:27 +01:00
Tiago de Paula
03d01bb1d6 fix: call stack size exceeded
The spread operator will place the arguments, which can reach the call
stack limit if too many messages are being sent. This fix uses
`.concat()` to avoid the spread operator.

Fixes #5022
2026-01-31 20:54:52 -03:00
Reto Brunner
793d01c0f5 merge trim username field in sign in form 2025-09-19 06:08:57 +02:00
Reto Brunner
857a2bbd6a Merge branch 'chghost' 2025-09-19 06:00:24 +02:00
Jay2k1
892562902f fix broken manual channel ordering
This fixes a small regression from #4861 (specifically, commit 0067c30) that resulted in manually reordering channels not being received by the server and hence not saved or synced.
2025-09-18 20:31:02 +02:00
Reto Brunner
fc135023a4 style chghost messages
chghost messages weren't styled properly, given that they are
similar to a nick change, re-use the corresponding icon and style.
2025-09-06 11:36:49 +02:00
sfan5
59a333d982 Trim username in sign-in form 2025-04-09 18:42:21 +02:00
Reto Brunner
f86a7f6377 Fix showing multiple certificate fingerprints 2024-11-07 16:55:38 +01:00
Reto Brunner
1760e8b339 client: suppress "***" in joins/parts/etc. for screen readers 2024-11-07 16:51:03 +01:00
Kenneth G. Franqueiro
4ba16364cc client: Indicate active context menu item for screen readers 2024-10-16 16:18:45 -04:00
Sadie Powell
e44bed1758 Fix showing multiple certificate fingerprints on InspIRCd v4. 2024-10-14 18:04:14 +01:00
Kenneth G. Franqueiro
59e8b16990 client: suppress "***" in joins/parts/etc. for screen readers 2024-10-10 17:20:21 -04:00
Reto Brunner
3d33ef8083 Merge branch 'topic' 2024-09-29 14:46:21 +02:00
Reto Brunner
e42ad91e04 whois: support actual_username field
Some servers (e.g. InspIRCd v4) support the concept of a real username,
i.e. the username that was originally sent as distinct from their virtual
username set by services.

Closes: https://github.com/thelounge/thelounge/issues/4900
2024-08-19 07:34:18 +02:00
Reto Brunner
718db3ae88 client: use topic command in topic change
A user on IRC reported a bug where the topic would change to ":hello"
when the topic was modified to "hello" via the channel topic edit field.

The reason is that irc-framework also sanitizes /RAW commands
and hence our manually escaped trailing param gets another ":"
(which I'm not exactly sure it should be doing... /raw means raw
in my world, but oh well).

We do have a proper /topic command a user could be using, so the
fix is to just do that in the input box as well.
2024-07-16 22:22:13 +02:00
Reto Brunner
cb4aaf6a97 client: remove setAppBadge and clearAppBadge
They already ship with typescript's lib.dom.d.ts
2024-05-10 13:21:18 +02:00
Reto Brunner
45c2fc87ee client: properly type Socket in window 2024-05-10 12:27:41 +02:00
Reto Brunner
3259ac596d client: fix all new linter errros 2024-05-04 12:29:57 +02:00
Reto Brunner
3fbbc39cd6 client/commands: statically import commands
Dynamic imports won't work very well with modules and we don't
really need them, it's just there to save us an import statement.

Let's flip this to a static version.
2024-05-04 12:29:57 +02:00
Reto Brunner
36cb75ee99 NetworkForm: disable unsafe return lints for now
The NetworkForm type is wrong, hence the compiler can't infer the type.
This needs quite some changes, so for now we just turn the linter off
for the 2 watch functions.
The whole component is too dynamic to fix easily.
2024-04-21 15:11:52 +02:00
Reto Brunner
91ac363cc6 components/MessageTypes/errors: fix eslint errors
This makes the code somewhat ugly, but to properly fix we need
to enforce the needed fields
2024-04-21 15:11:52 +02:00
Reto Brunner
6c9d2c36a1 components/Message: fix eslint errors 2024-04-21 15:11:52 +02:00
Reto Brunner
6241eed8f4 client/ImageViewer: fix types and guard against undefined 2024-04-21 15:11:52 +02:00
Reto Brunner
f25fee4c6c previews: fix possibly undefined 2024-04-21 15:11:52 +02:00
Reto Brunner
96848c1c1b msg_preview: fix possibly undefined error 2024-04-21 15:11:52 +02:00
Reto Brunner
4b07e05491 client: add missing import for SharedMsg 2024-04-21 15:11:52 +02:00
Reto Brunner
bb7c3925c6 type serverOptions for network:options 2024-04-21 15:11:52 +02:00
Reto Brunner
9898f38de6 add todo 2024-04-21 15:11:52 +02:00
Reto Brunner
9f2c82e152 fix mentions 2024-04-21 15:11:52 +02:00
Reto Brunner
17ba07db3b fix mentions import 2024-04-21 15:11:52 +02:00
Reto Brunner
0311e5f836 add socket-events import to entry point
socket-events aren't ever imported, if we don't do that however
webpack never actually sees any code that leads to it and skips
bundling it.

So for now, do an import that has the side effect of registering
all the events until we have a proper registration in place that's
a bit more sane to call
2024-04-21 15:11:52 +02:00
Reto Brunner
4d0474b897 store: don't duplicate import 2024-04-21 15:11:52 +02:00
Reto Brunner
14b9169899 store: fix import 2024-04-21 15:11:52 +02:00
Reto Brunner
50037644c0 socket-events: fix join 2024-04-21 15:11:52 +02:00
Reto Brunner
7287c6bcaa remove dead import 2024-04-21 15:11:52 +02:00
Reto Brunner
bfca0ca612 fix more 2024-04-21 15:11:52 +02:00
Reto Brunner
300bd4c84c add timestamp to NotificationOptions 2024-04-21 15:11:52 +02:00
Reto Brunner
42ea66c343 socket-events/msg: fix errors 2024-04-21 15:11:51 +02:00
Reto Brunner
1565eb8d05 socket-events/msg: if/else chains are not a switch replacement
If we switch on a field, use switch for god's sake.
If/elif chains are for cases where you have multiple selectors.
2024-04-21 15:11:51 +02:00
Reto Brunner
29750a3e51 ClientChan: does need a user array after all 2024-04-21 15:11:51 +02:00