|
|
- import api from '../api'
-
- export const COMPOSE_CHANGE = 'COMPOSE_CHANGE';
- export const COMPOSE_SUBMIT = 'COMPOSE_SUBMIT';
- export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST';
- export const COMPOSE_SUBMIT_SUCCESS = 'COMPOSE_SUBMIT_SUCCESS';
- export const COMPOSE_SUBMIT_FAIL = 'COMPOSE_SUBMIT_FAIL';
- export const COMPOSE_REPLY = 'COMPOSE_REPLY';
- export const COMPOSE_REPLY_CANCEL = 'COMPOSE_REPLY_CANCEL';
- export const COMPOSE_UPLOAD = 'COMPOSE_UPLOAD';
- export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST';
- export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS';
- export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL';
- export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS';
- export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO';
-
- export function changeCompose(text) {
- return {
- type: COMPOSE_CHANGE,
- text: text
- };
- }
-
- export function replyCompose(status) {
- return {
- type: COMPOSE_REPLY,
- status: status
- };
- }
-
- export function cancelReplyCompose() {
- return {
- type: COMPOSE_REPLY_CANCEL
- };
- }
-
- export function submitCompose() {
- return function (dispatch, getState) {
- dispatch(submitComposeRequest());
-
- api(getState).post('/api/statuses', {
- status: getState().getIn(['compose', 'text'], ''),
- in_reply_to_id: getState().getIn(['compose', 'in_reply_to'], null),
- media_ids: getState().getIn(['compose', 'media_attachments']).map(item => item.get('id'))
- }).then(function (response) {
- dispatch(submitComposeSuccess(response.data));
- }).catch(function (error) {
- dispatch(submitComposeFail(error));
- });
- };
- }
-
- export function submitComposeRequest() {
- return {
- type: COMPOSE_SUBMIT_REQUEST
- };
- }
-
- export function submitComposeSuccess(status) {
- return {
- type: COMPOSE_SUBMIT_SUCCESS,
- status: status
- };
- }
-
- export function submitComposeFail(error) {
- return {
- type: COMPOSE_SUBMIT_FAIL,
- error: error
- };
- }
-
- export function uploadCompose(files) {
- return function (dispatch, getState) {
- dispatch(uploadComposeRequest());
-
- let data = new FormData();
- data.append('file', files[0]);
-
- api(getState).post('/api/media', data, {
- onUploadProgress: function (e) {
- dispatch(uploadComposeProgress(e.loaded, e.total));
- }
- }).then(function (response) {
- dispatch(uploadComposeSuccess(response.data));
- }).catch(function (error) {
- dispatch(uploadComposeFail(error));
- });
- };
- }
-
- export function uploadComposeRequest() {
- return {
- type: COMPOSE_UPLOAD_REQUEST
- };
- }
-
- export function uploadComposeProgress(loaded, total) {
- return {
- type: COMPOSE_UPLOAD_PROGRESS,
- loaded: loaded,
- total: total
- };
- }
-
- export function uploadComposeSuccess(media) {
- return {
- type: COMPOSE_UPLOAD_SUCCESS,
- media: media
- };
- }
-
- export function uploadComposeFail(error) {
- return {
- type: COMPOSE_UPLOAD_FAIL,
- error: error
- };
- }
-
- export function undoUploadCompose(media_id) {
- return {
- type: COMPOSE_UPLOAD_UNDO,
- media_id: media_id
- };
- }
|