2024-08-13 09:26:23 +02:00
|
|
|
import { t, Trans } from '@lingui/macro';
|
2023-01-28 11:52:18 +01:00
|
|
|
import { useRef } from 'preact/hooks';
|
|
|
|
|
|
|
|
import Timeline from '../components/timeline';
|
2023-02-05 17:17:19 +01:00
|
|
|
import { api } from '../utils/api';
|
2023-02-03 14:08:08 +01:00
|
|
|
import useTitle from '../utils/useTitle';
|
2023-01-28 11:52:18 +01:00
|
|
|
|
|
|
|
const LIMIT = 20;
|
|
|
|
|
|
|
|
function Favourites() {
|
2024-08-13 09:26:23 +02:00
|
|
|
useTitle(t`Likes`, '/favourites');
|
2023-02-18 17:05:46 +01:00
|
|
|
const { masto, instance } = api();
|
2023-01-28 11:52:18 +01:00
|
|
|
const favouritesIterator = useRef();
|
|
|
|
async function fetchFavourites(firstLoad) {
|
|
|
|
if (firstLoad || !favouritesIterator.current) {
|
|
|
|
favouritesIterator.current = masto.v1.favourites.list({ limit: LIMIT });
|
|
|
|
}
|
|
|
|
return await favouritesIterator.current.next();
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Timeline
|
2024-08-13 09:26:23 +02:00
|
|
|
title={t`Likes`}
|
2023-01-28 11:52:18 +01:00
|
|
|
id="favourites"
|
2024-08-13 09:26:23 +02:00
|
|
|
emptyText={`No likes yet. Go like something!`}
|
|
|
|
errorText={t`Unable to load likes.`}
|
2023-02-18 17:05:46 +01:00
|
|
|
instance={instance}
|
2023-01-28 11:52:18 +01:00
|
|
|
fetchItems={fetchFavourites}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Favourites;
|