Added LinkTimeline and PreviewCard fetching by id

• Added:
- LinkTimeline and PreviewCard fetching by id
This commit is contained in:
mgabdev
2020-10-29 18:46:54 -05:00
parent f7dc62460c
commit f129d9c49b
15 changed files with 325 additions and 1 deletions

View File

@@ -0,0 +1,30 @@
import api from '../api'
export const LINK_FETCH_REQUEST = 'LINK_FETCH_REQUEST'
export const LINK_FETCH_SUCCESS = 'LINK_FETCH_SUCCESS'
export const LINK_FETCH_FAIL = 'LINK_FETCH_FAIL'
export const fetchLinkCard = (cardId) => (dispatch, getState) => {
dispatch(fetchLinkCardRequest(cardId))
api(getState).get(`/api/v1/links/${cardId}`).then(({ data }) => {
dispatch(fetchLinkCardSuccess(data))
})
.catch((err) => dispatch(fetchLinkCardFail(err)))
}
export const fetchLinkCardRequest = (cardId) => ({
type: LINK_FETCH_REQUEST,
cardId,
})
export const fetchLinkCardSuccess = (card) => ({
type: LINK_FETCH_SUCCESS,
card,
})
export const fetchLinkCardFail = (error, cardId) => ({
type: LINK_FETCH_FAIL,
error,
cardId,
})

View File

@@ -52,6 +52,7 @@ export function connectTimelineStream (timelineId, path, pollingRefresh = null,
export const connectUserStream = () => connectTimelineStream('home', 'user');
export const connectProStream = () => connectTimelineStream('pro', 'pro');
export const connectLinkStream = (linkId, accept) => connectTimelineStream(`link:${linkId}`, `link&linkId=${linkId}`, null, accept);
export const connectHashtagStream = (id, tag, accept) => connectTimelineStream(`hashtag:${id}`, `hashtag&tag=${tag}`, null, accept);
export const connectListStream = id => connectTimelineStream(`list:${id}`, `list&list=${id}`);
export const connectGroupStream = id => connectTimelineStream(`group:${id}`, `group&group=${id}`);

View File

@@ -176,6 +176,7 @@ export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTim
export const expandGroupTimeline = (id, { sortBy, maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`group:${id}`, `/api/v1/timelines/group/${id}`, { sort_by: sortBy, max_id: maxId, only_media: onlyMedia }, done);
export const expandGroupFeaturedTimeline = (groupId, done = noOp) => expandTimeline(`group:${groupId}:pinned`, `/api/v1/timelines/group_pins/${groupId}`, {}, done);
export const expandGroupCollectionTimeline = (collectionType, { sortBy, maxId } = {}, done = noOp) => expandTimeline(`group_collection:${collectionType}`, `/api/v1/timelines/group_collection/${collectionType}`, { sort_by: sortBy, max_id: maxId }, done);
export const expandLinkTimeline = (linkId, { maxId } = {}, done = noOp) => expandTimeline(`link:${linkId}`, `/api/v1/timelines/preview_card/${linkId}`, { max_id: maxId }, done);
export const expandHashtagTimeline = (hashtag, { maxId, tags } = {}, done = noOp) => {
return expandTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`, {
max_id: maxId,