mirror of
https://github.com/mastodon/mastodon
synced 2024-12-04 01:38:17 +09:00
910df0f795
No need to flash error message when status is not found. The column will display the message "status not found"
136 lines
3.0 KiB
JavaScript
136 lines
3.0 KiB
JavaScript
import api from '../api';
|
|
|
|
import { deleteFromTimelines } from './timelines';
|
|
import { fetchStatusCard } from './cards';
|
|
|
|
export const STATUS_FETCH_REQUEST = 'STATUS_FETCH_REQUEST';
|
|
export const STATUS_FETCH_SUCCESS = 'STATUS_FETCH_SUCCESS';
|
|
export const STATUS_FETCH_FAIL = 'STATUS_FETCH_FAIL';
|
|
|
|
export const STATUS_DELETE_REQUEST = 'STATUS_DELETE_REQUEST';
|
|
export const STATUS_DELETE_SUCCESS = 'STATUS_DELETE_SUCCESS';
|
|
export const STATUS_DELETE_FAIL = 'STATUS_DELETE_FAIL';
|
|
|
|
export const CONTEXT_FETCH_REQUEST = 'CONTEXT_FETCH_REQUEST';
|
|
export const CONTEXT_FETCH_SUCCESS = 'CONTEXT_FETCH_SUCCESS';
|
|
export const CONTEXT_FETCH_FAIL = 'CONTEXT_FETCH_FAIL';
|
|
|
|
export function fetchStatusRequest(id, skipLoading) {
|
|
return {
|
|
type: STATUS_FETCH_REQUEST,
|
|
id,
|
|
skipLoading
|
|
};
|
|
};
|
|
|
|
export function fetchStatus(id) {
|
|
return (dispatch, getState) => {
|
|
const skipLoading = getState().getIn(['statuses', id], null) !== null;
|
|
|
|
dispatch(fetchContext(id));
|
|
|
|
if (skipLoading) {
|
|
return;
|
|
}
|
|
|
|
dispatch(fetchStatusRequest(id, skipLoading));
|
|
|
|
api(getState).get(`/api/v1/statuses/${id}`).then(response => {
|
|
dispatch(fetchStatusSuccess(response.data, skipLoading));
|
|
}).catch(error => {
|
|
dispatch(fetchStatusFail(id, error, skipLoading));
|
|
});
|
|
};
|
|
};
|
|
|
|
export function fetchStatusSuccess(status, skipLoading) {
|
|
return {
|
|
type: STATUS_FETCH_SUCCESS,
|
|
status,
|
|
skipLoading
|
|
};
|
|
};
|
|
|
|
export function fetchStatusFail(id, error, skipLoading) {
|
|
return {
|
|
type: STATUS_FETCH_FAIL,
|
|
id,
|
|
error,
|
|
skipLoading
|
|
};
|
|
};
|
|
|
|
export function deleteStatus(id) {
|
|
return (dispatch, getState) => {
|
|
dispatch(deleteStatusRequest(id));
|
|
|
|
api(getState).delete(`/api/v1/statuses/${id}`).then(response => {
|
|
dispatch(deleteStatusSuccess(id));
|
|
dispatch(deleteFromTimelines(id));
|
|
}).catch(error => {
|
|
dispatch(deleteStatusFail(id, error));
|
|
});
|
|
};
|
|
};
|
|
|
|
export function deleteStatusRequest(id) {
|
|
return {
|
|
type: STATUS_DELETE_REQUEST,
|
|
id: id
|
|
};
|
|
};
|
|
|
|
export function deleteStatusSuccess(id) {
|
|
return {
|
|
type: STATUS_DELETE_SUCCESS,
|
|
id: id
|
|
};
|
|
};
|
|
|
|
export function deleteStatusFail(id, error) {
|
|
return {
|
|
type: STATUS_DELETE_FAIL,
|
|
id: id,
|
|
error: error
|
|
};
|
|
};
|
|
|
|
export function fetchContext(id) {
|
|
return (dispatch, getState) => {
|
|
dispatch(fetchContextRequest(id));
|
|
|
|
api(getState).get(`/api/v1/statuses/${id}/context`).then(response => {
|
|
dispatch(fetchContextSuccess(id, response.data.ancestors, response.data.descendants));
|
|
dispatch(fetchStatusCard(id));
|
|
}).catch(error => {
|
|
dispatch(deleteStatusSuccess(id));
|
|
dispatch(deleteFromTimelines(id));
|
|
});
|
|
};
|
|
};
|
|
|
|
export function fetchContextRequest(id) {
|
|
return {
|
|
type: CONTEXT_FETCH_REQUEST,
|
|
id
|
|
};
|
|
};
|
|
|
|
export function fetchContextSuccess(id, ancestors, descendants) {
|
|
return {
|
|
type: CONTEXT_FETCH_SUCCESS,
|
|
id,
|
|
ancestors,
|
|
descendants,
|
|
statuses: ancestors.concat(descendants)
|
|
};
|
|
};
|
|
|
|
export function fetchContextFail(id, error) {
|
|
return {
|
|
type: CONTEXT_FETCH_FAIL,
|
|
id,
|
|
error
|
|
};
|
|
};
|