55 lines
1.3 KiB
TypeScript
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,
|
|
});
|
|
};
|