display source errors in card

This commit is contained in:
Lachlan Kermode
2018-12-11 11:24:53 +00:00
parent bf0c78d0a0
commit ab20d962ad
6 changed files with 38 additions and 17 deletions

View File

@@ -91,7 +91,10 @@ class Card extends React.Component {
<CardSource
isLoading={this.props.isLoading}
language={this.props.language}
source={this.props.event.source}
source={{
...this.props.source,
error: this.props.sourceError
}}
/>
)
}
@@ -137,11 +140,6 @@ class Card extends React.Component {
}
renderContent() {
// if (!this.state.isHighlighted) {
// return (
// <div className="card-bottomhalf folded"></div>
// );
// } else {
return (
<div className="card-bottomhalf">
{this.renderTags()}
@@ -149,7 +147,6 @@ class Card extends React.Component {
{this.renderNarrative()}
</div>
);
// }
}
renderCaret() {

View File

@@ -20,6 +20,7 @@ class CardStack extends React.Component {
return (
<Card
event={event}
sourceError={this.props.sourceError}
language={this.props.language}
isLoading={this.props.isLoading}
getNarrativeLinks={this.props.getNarrativeLinks}
@@ -89,6 +90,7 @@ class CardStack extends React.Component {
function mapStateToProps(state) {
return {
selected: state.app.selected,
sourceError: state.app.errors.source,
language: state.app.language,
isCardstack: state.app.flags.isCardstack,
isLoading: state.app.flags.isFetchingSources

View File

@@ -3,20 +3,27 @@ import Spinner from './Spinner'
import copy from '../../js/data/copy.json'
const CardSource = ({ source, language, isLoading }) => {
const CardSource = ({ source, language, isLoading, error }) => {
const source_lang = copy[language].cardstack.source
if (!source) source = copy[language].cardstack.unknown_source
const content = isLoading ? (
<Spinner />
) : (
<div><small>{source}</small></div>
)
if (isLoading) {
return <Spinner />
}
function renderSource() {
return (
<div><p>TODO: display source properly.</p></div>
)
}
return (
<div className="card-col card-cell source">
<h4>{source_lang}: </h4>
{content}
{source.error ? (
<div><small>{source.error}</small></div>
) : (
renderSource()
)}
</div>
)
}