From 9e0dbb73377588653f6586d9bb236b19aba222e2 Mon Sep 17 00:00:00 2001 From: Rakib Hasan Date: Sun, 19 Feb 2017 07:32:35 +0000 Subject: [PATCH 1/4] Fixing issue #626 The status is not showing anymore after clicking on it --- app/assets/javascripts/components/actions/statuses.jsx | 4 +++- app/assets/javascripts/components/features/status/index.jsx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx index ee662fe79..d83edd145 100644 --- a/app/assets/javascripts/components/actions/statuses.jsx +++ b/app/assets/javascripts/components/actions/statuses.jsx @@ -28,7 +28,6 @@ export function fetchStatus(id) { const skipLoading = getState().getIn(['statuses', id], null) !== null; dispatch(fetchContext(id)); - dispatch(fetchStatusCard(id)); if (skipLoading) { return; @@ -102,7 +101,10 @@ export function fetchContext(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)); dispatch(fetchContextFail(id, error)); }); }; diff --git a/app/assets/javascripts/components/features/status/index.jsx b/app/assets/javascripts/components/features/status/index.jsx index e17c078d2..7c9fcef3d 100644 --- a/app/assets/javascripts/components/features/status/index.jsx +++ b/app/assets/javascripts/components/features/status/index.jsx @@ -117,7 +117,7 @@ const Status = React.createClass({ if (status === null) { return ( - + ); } From 8e760d5f622672b9b9a073109bd34758a3e3086b Mon Sep 17 00:00:00 2001 From: Rakib Hasan Date: Sun, 19 Feb 2017 07:42:03 +0000 Subject: [PATCH 2/4] adding new react class StatusNotFound --- .../components/components/status_not_found.jsx | 16 ++++++++++++++++ .../components/features/status/index.jsx | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/components/components/status_not_found.jsx diff --git a/app/assets/javascripts/components/components/status_not_found.jsx b/app/assets/javascripts/components/components/status_not_found.jsx new file mode 100644 index 000000000..917c1c06f --- /dev/null +++ b/app/assets/javascripts/components/components/status_not_found.jsx @@ -0,0 +1,16 @@ +import { FormattedMessage } from 'react-intl'; + +const style = { + textAlign: 'center', + fontSize: '16px', + fontWeight: '500', + paddingTop: '120px' +}; + +const StatusNotFound = () => ( +
+ +
+); + +export default StatusNotFound; diff --git a/app/assets/javascripts/components/features/status/index.jsx b/app/assets/javascripts/components/features/status/index.jsx index 7c9fcef3d..68509d593 100644 --- a/app/assets/javascripts/components/features/status/index.jsx +++ b/app/assets/javascripts/components/features/status/index.jsx @@ -4,7 +4,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { fetchStatus } from '../../actions/statuses'; import Immutable from 'immutable'; import EmbeddedStatus from '../../components/status'; -import LoadingIndicator from '../../components/loading_indicator'; +import StatusNotFound from '../../components/status_not_found'; import DetailedStatus from './components/detailed_status'; import ActionBar from './components/action_bar'; import Column from '../ui/components/column'; @@ -118,6 +118,7 @@ const Status = React.createClass({ return ( + ); } From 910df0f7954d5991a64ff419fa60d8327807808f Mon Sep 17 00:00:00 2001 From: Rakib Hasan Date: Sun, 19 Feb 2017 08:13:57 +0000 Subject: [PATCH 3/4] Removing dispatch of fetchContextFail No need to flash error message when status is not found. The column will display the message "status not found" --- app/assets/javascripts/components/actions/statuses.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx index d83edd145..66b25f6f0 100644 --- a/app/assets/javascripts/components/actions/statuses.jsx +++ b/app/assets/javascripts/components/actions/statuses.jsx @@ -105,7 +105,6 @@ export function fetchContext(id) { }).catch(error => { dispatch(deleteStatusSuccess(id)); dispatch(deleteFromTimelines(id)); - dispatch(fetchContextFail(id, error)); }); }; }; From dfd4a42b350a0f258b0b1f8dcd2296289a98381c Mon Sep 17 00:00:00 2001 From: Rakib Hasan Date: Sun, 19 Feb 2017 10:54:27 +0000 Subject: [PATCH 4/4] added if else clause in fetchContext So that if we get an error, then we will only delete status if it is an 404 error --- app/assets/javascripts/components/actions/statuses.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/components/actions/statuses.jsx b/app/assets/javascripts/components/actions/statuses.jsx index 66b25f6f0..6f43539e0 100644 --- a/app/assets/javascripts/components/actions/statuses.jsx +++ b/app/assets/javascripts/components/actions/statuses.jsx @@ -103,8 +103,12 @@ export function fetchContext(id) { dispatch(fetchContextSuccess(id, response.data.ancestors, response.data.descendants)); dispatch(fetchStatusCard(id)); }).catch(error => { - dispatch(deleteStatusSuccess(id)); - dispatch(deleteFromTimelines(id)); + if (error.response.status == 404){ + dispatch(deleteStatusSuccess(id)); + dispatch(deleteFromTimelines(id)); + }else{ + dispatch(fetchContextFail(id, error)); + } }); }; };