= ({
+ status,
+ account,
+ children,
+ avatarSize = 48,
+ wrapperProps,
+ onHeaderClick,
+}) => {
+ const statusAccount = status.get('account') as Account | undefined;
+ const editedAt = status.get('edited_at') as string;
+
+ return (
+ /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
+
+
+
+
+ {editedAt && }
+
+
+
+
+ {children}
+
+ );
+};
diff --git a/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss b/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss
index c35b46524e1..35bf3301661 100644
--- a/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss
+++ b/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss
@@ -10,6 +10,12 @@
font-weight: 500;
display: flex;
align-items: center;
+ transition: color 0.2s ease-in-out;
+
+ &:hover,
+ &:focus {
+ color: var(--color-text-brand-soft);
+ }
}
.filterSelectIcon {
@@ -57,3 +63,57 @@
overflow: visible;
max-width: none !important;
}
+
+.statusWrapper {
+ :global(.status) {
+ padding-left: 24px;
+ padding-right: 24px;
+ }
+
+ &:has(.pinnedViewAllButton) :global(.status):has(.pinnedStatusHeader) {
+ border-bottom: none;
+ }
+
+ article:has(.pinnedViewAllButton) {
+ border-bottom: 1px solid var(--color-border-primary);
+ }
+}
+
+.pinnedViewAllButton {
+ background-color: var(--color-bg-primary);
+ border-radius: 8px;
+ border: 1px solid var(--color-border-primary);
+ box-sizing: border-box;
+ color: var(--color-text-primary);
+ line-height: normal;
+ margin: 12px 24px;
+ padding: 8px;
+ transition: border-color 0.2s ease-in-out;
+ width: calc(100% - 48px);
+
+ &:hover,
+ &:focus {
+ background-color: inherit;
+ border-color: var(--color-bg-brand-base-hover);
+ }
+}
+
+.pinnedStatusHeader {
+ display: grid;
+ grid-template-columns: max-content auto;
+ grid-template-rows: 1fr 1fr;
+ gap: 4px;
+
+ > :global(.status__relative-time) {
+ grid-column: 2;
+ height: auto;
+ }
+
+ > :global(.status__display-name) {
+ grid-row: span 2;
+ }
+
+ > :global(.account-role) {
+ justify-self: end;
+ }
+}
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 89ff879147d..a646d479d74 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -123,6 +123,8 @@
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} posts}}",
+ "account.timeline.pinned": "Pinned",
+ "account.timeline.pinned.view_all": "View all pinned posts",
"account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unblock domain {domain}",
"account.unblock_domain_short": "Unblock",