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' && ( + {/* */} + + {/* {inReplyToAccount && !withinContext && size !== 's' && ( <> {' '} @@ -234,8 +234,8 @@ function Status({ - )} - {' '} + )} */} + {/* */}{' '} {size !== 'l' && (uri ? ( @@ -271,6 +271,25 @@ function Status({ ))}
+ {inReplyToAccount && !withinContext && size !== 's' && ( +
+ {inReplyToAccountId === status.account.id ? ( + <> + + Thread + + ) : ( + <> + {' '} + + + )} +
+ )}