Files
Rocketplan/src/shared/containers/DropZone/actions.ts
T
2022-11-26 01:23:44 -05:00

55 lines
1.3 KiB
TypeScript

/* eslint-disable */
import { handleApiRequest } from 'Utils/handleApiRequest';
export const FILE_UPLOADING_ROOM_ALBUM = 'FILE_UPLOADING_ROOM_ALBUM';
export const REFRESH_ROOM_PHOTOS = 'REFRESH_ROOM_PHOTOS';
interface ActionTypes {
FILE_UPLOADING_ROOM_ALBUM: number;
REFRESH_ROOM_PHOTOS: any;
}
interface MessageAction {
type: keyof ActionTypes;
payload: any;
}
export type setDropZoneActionTypes = MessageAction;
export const attachAlbumPhoto =
(photoId: number, albumId: number, refreshPhotos?: any) =>
async (dispatch: any, _getState = null, utils: any) => {
const response = await handleApiRequest(
dispatch,
utils.Api.post(
`photos/${photoId}/albums/${albumId}
`,
{}
)
);
// refresh photo gallery photos once the last item attached to the album
if (typeof response === 'string' && refreshPhotos?.refresh) {
dispatch(setRefreshRoomPhotos(refreshPhotos));
}
};
/*
* NON API THUNKS
* */
export const setFileUploadingRoom = (roomAndAlbum: any) => async (dispatch: any) => {
dispatch({
type: FILE_UPLOADING_ROOM_ALBUM,
payload: roomAndAlbum,
});
};
export const setRefreshRoomPhotos = (value: any) => async (dispatch: any) => {
dispatch({
type: REFRESH_ROOM_PHOTOS,
payload: value,
});
};