An error occurred while loading the file. Please try again.
-
Chloé JACOB authoredc4ad89b0
thunks.ts 1.44 KiB
import { Instalike } from '@jmetterrothan/instalike';
import { data } from 'autoprefixer';
// Autres fichiers
import type { AppThunkAction } from '../types';
import { setUserFeed, likePostFeedAction, unlikePostFeedAction, deleteCommentFeedAction } from './actions';
// Users pour le feed
export const fetchFeedUserAsync = (): AppThunkAction<Promise<void>> => {
return async (dispatch, getState, api) => {
const { data } = await api.users.me.feed.fetch({ cursor: null });
dispatch(setUserFeed(data.items));
};
};
// Like post
export const likepostAsync = (postId: number): AppThunkAction<Promise<void>> => {
return async (dispatch, getState, api) => {
try {
await api.posts.find(postId).like();
dispatch(likePostFeedAction(postId));
} catch (e) {
throw e;
}
};
};
// Unlike post
export const unlikePostAsync = (postId: number): AppThunkAction<Promise<void>> => {
return async (dispatch, getState, api) => {
try {
await api.posts.find(postId).unlike();
dispatch(unlikePostFeedAction(postId));
} catch (e) {
throw e;
}
};
};
// Delete its own comment
export const deleteCommentFeedAsync = (postId: number, commentId: number): AppThunkAction<Promise<void>> => {
return async (dispatch, getState, api) => {
try {
await api.posts.find(postId).comments.find(commentId).delete();
dispatch(deleteCommentFeedAction(commentId));
} catch (e) {
throw e;
}
};
};