this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Preliminary work for native quote posts

This is untested and might be buggy

+72 -2
+17
src/components/status.css
··· 265 265 content: none !important; 266 266 } 267 267 268 + .status-card-unfulfilled { 269 + display: flex; 270 + flex-direction: row; 271 + gap: 8px; 272 + font-size: calc(var(--text-size) * 0.9); 273 + margin: 1em 0 0; 274 + border-radius: 8px; 275 + padding: 12px; 276 + border: 1px solid var(--outline-color); 277 + background-color: var(--bg-color); 278 + box-shadow: inset 0 0 4px var(--outline-color); 279 + 280 + .icon { 281 + color: var(--text-insignificant-color); 282 + } 283 + } 284 + 268 285 @keyframes skeleton-breathe { 269 286 0% { 270 287 opacity: 1;
+36
src/components/status.jsx
··· 3889 3889 if (level > 2) return; 3890 3890 3891 3891 return uniqueQuotes.map((q) => { 3892 + if (q.state === 'deleted') 3893 + return ( 3894 + <div class="status-card-unfulfilled"> 3895 + <Icon icon="quote" /> 3896 + <i> 3897 + <Trans>Post removed by author.</Trans> 3898 + </i> 3899 + </div> 3900 + ); 3901 + if (q.state === 'unauthorized') 3902 + return ( 3903 + <div class="status-card-unfulfilled"> 3904 + <Icon icon="quote" /> 3905 + <i> 3906 + <Trans>You’re not authorized to view this post.</Trans> 3907 + </i> 3908 + </div> 3909 + ); 3910 + if (q.state === 'pending') 3911 + return ( 3912 + <div class="status-card-unfulfilled"> 3913 + <Icon icon="quote" /> 3914 + <i> 3915 + <Trans>Post pending author approval.</Trans> 3916 + </i> 3917 + </div> 3918 + ); 3919 + if (q.state === 'rejected' || q.state === 'revoked') 3920 + return ( 3921 + <div class="status-card-unfulfilled"> 3922 + <Icon icon="quote" /> 3923 + <i> 3924 + <Trans>Quoting not allowed by the author.</Trans> 3925 + </i> 3926 + </div> 3927 + ); 3892 3928 const Parent = q.native ? Fragment : LazyShazam; 3893 3929 return ( 3894 3930 <Parent id={q.instance + q.id} key={q.instance + q.id}>
+17 -1
src/locales/en.po
··· 1075 1075 msgstr "" 1076 1076 1077 1077 #: src/components/generic-accounts.jsx:154 1078 - #: src/components/notification.jsx:449 1078 + #: src/components/notification.jsx:455 1079 1079 #: src/pages/accounts.jsx:50 1080 1080 #: src/pages/search.jsx:334 1081 1081 #: src/pages/search.jsx:367 ··· 2513 2513 #: src/components/status.jsx:3784 2514 2514 msgid "<0/> <1/> boosted" 2515 2515 msgstr "" 2516 + 2517 + #: src/components/status.jsx:3897 2518 + msgid "Post removed by author." 2519 + msgstr "Post removed by author." 2520 + 2521 + #: src/components/status.jsx:3906 2522 + msgid "You’re not authorized to view this post." 2523 + msgstr "You’re not authorized to view this post." 2524 + 2525 + #: src/components/status.jsx:3915 2526 + msgid "Post pending author approval." 2527 + msgstr "Post pending author approval." 2528 + 2529 + #: src/components/status.jsx:3924 2530 + msgid "Quoting not allowed by the author." 2531 + msgstr "Quoting not allowed by the author." 2516 2532 2517 2533 #: src/components/timeline.jsx:485 2518 2534 #: src/pages/settings.jsx:1199
+2 -1
src/utils/states.js
··· 229 229 } 230 230 // Mastodon native quotes 231 231 if (status.quote?.state === 'accepted' && status.quote?.quotedStatus) { 232 - const { quotedStatus } = status.quote; 232 + const { quotedStatus, state } = status.quote; 233 233 const { id } = quotedStatus; 234 234 const selfURL = `/${instance}/s/${id}`; 235 235 const sKey = statusKey(id, instance); ··· 239 239 id, 240 240 instance, 241 241 url: selfURL, 242 + state, 242 243 native: true, 243 244 }, 244 245 ];