Reading in from toolbar copy from config for narrative and filter panels

This commit is contained in:
efarooqui
2021-05-13 18:23:40 -07:00
parent b50ee8b5fe
commit 87d84df8b4
4 changed files with 35 additions and 8 deletions

View File

@@ -134,14 +134,16 @@
"placeholder": "Search"
}
},
"narratives": "Narratives",
"narratives_label": "Narratives",
"narrative_summary": "Follow a path through the data, from one key event to the next.",
"categories": "Categories",
"categories_label": "Categories",
"explore_by_narrative__title": "Explore events by narrative",
"explore_by_narrative__description": "Follow a path through the data, from one key event to the next.",
"filters": "Filters",
"filters_label": "Filters",
"explore_by_filter__title": "Explore by filter",
"explore_by_filter__description": "'Filters' refer to the types of incident. Select multiple filters to introduce colour-coding, up to a maximum of four filters.<br><br>If no filters are selected, all datapoints are displayed.",
"categories": "Categories",
"categories_label": "Categories",
"explore_by_category__title": "Explore events by category",
"explore_by_category__description": "Categories refer to the victims of a given incident.<br><br>If no categories are selected, all datapoints are displayed."
},

View File

@@ -84,10 +84,18 @@ class Toolbar extends React.Component {
}
renderToolbarNarrativePanel() {
const { panels } = this.props.toolbarCopy;
const panelTitle = panels.narratives.label
? panels.narratives.label
: copy[this.props.language].toolbar.narratives;
const panelDescription = panels.narratives.description
? panels.narratives.description
: copy[this.props.language].toolbar.explore_by_narrative__description;
return (
<TabPanel>
<h2>{copy[this.props.language].toolbar.narrative_panel_title}</h2>
<p>{copy[this.props.language].toolbar.narrative_summary}</p>
<h2>{panelTitle}</h2>
<p>{panelDescription}</p>
{this.props.narratives.map((narr) => {
return (
<div className="panel-action action">
@@ -134,6 +142,14 @@ class Toolbar extends React.Component {
}
renderToolbarFilterPanel() {
const { panels } = this.props.toolbarCopy;
const panelTitle = panels.filters.label
? panels.filters.label
: copy[this.props.language].toolbar.filters;
const panelDescription = panels.filters.description
? panels.filters.description
: copy[this.props.language].toolbar.explore_by_filter__description;
return (
<TabPanel>
<FilterListPanel
@@ -143,6 +159,8 @@ class Toolbar extends React.Component {
language={this.props.language}
coloringSet={this.props.coloringSet}
filterColors={this.props.filterColors}
title={panelTitle}
description={panelDescription}
/>
</TabPanel>
);

View File

@@ -1,7 +1,6 @@
import React from "react";
import Checkbox from "../atoms/Checkbox";
import marked from "marked";
import copy from "../../common/data/copy.json";
import {
aggregateFilterPaths,
getFilterIdxFromColorSet,
@@ -30,6 +29,8 @@ function FilterListPanel({
language,
coloringSet,
filterColors,
title,
description,
}) {
function createNodeComponent(filter, depth) {
const [key, children] = filter;
@@ -81,10 +82,10 @@ function FilterListPanel({
return (
<div className="react-innertabpanel">
<h2>{copy[language].toolbar.filters}</h2>
<h2>{title}</h2>
<p
dangerouslySetInnerHTML={{
__html: marked(copy[language].toolbar.explore_by_filter__description),
__html: marked(description),
}}
/>
{renderTree(filters)}

View File

@@ -120,6 +120,12 @@ const initial = {
title: copy[language].toolbar.explore_by_filter__title,
description: copy[language].toolbar.explore_by_filter__description,
},
narratives: {
icon: DEFAULT_TAB_ICONS.NARRATIVE,
label: copy[language].toolbar.narratives_label,
title: copy[language].toolbar.explore_by_narrative__title,
description: copy[language].toolbar.explore_by_narrative__description,
},
},
},
loading: false,