|
|
@ -4,8 +4,8 @@ import { useParams } from 'react-router-dom';
|
|
|
|
|
|
|
|
|
|
|
|
import { fetchList } from 'soapbox/actions/lists';
|
|
|
|
import { fetchList } from 'soapbox/actions/lists';
|
|
|
|
import { openModal } from 'soapbox/actions/modals';
|
|
|
|
import { openModal } from 'soapbox/actions/modals';
|
|
|
|
import { connectListStream } from 'soapbox/actions/streaming';
|
|
|
|
|
|
|
|
import { expandListTimeline } from 'soapbox/actions/timelines';
|
|
|
|
import { expandListTimeline } from 'soapbox/actions/timelines';
|
|
|
|
|
|
|
|
import { useListStream } from 'soapbox/api/hooks';
|
|
|
|
import MissingIndicator from 'soapbox/components/missing-indicator';
|
|
|
|
import MissingIndicator from 'soapbox/components/missing-indicator';
|
|
|
|
import { Column, Button, Spinner } from 'soapbox/components/ui';
|
|
|
|
import { Column, Button, Spinner } from 'soapbox/components/ui';
|
|
|
|
import { useAppDispatch, useAppSelector } from 'soapbox/hooks';
|
|
|
|
import { useAppDispatch, useAppSelector } from 'soapbox/hooks';
|
|
|
@ -19,15 +19,11 @@ const ListTimeline: React.FC = () => {
|
|
|
|
const list = useAppSelector((state) => state.lists.get(id));
|
|
|
|
const list = useAppSelector((state) => state.lists.get(id));
|
|
|
|
const next = useAppSelector(state => state.timelines.get(`list:${id}`)?.next);
|
|
|
|
const next = useAppSelector(state => state.timelines.get(`list:${id}`)?.next);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useListStream(id);
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
useEffect(() => {
|
|
|
|
dispatch(fetchList(id));
|
|
|
|
dispatch(fetchList(id));
|
|
|
|
dispatch(expandListTimeline(id));
|
|
|
|
dispatch(expandListTimeline(id));
|
|
|
|
|
|
|
|
|
|
|
|
const disconnect = dispatch(connectListStream(id));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return () => {
|
|
|
|
|
|
|
|
disconnect();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}, [id]);
|
|
|
|
}, [id]);
|
|
|
|
|
|
|
|
|
|
|
|
const handleLoadMore = (maxId: string) => {
|
|
|
|
const handleLoadMore = (maxId: string) => {
|
|
|
|