From cf1ee0627355f6b0a9daf688717e2478894b6e75 Mon Sep 17 00:00:00 2001 From: SachaG Date: Fri, 3 Feb 2017 15:36:40 +0900 Subject: [PATCH] pass error to PostsList and show error message --- .../nova-base-components/lib/posts/PostsList.jsx | 15 +++++++++++++-- packages/nova-core/lib/containers/withList.js | 4 +++- packages/nova-routing/lib/routing-client.jsx | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/nova-base-components/lib/posts/PostsList.jsx b/packages/nova-base-components/lib/posts/PostsList.jsx index 4a784c665..0eb5b8eb7 100644 --- a/packages/nova-base-components/lib/posts/PostsList.jsx +++ b/packages/nova-base-components/lib/posts/PostsList.jsx @@ -3,14 +3,25 @@ import React from 'react'; import { withList } from 'meteor/nova:core'; import Posts from 'meteor/nova:posts'; import { withCurrentUser } from 'meteor/nova:core'; +import { Alert } from 'react-bootstrap'; const PostsList = (props) => { - const {results, loading, count, totalCount, loadMore, showHeader = true, networkStatus, currentUser} = props; + const {results, loading, count, totalCount, loadMore, showHeader = true, networkStatus, currentUser, error} = props; const loadingMore = networkStatus === 2; - if (results && results.length) { + if (error) { + + return ( +
+ + {error.message} + +
+ ) + + } else if (results && results.length) { const hasMore = totalCount > results.length; diff --git a/packages/nova-core/lib/containers/withList.js b/packages/nova-core/lib/containers/withList.js index fb1ece91d..80211756b 100644 --- a/packages/nova-core/lib/containers/withList.js +++ b/packages/nova-core/lib/containers/withList.js @@ -110,7 +110,8 @@ const withList = (options) => { // results = Utils.convertDates(collection, props.data[listResolverName]), results = props.data[listResolverName], totalCount = props.data[totalResolverName], - networkStatus = props.data.networkStatus; + networkStatus = props.data.networkStatus, + error = props.data.error; return { // see https://github.com/apollostack/apollo-client/blob/master/src/queries/store.ts#L28-L36 @@ -120,6 +121,7 @@ const withList = (options) => { totalCount, refetch, networkStatus, + error, count: results && results.length, // regular load more (reload everything) diff --git a/packages/nova-routing/lib/routing-client.jsx b/packages/nova-routing/lib/routing-client.jsx index 03861be04..05726aa71 100644 --- a/packages/nova-routing/lib/routing-client.jsx +++ b/packages/nova-routing/lib/routing-client.jsx @@ -47,7 +47,7 @@ Meteor.startup(function initNovaRoutesAndApollo() { // configure apollo client = new ApolloClient(meteorClientConfig()); - var apolloClientReducer = (state = initialState.apollo, action) => { + var apolloClientReducer = (state = initialState && initialState.apollo, action) => { return client.reducer()(state, action); }; addReducer({apollo: apolloClientReducer});