gab-social/app/javascript/gabsocial/actions/reports.js

85 lines
1.9 KiB
JavaScript

import api from '../api'
import { openModal, closeModal } from './modal'
import { MODAL_REPORT } from '../constants'
export const REPORT_INIT = 'REPORT_INIT'
export const REPORT_CANCEL = 'REPORT_CANCEL'
export const REPORT_SUBMIT_REQUEST = 'REPORT_SUBMIT_REQUEST'
export const REPORT_SUBMIT_SUCCESS = 'REPORT_SUBMIT_SUCCESS'
export const REPORT_SUBMIT_FAIL = 'REPORT_SUBMIT_FAIL'
export const REPORT_STATUS_TOGGLE = 'REPORT_STATUS_TOGGLE'
export const REPORT_COMMENT_CHANGE = 'REPORT_COMMENT_CHANGE'
export const REPORT_FORWARD_CHANGE = 'REPORT_FORWARD_CHANGE'
/**
*
*/
export const initReport = (account, status) => (dispatch) => {
dispatch({
type: REPORT_INIT,
account,
status,
})
dispatch(openModal(MODAL_REPORT))
}
/**
*
*/
export const cancelReport = () => ({
type: REPORT_CANCEL,
})
/**
*
*/
export const toggleStatusReport = (statusId, checked) => ({
type: REPORT_STATUS_TOGGLE,
statusId,
checked,
})
/**
*
*/
export const submitReport = () => (dispatch, getState) => {
dispatch(submitReportRequest())
api(getState).post('/api/v1/reports', {
account_id: getState().getIn(['reports', 'new', 'account_id']),
status_ids: getState().getIn(['reports', 'new', 'status_ids']),
comment: getState().getIn(['reports', 'new', 'comment']),
forward: getState().getIn(['reports', 'new', 'forward']),
}).then((response) => {
dispatch(closeModal());
dispatch(submitReportSuccess(response.data))
}).catch((error) => dispatch(submitReportFail(error)))
}
const submitReportRequest = () => ({
type: REPORT_SUBMIT_REQUEST,
})
const submitReportSuccess = (report) => ({
type: REPORT_SUBMIT_SUCCESS,
showToast: true,
report,
})
const submitReportFail = (error) => ({
type: REPORT_SUBMIT_FAIL,
showToast: true,
error,
})
/**
*
*/
export const changeReportComment = (comment) => ({
type: REPORT_COMMENT_CHANGE,
comment,
})