diff --git a/src/app.jsx b/src/app.jsx
index 7021c1b9e0..b57b15b6ce 100644
--- a/src/app.jsx
+++ b/src/app.jsx
@@ -603,7 +603,8 @@ function SecondaryRoutes({ isLoggedIn }) {
@@ -663,6 +702,28 @@ function ShortcutForm({
); + } else if (type === 'select') { + let options = values.map(({ name, value }) => ( + + )); + + return ( ++ +
+ ); } return ( @@ -893,7 +954,7 @@ function ImportExport({ shortcuts, onClose }) { shortcut[name] ? ( <> - {text}:{' '} + {_(text)}:{' '} {type === 'checkbox' ? shortcut[name] === 'on' ? '✅' diff --git a/src/locales/en.po b/src/locales/en.po index 31825cc54e..ec64678f13 100644 --- a/src/locales/en.po +++ b/src/locales/en.po @@ -124,7 +124,7 @@ msgstr "" #: src/pages/accounts.jsx:118 #: src/pages/hashtag.jsx:203 #: src/pages/list.jsx:171 -#: src/pages/public.jsx:116 +#: src/pages/public.jsx:133 #: src/pages/scheduled-posts.jsx:89 #: src/pages/status.jsx:1464 #: src/pages/trending.jsx:474 @@ -269,9 +269,9 @@ msgstr "View post stats" #: src/components/post-embed-modal.jsx:196 #: src/components/private-note-sheet.jsx:36 #: src/components/report-modal.jsx:118 -#: src/components/shortcuts-settings.jsx:230 -#: src/components/shortcuts-settings.jsx:583 -#: src/components/shortcuts-settings.jsx:783 +#: src/components/shortcuts-settings.jsx:261 +#: src/components/shortcuts-settings.jsx:614 +#: src/components/shortcuts-settings.jsx:840 #: src/components/status.jsx:2751 #: src/components/status.jsx:2963 #: src/components/translated-bio-sheet.jsx:21 @@ -330,7 +330,7 @@ msgstr "More from <0/>" #: src/components/columns.jsx:27 #: src/components/nav-menu.jsx:181 -#: src/components/shortcuts-settings.jsx:139 +#: src/components/shortcuts-settings.jsx:153 #: src/components/timeline.jsx:471 #: src/pages/catchup.jsx:883 #: src/pages/filters.jsx:90 @@ -364,7 +364,7 @@ msgstr "Choice {0}" #: src/components/compose-poll.jsx:64 #: src/components/media-attachment.jsx:300 -#: src/components/shortcuts-settings.jsx:726 +#: src/components/shortcuts-settings.jsx:783 #: src/pages/catchup.jsx:1081 #: src/pages/filters.jsx:413 msgid "Remove" @@ -373,7 +373,7 @@ msgstr "" #: src/components/compose-poll.jsx:80 #: src/components/compose.jsx:1439 #: src/components/mention-modal.jsx:220 -#: src/components/shortcuts-settings.jsx:715 +#: src/components/shortcuts-settings.jsx:772 #: src/pages/list.jsx:388 msgid "Add" msgstr "" @@ -537,7 +537,8 @@ msgstr "" #: src/components/compose.jsx:1703 #: src/components/nav-menu.jsx:349 -#: src/components/shortcuts-settings.jsx:165 +#: src/components/shortcuts-settings.jsx:75 +#: src/components/shortcuts-settings.jsx:181 #: src/utils/visibility-text.jsx:5 msgid "Local" msgstr "" @@ -729,7 +730,7 @@ msgstr "" #: src/components/edit-profile-sheet.jsx:326 #: src/components/list-add-edit.jsx:152 -#: src/components/shortcuts-settings.jsx:715 +#: src/components/shortcuts-settings.jsx:772 #: src/pages/filters.jsx:570 #: src/pages/notifications.jsx:1009 msgid "Save" @@ -815,7 +816,7 @@ msgid "Error loading GIFs" msgstr "" #: src/components/keyboard-shortcuts-help.jsx:47 -#: src/components/nav-menu.jsx:368 +#: src/components/nav-menu.jsx:377 #: src/pages/catchup.jsx:1622 msgid "Keyboard shortcuts" msgstr "" @@ -915,7 +916,7 @@ msgstr "" #: src/components/nav-menu.jsx:337 #: src/components/search-form.jsx:204 #: src/components/shortcuts-settings.jsx:52 -#: src/components/shortcuts-settings.jsx:179 +#: src/components/shortcuts-settings.jsx:210 #: src/pages/search.jsx:47 #: src/pages/search.jsx:317 msgid "Search" @@ -1219,7 +1220,7 @@ msgstr "" #. js-lingui-explicit-id #: src/components/nav-menu.jsx:190 -#: src/components/shortcuts-settings.jsx:140 +#: src/components/shortcuts-settings.jsx:154 #: src/pages/following.jsx:23 #: src/pages/following.jsx:143 msgid "following.title" @@ -1232,7 +1233,7 @@ msgstr "" #: src/components/nav-menu.jsx:204 #: src/components/shortcuts-settings.jsx:58 -#: src/components/shortcuts-settings.jsx:146 +#: src/components/shortcuts-settings.jsx:160 #: src/pages/home.jsx:240 #: src/pages/mentions.jsx:21 #: src/pages/mentions.jsx:174 @@ -1243,7 +1244,7 @@ msgstr "" #: src/components/nav-menu.jsx:211 #: src/components/shortcuts-settings.jsx:49 -#: src/components/shortcuts-settings.jsx:152 +#: src/components/shortcuts-settings.jsx:166 #: src/pages/filters.jsx:24 #: src/pages/home.jsx:86 #: src/pages/home.jsx:198 @@ -1262,7 +1263,7 @@ msgstr "" #: src/components/nav-menu.jsx:233 #: src/components/shortcuts-settings.jsx:54 -#: src/components/shortcuts-settings.jsx:195 +#: src/components/shortcuts-settings.jsx:226 #: src/pages/bookmarks.jsx:12 #: src/pages/bookmarks.jsx:26 msgid "Bookmarks" @@ -1275,7 +1276,7 @@ msgstr "" #: src/components/nav-menu.jsx:253 #: src/components/shortcuts-settings.jsx:55 -#: src/components/shortcuts-settings.jsx:201 +#: src/components/shortcuts-settings.jsx:232 #: src/pages/catchup.jsx:1449 #: src/pages/catchup.jsx:2067 #: src/pages/favourites.jsx:12 @@ -1328,36 +1329,43 @@ msgstr "" #: src/components/nav-menu.jsx:343 #: src/components/shortcuts-settings.jsx:57 -#: src/components/shortcuts-settings.jsx:172 +#: src/components/shortcuts-settings.jsx:203 #: src/pages/trending.jsx:444 msgid "Trending" msgstr "" -#: src/components/nav-menu.jsx:355 -#: src/components/shortcuts-settings.jsx:165 +#: src/components/nav-menu.jsx:357 +#: src/components/shortcuts-settings.jsx:79 +#: src/components/shortcuts-settings.jsx:182 +msgid "Bubble" +msgstr "Bubble" + +#: src/components/nav-menu.jsx:364 +#: src/components/shortcuts-settings.jsx:83 +#: src/components/shortcuts-settings.jsx:183 msgid "Federated" msgstr "" -#: src/components/nav-menu.jsx:378 +#: src/components/nav-menu.jsx:387 msgid "Shortcuts / Columns…" msgstr "" -#: src/components/nav-menu.jsx:388 -#: src/components/nav-menu.jsx:402 +#: src/components/nav-menu.jsx:397 +#: src/components/nav-menu.jsx:411 msgid "Settings…" msgstr "" -#: src/components/nav-menu.jsx:432 -#: src/components/nav-menu.jsx:467 +#: src/components/nav-menu.jsx:441 +#: src/components/nav-menu.jsx:476 #: src/components/shortcuts-settings.jsx:50 -#: src/components/shortcuts-settings.jsx:158 +#: src/components/shortcuts-settings.jsx:172 #: src/pages/list.jsx:127 #: src/pages/lists.jsx:18 #: src/pages/lists.jsx:54 msgid "Lists" msgstr "" -#: src/components/nav-menu.jsx:440 +#: src/components/nav-menu.jsx:449 #: src/components/shortcuts.jsx:243 #: src/pages/list.jsx:139 msgid "All Lists" @@ -1541,7 +1549,7 @@ msgstr "Open link?" #: src/components/open-link-sheet.jsx:68 #: src/components/post-embed-modal.jsx:232 #: src/components/related-actions.jsx:501 -#: src/components/shortcuts-settings.jsx:1059 +#: src/components/shortcuts-settings.jsx:1116 #: src/components/status.jsx:1211 msgid "Copy" msgstr "" @@ -1807,7 +1815,7 @@ msgid "Show featured profiles" msgstr "Show featured profiles" #: src/components/related-actions.jsx:516 -#: src/components/shortcuts-settings.jsx:1077 +#: src/components/shortcuts-settings.jsx:1134 #: src/components/status.jsx:1227 msgid "Sharing doesn't seem to work." msgstr "" @@ -2057,8 +2065,8 @@ msgid "Home / Following" msgstr "" #: src/components/shortcuts-settings.jsx:51 -msgid "Public (Local / Federated)" -msgstr "" +msgid "Local / Bubble / Federated" +msgstr "Local / Bubble / Federated" #: src/components/shortcuts-settings.jsx:53 msgid "Account" @@ -2073,275 +2081,275 @@ msgid "List ID" msgstr "" #: src/components/shortcuts-settings.jsx:70 -msgid "Local only" -msgstr "" +msgid "Type" +msgstr "Type" -#: src/components/shortcuts-settings.jsx:75 -#: src/components/shortcuts-settings.jsx:84 -#: src/components/shortcuts-settings.jsx:122 +#: src/components/shortcuts-settings.jsx:89 +#: src/components/shortcuts-settings.jsx:98 +#: src/components/shortcuts-settings.jsx:136 #: src/pages/login.jsx:203 msgid "Instance" msgstr "" -#: src/components/shortcuts-settings.jsx:78 -#: src/components/shortcuts-settings.jsx:87 -#: src/components/shortcuts-settings.jsx:125 +#: src/components/shortcuts-settings.jsx:92 +#: src/components/shortcuts-settings.jsx:101 +#: src/components/shortcuts-settings.jsx:139 msgid "Optional, e.g. mastodon.social" msgstr "" -#: src/components/shortcuts-settings.jsx:93 +#: src/components/shortcuts-settings.jsx:107 msgid "Search term" msgstr "" -#: src/components/shortcuts-settings.jsx:96 +#: src/components/shortcuts-settings.jsx:110 msgid "Optional, unless for multi-column mode" msgstr "" -#: src/components/shortcuts-settings.jsx:113 +#: src/components/shortcuts-settings.jsx:127 msgid "e.g. PixelArt (Max 5, space-separated)" msgstr "" -#: src/components/shortcuts-settings.jsx:117 +#: src/components/shortcuts-settings.jsx:131 #: src/pages/hashtag.jsx:360 msgid "Media only" msgstr "" -#: src/components/shortcuts-settings.jsx:235 +#: src/components/shortcuts-settings.jsx:266 #: src/components/shortcuts.jsx:220 msgid "Shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:243 +#: src/components/shortcuts-settings.jsx:274 msgid "beta" msgstr "" -#: src/components/shortcuts-settings.jsx:249 +#: src/components/shortcuts-settings.jsx:280 msgid "Specify a list of shortcuts that'll appear as:" msgstr "" -#: src/components/shortcuts-settings.jsx:255 +#: src/components/shortcuts-settings.jsx:286 msgid "Floating button" msgstr "" -#: src/components/shortcuts-settings.jsx:260 +#: src/components/shortcuts-settings.jsx:291 msgid "Tab/Menu bar" msgstr "" -#: src/components/shortcuts-settings.jsx:265 +#: src/components/shortcuts-settings.jsx:296 msgid "Multi-column" msgstr "" -#: src/components/shortcuts-settings.jsx:332 +#: src/components/shortcuts-settings.jsx:363 msgid "Not available in current view mode" msgstr "" -#: src/components/shortcuts-settings.jsx:351 +#: src/components/shortcuts-settings.jsx:382 #: src/pages/accounts.jsx:188 msgid "Move up" msgstr "" -#: src/components/shortcuts-settings.jsx:367 +#: src/components/shortcuts-settings.jsx:398 #: src/pages/accounts.jsx:203 msgid "Move down" msgstr "" -#: src/components/shortcuts-settings.jsx:379 +#: src/components/shortcuts-settings.jsx:410 #: src/components/status.jsx:1339 #: src/pages/list.jsx:195 msgid "Edit" msgstr "" -#: src/components/shortcuts-settings.jsx:400 +#: src/components/shortcuts-settings.jsx:431 msgid "Add more than one shortcut/column to make this work." msgstr "" -#: src/components/shortcuts-settings.jsx:411 +#: src/components/shortcuts-settings.jsx:442 msgid "No columns yet. Tap on the Add column button." msgstr "" -#: src/components/shortcuts-settings.jsx:412 +#: src/components/shortcuts-settings.jsx:443 msgid "No shortcuts yet. Tap on the Add shortcut button." msgstr "" -#: src/components/shortcuts-settings.jsx:415 +#: src/components/shortcuts-settings.jsx:446 msgid "Not sure what to add?<0/>Try adding <1>Home / Following and Notifications1> first." msgstr "" -#: src/components/shortcuts-settings.jsx:443 +#: src/components/shortcuts-settings.jsx:474 msgid "Max {SHORTCUTS_LIMIT} columns" msgstr "" -#: src/components/shortcuts-settings.jsx:444 +#: src/components/shortcuts-settings.jsx:475 msgid "Max {SHORTCUTS_LIMIT} shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:458 +#: src/components/shortcuts-settings.jsx:489 msgid "Import/export" msgstr "" -#: src/components/shortcuts-settings.jsx:468 +#: src/components/shortcuts-settings.jsx:499 msgid "Add column…" msgstr "" -#: src/components/shortcuts-settings.jsx:469 +#: src/components/shortcuts-settings.jsx:500 msgid "Add shortcut…" msgstr "" -#: src/components/shortcuts-settings.jsx:516 +#: src/components/shortcuts-settings.jsx:547 msgid "Specific list is optional. For multi-column mode, list is required, else the column will not be shown." msgstr "" -#: src/components/shortcuts-settings.jsx:517 +#: src/components/shortcuts-settings.jsx:548 msgid "For multi-column mode, search term is required, else the column will not be shown." msgstr "" -#: src/components/shortcuts-settings.jsx:518 +#: src/components/shortcuts-settings.jsx:549 msgid "Multiple hashtags are supported. Space-separated." msgstr "" -#: src/components/shortcuts-settings.jsx:587 +#: src/components/shortcuts-settings.jsx:618 msgid "Edit shortcut" msgstr "" -#: src/components/shortcuts-settings.jsx:587 +#: src/components/shortcuts-settings.jsx:618 msgid "Add shortcut" msgstr "" -#: src/components/shortcuts-settings.jsx:623 +#: src/components/shortcuts-settings.jsx:654 msgid "Timeline" msgstr "" -#: src/components/shortcuts-settings.jsx:649 +#: src/components/shortcuts-settings.jsx:680 msgid "List" msgstr "" -#: src/components/shortcuts-settings.jsx:788 +#: src/components/shortcuts-settings.jsx:845 msgid "Import/Export <0>Shortcuts0>" msgstr "" -#: src/components/shortcuts-settings.jsx:798 +#: src/components/shortcuts-settings.jsx:855 msgid "Import" msgstr "" -#: src/components/shortcuts-settings.jsx:806 +#: src/components/shortcuts-settings.jsx:863 msgid "Paste shortcuts here" msgstr "" -#: src/components/shortcuts-settings.jsx:822 +#: src/components/shortcuts-settings.jsx:879 msgid "Downloading saved shortcuts from instance server…" msgstr "" -#: src/components/shortcuts-settings.jsx:851 +#: src/components/shortcuts-settings.jsx:908 msgid "Unable to download shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:854 +#: src/components/shortcuts-settings.jsx:911 msgid "Download shortcuts from instance server" msgstr "" -#: src/components/shortcuts-settings.jsx:912 +#: src/components/shortcuts-settings.jsx:969 msgid "* Exists in current shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:917 +#: src/components/shortcuts-settings.jsx:974 msgid "List may not work if it's from a different account." msgstr "" -#: src/components/shortcuts-settings.jsx:927 +#: src/components/shortcuts-settings.jsx:984 msgid "Invalid settings format" msgstr "" -#: src/components/shortcuts-settings.jsx:935 +#: src/components/shortcuts-settings.jsx:992 msgid "Append to current shortcuts?" msgstr "" -#: src/components/shortcuts-settings.jsx:938 +#: src/components/shortcuts-settings.jsx:995 msgid "Only shortcuts that don’t exist in current shortcuts will be appended." msgstr "" -#: src/components/shortcuts-settings.jsx:960 +#: src/components/shortcuts-settings.jsx:1017 msgid "No new shortcuts to import" msgstr "" -#: src/components/shortcuts-settings.jsx:975 +#: src/components/shortcuts-settings.jsx:1032 msgid "Shortcuts imported. Exceeded max {SHORTCUTS_LIMIT}, so the rest are not imported." msgstr "" -#: src/components/shortcuts-settings.jsx:976 -#: src/components/shortcuts-settings.jsx:1000 +#: src/components/shortcuts-settings.jsx:1033 +#: src/components/shortcuts-settings.jsx:1057 msgid "Shortcuts imported" msgstr "" -#: src/components/shortcuts-settings.jsx:986 +#: src/components/shortcuts-settings.jsx:1043 msgid "Import & append…" msgstr "" -#: src/components/shortcuts-settings.jsx:994 +#: src/components/shortcuts-settings.jsx:1051 msgid "Override current shortcuts?" msgstr "" -#: src/components/shortcuts-settings.jsx:995 +#: src/components/shortcuts-settings.jsx:1052 msgid "Import shortcuts?" msgstr "" -#: src/components/shortcuts-settings.jsx:1009 +#: src/components/shortcuts-settings.jsx:1066 msgid "or override…" msgstr "" -#: src/components/shortcuts-settings.jsx:1009 +#: src/components/shortcuts-settings.jsx:1066 msgid "Import…" msgstr "" -#: src/components/shortcuts-settings.jsx:1018 +#: src/components/shortcuts-settings.jsx:1075 msgid "Export" msgstr "" -#: src/components/shortcuts-settings.jsx:1033 +#: src/components/shortcuts-settings.jsx:1090 msgid "Shortcuts copied" msgstr "" -#: src/components/shortcuts-settings.jsx:1036 +#: src/components/shortcuts-settings.jsx:1093 msgid "Unable to copy shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:1050 +#: src/components/shortcuts-settings.jsx:1107 msgid "Shortcut settings copied" msgstr "" -#: src/components/shortcuts-settings.jsx:1053 +#: src/components/shortcuts-settings.jsx:1110 msgid "Unable to copy shortcut settings" msgstr "" -#: src/components/shortcuts-settings.jsx:1083 +#: src/components/shortcuts-settings.jsx:1140 msgid "Share" msgstr "" -#: src/components/shortcuts-settings.jsx:1122 +#: src/components/shortcuts-settings.jsx:1179 msgid "Saving shortcuts to instance server…" msgstr "" -#: src/components/shortcuts-settings.jsx:1129 +#: src/components/shortcuts-settings.jsx:1186 msgid "Shortcuts saved" msgstr "" -#: src/components/shortcuts-settings.jsx:1134 +#: src/components/shortcuts-settings.jsx:1191 msgid "Unable to save shortcuts" msgstr "" -#: src/components/shortcuts-settings.jsx:1137 +#: src/components/shortcuts-settings.jsx:1194 msgid "Sync to instance server" msgstr "" #. placeholder {0}: shortcutsStr.length -#: src/components/shortcuts-settings.jsx:1145 +#: src/components/shortcuts-settings.jsx:1202 msgid "{0, plural, one {# character} other {# characters}}" msgstr "" -#: src/components/shortcuts-settings.jsx:1157 +#: src/components/shortcuts-settings.jsx:1214 msgid "Raw Shortcuts JSON" msgstr "" -#: src/components/shortcuts-settings.jsx:1170 +#: src/components/shortcuts-settings.jsx:1227 msgid "Import/export settings from/to instance server (Very experimental)" msgstr "" @@ -2783,7 +2791,7 @@ msgid "Nothing to see here yet." msgstr "" #: src/pages/account-statuses.jsx:517 -#: src/pages/public.jsx:99 +#: src/pages/public.jsx:116 #: src/pages/trending.jsx:452 msgid "Unable to load posts" msgstr "" @@ -3355,25 +3363,25 @@ msgid "Add to Shortcuts" msgstr "" #: src/pages/hashtag.jsx:491 -#: src/pages/public.jsx:141 +#: src/pages/public.jsx:165 #: src/pages/trending.jsx:481 msgid "Enter a new instance e.g. \"mastodon.social\"" msgstr "" #: src/pages/hashtag.jsx:494 -#: src/pages/public.jsx:144 +#: src/pages/public.jsx:168 #: src/pages/trending.jsx:484 msgid "Invalid instance" msgstr "" #: src/pages/hashtag.jsx:508 -#: src/pages/public.jsx:158 +#: src/pages/public.jsx:184 #: src/pages/trending.jsx:496 msgid "Go to another instance…" msgstr "" #: src/pages/hashtag.jsx:521 -#: src/pages/public.jsx:171 +#: src/pages/public.jsx:197 #: src/pages/trending.jsx:507 msgid "Go to my instance (<0>{currentInstance}0>)" msgstr "" @@ -3601,29 +3609,41 @@ msgid "Local timeline ({instance})" msgstr "" #: src/pages/public.jsx:29 +msgid "Bubble timeline ({instance})" +msgstr "Bubble timeline ({instance})" + +#: src/pages/public.jsx:30 msgid "Federated timeline ({instance})" msgstr "" -#: src/pages/public.jsx:92 +#: src/pages/public.jsx:98 msgid "Local timeline" msgstr "" -#: src/pages/public.jsx:92 +#: src/pages/public.jsx:99 +msgid "Bubble timeline" +msgstr "Bubble timeline" + +#: src/pages/public.jsx:100 msgid "Federated timeline" msgstr "" -#: src/pages/public.jsx:98 +#: src/pages/public.jsx:115 msgid "No one has posted anything yet." msgstr "" -#: src/pages/public.jsx:125 -msgid "Switch to Federated" -msgstr "Switch to Federated" - -#: src/pages/public.jsx:132 +#: src/pages/public.jsx:141 msgid "Switch to Local" msgstr "Switch to Local" +#: src/pages/public.jsx:149 +msgid "Switch to Bubble" +msgstr "Switch to Bubble" + +#: src/pages/public.jsx:157 +msgid "Switch to Federated" +msgstr "Switch to Federated" + #: src/pages/scheduled-posts.jsx:110 msgid "No scheduled posts." msgstr "No scheduled posts." diff --git a/src/pages/public.jsx b/src/pages/public.jsx index ddac68a7f2..253d4af58b 100644 --- a/src/pages/public.jsx +++ b/src/pages/public.jsx @@ -15,33 +15,55 @@ import useTitle from '../utils/useTitle'; const LIMIT = 20; -function Public({ local, columnMode, ...props }) { +function Public({ variant = 'federated', columnMode, ...props }) { const { t } = useLingui(); const snapStates = useSnapshot(states); - const isLocal = !!local; const params = columnMode ? {} : useParams(); + const { masto, instance } = api({ instance: props?.instance || params.instance, }); + const { masto: currentMasto, instance: currentInstance } = api(); - const title = isLocal - ? t`Local timeline (${instance})` - : t`Federated timeline (${instance})`; - useTitle(title, isLocal ? `/:instance?/p/l` : `/:instance?/p`); + + const title = { + local: t`Local timeline (${instance})`, + bubble: t`Bubble timeline (${instance})`, + federated: t`Federated timeline (${instance})`, + }[variant]; + + const path = { + local: `/:instance?/p/l`, + bubble: `/:instance?/p/b`, + federated: `/:instance?/p`, + }[variant]; + useTitle(title, path); + // const navigate = useNavigate(); const latestItem = useRef(); + // TODO: this switches depending on our current instance, and not the instance we're viewing + let endpoint; + if(supports('@akkoma/bubble-timeline')) { + endpoint = masto.v1.timelines.bubble + } + else { + endpoint = masto.v1.timelines.public + } + const publicIterator = useRef(); async function fetchPublic(firstLoad) { if (firstLoad || !publicIterator.current) { + + // TODO: same as above for Pixelfed here const opts = { limit: LIMIT, - local: isLocal || undefined, + local: variant === 'local' || undefined, + bubble: variant === 'bubble' || undefined, + remote: variant === 'federated' && supports('@pixelfed/global-feed') || undefined, }; - if (!isLocal && supports('@pixelfed/global-feed')) { - opts.remote = true; - } - publicIterator.current = masto.v1.timelines.public.list(opts).values(); + + publicIterator.current = endpoint.list(opts).values(); } const results = await publicIterator.current.next(); let { value } = results; @@ -63,10 +85,10 @@ function Public({ local, columnMode, ...props }) { async function checkForUpdates() { try { - const results = await masto.v1.timelines.public + const results = await endpoint .list({ limit: 1, - local: isLocal, + local: variant === 'local', since_id: latestItem.current, }) .values() @@ -83,13 +105,19 @@ function Public({ local, columnMode, ...props }) { } } + const headerText = { + local: t`Local timeline`, + bubble: t`Bubble timeline`, + federated: t`Federated timeline`, + }[variant]; + return (