Commit graph

7,226 commits

Author SHA1 Message Date
novenary
8d49c7c771 Fix allowed post formats enumeration on Iceshrimp 2025-11-24 15:37:19 +02:00
novenary
ef1e5d5214 config: set frontend commit URL 2025-11-17 11:23:07 +02:00
novenary
0fef655d8a Merge branch 'fuzzy-emojis' into lesbian.fish 2025-11-17 11:16:07 +02:00
novenary
19232df5f0 HACK: assume media proxy is always available
Iceshrimp.NET currently does not advertise the media proxy when it's
enabled, despite implementing the feature.
As a workaround, assume it's present in our deployment.
2025-11-17 11:16:01 +02:00
a1e83062b4 Merge pull request 'Allow using regex filters for mutes' (#461) from Oneric/akkoma-fe:regex-mute-filter into develop
Reviewed-on: AkkomaGang/akkoma-fe#461
2025-11-09 13:16:04 +00:00
Oneric
4315788019 Add support for regex mute filters
This makes any filter that starts and ends in forward slashes act as a
regex filter instead of a simple substring filter.
In case any existing plain-text rule already matches this
it will need to be updated adding an additional layer of slashes
and escapes as needed. However, this is thought to be sufficiently uncommon.

Instead of using trailing flags as modifier complicating parsing further,
any modifications to regex matching must be done via local modifiers. See
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Modifier
2025-10-26 00:00:00 +00:00
Oneric
f2c55423fd config: add infrastructure to cache parsed config values
Using muteWords as an example.
Currently this doesn’t help much
but the subsequent commit will extend muteWord capabilities
making parsing more costly
2025-10-26 00:00:00 +00:00
9bbc68536c Merge pull request 'Fix internal boost visibility scope' (#455) from NixLynx/akkoma-fe:boost-fix into develop
Reviewed-on: AkkomaGang/akkoma-fe#455
Reviewed-by: Oneric <oneric@noreply.akkoma>
2025-10-25 18:17:30 +00:00
Oneric
c5f068d6fa scope_utils: replace compare with isSubScope
Visibility scopes have no total order, but the function signature
of a compare function implies/requires such.

This led to the scope selector showing "local" as a possible option
on some original post scopes it was not actually compatible with.
The negotiated initially selected value was already correct though.
2025-10-25 00:00:00 +00:00
Nix Lynx
98826e8462 Fix internal boost visibility scope
Fixes d617a9596a
2025-10-25 00:00:00 +00:00
b13ecbcf6f Merge pull request 'Various small fixes' (#459) from Oneric/akkoma-fe:varfixes-20251018 into develop
Reviewed-on: AkkomaGang/akkoma-fe#459
2025-10-24 18:56:42 +00:00
66b026561f Ensure attachment descriptions fill full width
Was noticeable by e.g. the scrollbar being shown somewhere inside the
container and not being able to scroll near the edges if each line of
text was sufficiently short.

Directly implements the suggesstion from
AkkomaGang/akkoma-fe#456 (comment)
2025-10-24 00:00:00 +00:00
Oneric
c925f7f91b Fix failed media uploads bricking the frontend
The upload call hid errors and the entity normaliser lets them pass
through as well (assuming it must be an already "correctly" formatted
legacy qvitter response), which led to errors being added to the the
draft as if it was a valid attachment object.
On later use of this error exceptions occur breaking the frontend and
due to being saved as part of a draft this could only be recovered by
clearing local client data.

Fixes: AkkomaGang/akkoma-fe#339
2025-10-24 00:00:00 +00:00
Oneric
c3673eb53a Always use AP ID when copying post link
This is the canonical reference to a post and works best for lookups on
other servers. Previously this canonical ID was not accessible from the
frontend at all.

The "source" button continues to redirect to the preferred display URL
though (if set), since this is as the name suggests the preferred URL
for viewing the post in a browser (it might however not work when the
source instance restricts unauthenticated access even to local content).

This lifts the redundancy between the "source" and "copy link" buttons.

Since the legac qvitter API is still accounted for in the entity
normaliser, we just assume its external_url serves as both the canoncial
location and preferred display URL. It is dubious however, if this
codepath can even still be triggered at all and it likely makes more
sense to purge all remnants of the legacy API from the codebase.

Resolves: AkkomaGang/akkoma-fe#166
2025-10-18 00:00:00 +00:00
Oneric
f0c149950c Fix image attachments overflowing their container
This reverts commit e1b4d8f59a
and obsoletes commit c2db0e66ef
which already unset min-height in notifications where this
caused images to become effectively invisible.

Image previews are currently designed to always show the full image
scaled down as needed. With min-height though they were allowed to
take the full width even if it caused overflows in vertical direction.
This happened to look kind of fine with only easy-to-miss overflows
in the main post view if each preview row had the same amount of
columns, but creates jarring overlaps otherwise.

Fixes: AkkomaGang/akkoma-fe#456
2025-10-18 00:00:00 +00:00
3d54c8274f Merge pull request 'media_modal: fix image load handler wiring' (#454) from novenary/akkoma-fe:media_modal/load_handler into develop
Reviewed-on: AkkomaGang/akkoma-fe#454
2025-10-14 12:40:54 +00:00
novenary
f6bf484d4b media_modal: fix image load handler wiring
The media modal was changed to use still_image, but the attribute
pointing to the image load event handler wasn't updated.
This causes the modal to remain in the loading state forever.

Fixes: f48138c979
2025-10-14 15:36:22 +03:00
57a809946c Merge pull request 'Don’t litter tokens and Iceshrimp.NET support' (#452) from Oneric/akkoma-fe:frugal-tokens-and-iceshrimp.net into develop
Reviewed-on: AkkomaGang/akkoma-fe#452
2025-10-13 12:22:33 +00:00
2f64931d5b Merge pull request 'Show inline link for unresolvble posts and quoted quotes' (#453) from Oneric/akkoma-fe:quote-doesnt-exist-and-cant-hurt-you into develop
Reviewed-on: AkkomaGang/akkoma-fe#453
2025-10-13 12:17:48 +00:00
Hannah Ward
c2db0e66ef unset min-height for attachments in notifications 2025-10-13 13:07:57 +01:00
762676e105 and again 2025-10-13 10:49:35 +01:00
1fa242232e bump version 2025-10-13 10:48:46 +01:00
Oneric
e71da57845 Show inline link for unresolvble posts and quoted quotes
Previously those two cases just weren’t recognisable as quotes at all.

Fixes: AkkomaGang/akkoma-fe#310
2025-10-13 00:00:00 +00:00
Oneric
877dde80c9 user_card: don't set replied-to-status id to a boolean
Instead, just also prefill the text wuth the user handle
for pure mentions.
This lead to us sending a boolean status id to the backend
which presumably only didn't cause problems in *oma backends
because API spec validation dropped the value with a mismatched type.
On an Iceshrimp.NET backend this caused errors to pop up.

There are more conditions gated by replyTo in the post form but
no longer triggering them doesn't seem to have any noticeable effect.
The one noticeable change being mentions now share a draft save slot
with regular message composing (before all mention messages shared the
same reply:true slot), but this seems sensible enough.
2025-10-12 00:00:00 +00:00
Oneric
f885728ccd Lock package manager version
At least modern versions of corepack'ed yarn
(as build instructions tell use to use)
reaaally want to add this to the lockfile,
so let it do so to not need to constantly
be wary of uncommited changes here.
2025-10-12 00:00:00 +00:00
Oneric
4cb74a3fbe Clean up app tokens on logout
We don’t need them after initial account registration
and they just clutter the database otherwise

Together with the preceding commit this should get the
flood of garbage tokens into our database under control.
(We still want to fix the backends cleanup of old,
 already existing tokens though)

Fixes: AkkomaGang/akkoma-fe#429
2025-10-12 00:00:00 +00:00
Kopper
e79916e78e Do not create OAuth app until login
Original commit amended with a fix for registrations;
they need to (now) create an app and fetch an app-only token
before doing anything else, as this endpoint requires such a token.

Co-authored-by: Oneric <oneric@onierc.stub>

Cherry-picked-from: 0e25b94186
2025-10-12 00:00:00 +00:00
Kopper
3881f87c79 Properly pass credentials for follow requests and followed hashtags
This only worked in *oma due to legacy session-cookie auth kicking in
(which we should really get around to fully purge).

Cherry-picked-from: e8896fad15
2025-10-11 00:00:00 +00:00
Kopper
82647e8e98 Accept full URLs for /api/v1/pleroma/emoji
The frontend assumes these URLs will be relative to the target instance,
which may not be the case for non-*oma backends like Iceshrimp.NET
due to the backend storing emoji in an external object storage depending
on configuration.

Cherry-picked-from: c147c2aeb3
2025-10-11 00:00:00 +00:00
Weblate
539977de9d Merge branch 'origin/develop' into Weblate. 2025-10-04 22:05:59 +00:00
d2995ada16 Merge pull request 'Misc fixes' (#416) from novenary/akkoma-fe:misc-fixes/2024-09-17 into develop
Reviewed-on: AkkomaGang/akkoma-fe#416
Reviewed-by: Oneric <oneric@noreply.akkoma>
2025-10-04 22:05:56 +00:00
Weblate
bcd15ef858 Merge branch 'origin/develop' into Weblate. 2025-10-04 22:04:27 +00:00
900ac68ca6 Merge pull request 'Use pixelated (up)scaling for custom emoji' (#448) from Riedler/akkoma-fe:pixemoji into develop
Reviewed-on: AkkomaGang/akkoma-fe#448
Reviewed-by: Oneric <oneric@noreply.akkoma>
2025-10-04 22:04:24 +00:00
Weblate
34bbcef83e Merge branch 'origin/develop' into Weblate. 2025-10-04 22:04:15 +00:00
37ce8352a9 Merge pull request 'fix multiline alt texts for generic attachments (e.g. zip files)' (#446) from Riedler/akkoma-fe:fix-attachalt into develop
Reviewed-on: AkkomaGang/akkoma-fe#446
Reviewed-by: Oneric <oneric@noreply.akkoma>
2025-10-04 22:04:11 +00:00
novenary
193814b6e6 emoji_input: implement fuzzy suggestions
This makes it a lot easier to find what you're looking for with fewer
keystrokes.
2025-09-25 11:19:40 +03:00
novenary
be4909f4ed emoji_input: show more suggestions
5 suggestions is really too little, so increase the limit and make the
list scrollable.
2025-09-25 10:41:35 +03:00
f48138c979 oops! added it to media_modal as well 2025-09-24 18:04:43 +02:00
5baa2ce40f apply pixel art detection to more places 2025-09-24 17:28:29 +02:00
novenary
fef531b8a0 conversation: scrollIntoView when collapsed
This helps find the original context when collapsing a thread on the
timeline.
2025-09-24 15:37:06 +03:00
bf0c137057 conditionally render small emojis as pixelated 2025-09-24 13:49:16 +02:00
5a50ceb3aa Use pixelated (up)scaling for custom emoji 2025-09-24 13:13:30 +02:00
f08a961199 fix: some days I hate CSS 2025-09-22 17:56:16 +02:00
d252e10543 fix: scrollable gallery rows for if contents are too long
like my peanits
2025-09-22 16:23:33 +02:00
novenary
7c84854b10 post_status_form: inherit language from parent
If I'm replying to a post in Klingon, chances are I'm going to write in
Klingon. This reduces friction for properly marking post language in a
conversation.
2025-09-20 11:10:01 +03:00
novenary
ab606c6160 post_status_form: reset all to defaults on clear 2025-09-20 11:10:01 +03:00
novenary
38d8a9751a emoji_picker: select recents tab by default
This saves a click to get at your most commonly used emoji.
2025-09-20 11:09:59 +03:00
novenary
2c92467dcd post_status_form: fix enter key in subject field
This fixes random actions being triggered by the enter key while the
subject field is focused.

When pressing enter, the browser simulates a click on the first "submit"
button it finds in the form.
A submit button is a button without `type="button"` set.
Remediate this by setting the type attribute on all but the "Post"
button.

Additionally, inhibit the enter key in the subject field (ctrl+enter
still works).
2025-09-17 23:43:55 +03:00
bb71635d12 fix: no multiline alt text in post popovers 2025-09-10 03:13:13 +02:00
e1b4d8f59a fix: minor overflow issue in draft attachment alt text 2025-09-10 02:35:14 +02:00