diff --git a/src/components/icon.jsx b/src/components/icon.jsx
index 7693aea8..ad4f15e3 100644
--- a/src/components/icon.jsx
+++ b/src/components/icon.jsx
@@ -42,6 +42,8 @@ const ICONS = {
popin: ['mingcute:external-link-line', '180deg'],
plus: 'mingcute:add-circle-line',
'chevron-left': 'mingcute:left-line',
+ reply: ['mingcute:share-forward-line', '180deg', 'horizontal'],
+ thread: 'mingcute:route-line',
};
function Icon({ icon, size = 'm', alt, title, class: className = '' }) {
@@ -49,9 +51,9 @@ function Icon({ icon, size = 'm', alt, title, class: className = '' }) {
const iconSize = SIZES[size];
let iconName = ICONS[icon];
- let rotate;
+ let rotate, flip;
if (Array.isArray(iconName)) {
- [iconName, rotate] = iconName;
+ [iconName, rotate, flip] = iconName;
}
return (
{alt}
diff --git a/src/components/status.css b/src/components/status.css
index 1bc08122..56c69c58 100644
--- a/src/components/status.css
+++ b/src/components/status.css
@@ -104,6 +104,12 @@
display: flex;
gap: 8px;
justify-content: space-between;
+ white-space: nowrap;
+}
+.status > .container > .meta > * {
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
.status.large > .container > .meta {
min-height: 50px;
@@ -129,6 +135,39 @@
font-size: smaller;
}
+.status-reply-badge {
+ display: inline-flex;
+ margin-left: 4px;
+ gap: 4px;
+ align-items: center;
+}
+.status-reply-badge .icon {
+ color: var(--reply-to-color);
+}
+.status-thread-badge {
+ display: inline-flex;
+ margin: 8px 0 0 0;
+ gap: 4px;
+ align-items: center;
+ color: var(--reply-to-color);
+ background: var(--bg-color);
+ border: 1px solid var(--reply-to-color);
+ border-radius: 4px;
+ padding: 4px;
+ font-size: 10px;
+ line-height: 1;
+ text-transform: uppercase;
+ opacity: 0.75;
+ background-image: repeating-linear-gradient(
+ -70deg,
+ transparent,
+ transparent 3px,
+ var(--reply-to-faded-color) 3px,
+ var(--reply-to-faded-color) 4px
+ );
+ font-weight: bold;
+}
+
.status.large .content-container {
margin-left: calc(-50px - 16px);
padding-top: 10px;
diff --git a/src/components/status.jsx b/src/components/status.jsx
index 978cb149..82027d06 100644
--- a/src/components/status.jsx
+++ b/src/components/status.jsx
@@ -220,13 +220,13 @@ function Status({
)}
+ {inReplyToAccount && !withinContext && size !== 's' && (
+
+ {inReplyToAccountId === status.account.id ? (
+ <>
+
+ Thread
+ >
+ ) : (
+ <>
+ {' '}
+
+ >
+ )}
+
+ )}