This commit also updates the rejected email logs tab to show the details
of the rejected email when the error message is clicked instead of the
subject.
This commit handles an issue some customers are having with
the media optimization worker when uploading images.
1. Sometimes the `new Worker()` call hangs indefinitely. To handle
this, we can check if it installed within 3 seconds, and if not
we fail and reject the promise.
2. We also add a `try...catch` around the `new Worker()` call to
catch any CSP issues or exceptions that may occur during worker
instantiation.
Introduces a new `@onClearInput` argument to the FilterInput component
that enables an optional clear button (X icon) to reset the input value.
API Changes:
FilterInput component now accepts:
- `@onClearInput` (optional) - Callback invoked when clear button is
clicked
- When both `@onClearInput` and `@value.length` are truthy, a clear
button appears on the right side of the input
Behavior:
- Clear button automatically shows/hides based on input value length
- Clicking clear button invokes the provided callback
- Input automatically receives focus after clearing
Usage:
```gjs
<FilterInput
@value={{this.searchTerm}}
@onClearInput={{this.handleClear}}
@filterAction={{this.handleInput}}
/>
```
This new API is used on this commit for clearing the input of chat
search queries:
<img width="345" height="84" alt="Screenshot 2025-10-23 at 10 51 33"
src="https://github.com/user-attachments/assets/817912cb-acbc-4a15-877e-c130d8087863"
/>
<img width="672" height="57" alt="Screenshot 2025-10-23 at 10 51 27"
src="https://github.com/user-attachments/assets/6aa17f26-04fe-49c9-9fca-555e1cc7298c"
/>
Follows the convention of showing the shortcut key in translation for
the zoom and close buttons, and also adds a new error translation for
PhotoSwipe.
See: https://photoswipe.com/options/#translating
When the details element is collapsed we cannot use `innerHTML` as it
returns a blank string, we can still use `textContent` to get the value
we need to parse the large image width and height.
Followup 0853208d67
Currently, whether a draft saves or not can be transparent
to members, since we don't save a draft if the title/content
of the post doesn't meet a certain length requirement. This
happens silently. We don't consider e.g. quotes in this length
calculation, so this can lead to people losing drafts, and
generally is a confusing overall experience.
In this commit, we no longer care about the length of the topic
title or post body when deciding whether to save a draft, we
will always just save.
If members end up with too many drafts they can always bulk
delete them from their profile
Looks like the admin directory move (#35322) caused a couple issues with
optionalRequire paths, this updates the paths to get the tag admin
dropdown and review queue IP lookup working again.