Merge pull request #532 from cheeaun/main

Update from main
This commit is contained in:
Chee Aun 2024-05-15 21:34:39 +08:00 committed by GitHub
commit 6976191113
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 77 additions and 5 deletions

View file

@ -62,7 +62,7 @@ const iconsRoute = new Route(
cacheName: 'icons', cacheName: 'icons',
plugins: [ plugins: [
new ExpirationPlugin({ new ExpirationPlugin({
maxEntries: 50, maxEntries: 300,
maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days
purgeOnQuotaError: true, purgeOnQuotaError: true,
}), }),

View file

@ -1966,6 +1966,10 @@ body > .szh-menu-container {
.szh-menu .szh-menu
.szh-menu__item.danger:not(.szh-menu__item--disabled).szh-menu__item--hover { .szh-menu__item.danger:not(.szh-menu__item--disabled).szh-menu__item--hover {
background-color: var(--red-text-color); background-color: var(--red-text-color);
@media (prefers-color-scheme: dark) {
background-color: var(--red-color);
}
} }
.szh-menu .szh-menu
.szh-menu__item:not(.szh-menu__item--disabled):not( .szh-menu__item:not(.szh-menu__item--disabled):not(

View file

@ -17,6 +17,21 @@
); );
filter: saturate(0.5); filter: saturate(0.5);
} }
&:is(a) {
pointer-events: auto;
display: block;
text-decoration: none;
color: inherit;
&:hover {
border-color: var(--outline-hover-color);
}
> * {
pointer-events: none;
}
}
} }
.accounts-list { .accounts-list {

View file

@ -11,6 +11,7 @@ import useLocationChange from '../utils/useLocationChange';
import AccountBlock from './account-block'; import AccountBlock from './account-block';
import Icon from './icon'; import Icon from './icon';
import Link from './link';
import Loader from './loader'; import Loader from './loader';
import Status from './status'; import Status from './status';
@ -143,9 +144,12 @@ export default function GenericAccounts({
</header> </header>
<main> <main>
{post && ( {post && (
<div class="post-preview"> <Link
to={`/${instance || currentInstance}/s/${post.id}`}
class="post-preview"
>
<Status status={post} size="s" readOnly /> <Status status={post} size="s" readOnly />
</div> </Link>
)} )}
{accounts.length > 0 ? ( {accounts.length > 0 ? (
<> <>

View file

@ -28,6 +28,7 @@ const NOTIFICATION_ICONS = {
'admin.signup': 'account-edit', 'admin.signup': 'account-edit',
'admin.report': 'account-warning', 'admin.report': 'account-warning',
severed_relationships: 'heart-break', severed_relationships: 'heart-break',
moderation_warning: 'alert',
emoji_reaction: 'emoji2', emoji_reaction: 'emoji2',
'pleroma:emoji_reaction': 'emoji2', 'pleroma:emoji_reaction': 'emoji2',
}; };
@ -45,6 +46,8 @@ poll = A poll you have voted in or created has ended
update = A status you interacted with has been edited update = A status you interacted with has been edited
admin.sign_up = Someone signed up (optionally sent to admins) admin.sign_up = Someone signed up (optionally sent to admins)
admin.report = A new report has been filed admin.report = A new report has been filed
severed_relationships = Severed relationships
moderation_warning = Moderation warning
*/ */
function emojiText(emoji, emoji_url) { function emojiText(emoji, emoji_url) {
@ -91,6 +94,7 @@ const contentText = {
Lost connections with <i>{name}</i>. Lost connections with <i>{name}</i>.
</> </>
), ),
moderation_warning: <b>Moderation warning</b>,
emoji_reaction: emojiText, emoji_reaction: emojiText,
'pleroma:emoji_reaction': emojiText, 'pleroma:emoji_reaction': emojiText,
}; };
@ -117,6 +121,17 @@ const SEVERED_RELATIONSHIPS_TEXT = {
), ),
}; };
const MODERATION_WARNING_TEXT = {
none: 'Your account has received a moderation warning.',
disable: 'Your account has been disabled.',
mark_statuses_as_sensitive:
'Some of your posts have been marked as sensitive.',
delete_statuses: 'Some of your posts have been deleted.',
sensitive: 'Your posts will be marked as sensitive from now on.',
silence: 'Your account has been limited.',
suspend: 'Your account has been suspended.',
};
const AVATARS_LIMIT = 50; const AVATARS_LIMIT = 50;
function Notification({ function Notification({
@ -125,8 +140,16 @@ function Notification({
isStatic, isStatic,
disableContextMenu, disableContextMenu,
}) { }) {
const { id, status, account, report, event, _accounts, _statuses } = const {
notification; id,
status,
account,
report,
event,
moderation_warning,
_accounts,
_statuses,
} = notification;
let { type } = notification; let { type } = notification;
// status = Attached when type of the notification is favourite, reblog, status, mention, poll, or update // status = Attached when type of the notification is favourite, reblog, status, mention, poll, or update
@ -314,6 +337,20 @@ function Notification({
. .
</div> </div>
)} )}
{type === 'moderation_warning' && !!moderation_warning && (
<div>
{MODERATION_WARNING_TEXT[moderation_warning.action]}
<br />
<a
href={`/disputes/strikes/${moderation_warning.id}`}
target="_blank"
rel="noopener noreferrer"
>
Learn more <Icon icon="external" size="s" />
</a>
.
</div>
)}
</> </>
)} )}
{_accounts?.length > 1 && ( {_accounts?.length > 1 && (

View file

@ -102,6 +102,17 @@ function Notifications({ columnMode }) {
// }, // },
// }); // });
// TEST: Slot in a fake notification to test 'moderation_warning'
// notifications.unshift({
// id: '123123',
// type: 'moderation_warning',
// createdAt: new Date().toISOString(),
// moderation_warning: {
// id: '1231234',
// action: 'mark_statuses_as_sensitive',
// },
// });
// console.log({ notifications }); // console.log({ notifications });
const groupedNotifications = groupNotifications(notifications); const groupedNotifications = groupNotifications(notifications);

View file

@ -1,5 +1,6 @@
const { locale } = Intl.NumberFormat().resolvedOptions(); const { locale } = Intl.NumberFormat().resolvedOptions();
const shortenNumber = Intl.NumberFormat(locale, { const shortenNumber = Intl.NumberFormat(locale, {
notation: 'compact', notation: 'compact',
roundingMode: 'floor',
}).format; }).format;
export default shortenNumber; export default shortenNumber;