Skip to content

Commit db42ca0

Browse files
committed
customized the list toggle label
1 parent 60dfbaf commit db42ca0

3 files changed

Lines changed: 50 additions & 24 deletions

File tree

vis/js/components/List.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { connect } from "react-redux";
33

44
import { filterData, sortData } from "../utils/data";
55
import { STREAMGRAPH_MODE } from "../reducers/chartType";
6-
import ListToggle from "./ListToggle";
6+
import ListToggle from "../templates/ListToggle";
77
import FilterSort from "./FilterSort";
88
import ListEntries from "./ListEntries";
99

vis/js/components/ListToggle.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

vis/js/templates/ListToggle.jsx

Lines changed: 49 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,63 @@
11
import React from "react";
2+
import { connect } from "react-redux";
23

4+
import { toggleList } from "../actions";
35
import { useLocalizationContext } from "../components/LocalizationProvider";
46
import useMatomo from "../utils/useMatomo";
7+
import { STREAMGRAPH_MODE } from "../reducers/chartType";
58

6-
const ListToggle = ({ show, docsNumber, onClick }) => {
7-
const localization = useLocalizationContext();
9+
const ListToggle = ({
10+
docsNumber,
11+
isShown,
12+
isZoomed,
13+
isStreamgraph,
14+
appliedFilter,
15+
onClick,
16+
}) => {
817
const { trackEvent } = useMatomo();
918

1019
const handleClick = () => {
1120
onClick();
12-
if (show) {
21+
if (isShown) {
1322
trackEvent("List controls", "Hide list", "List toggle");
1423
} else {
1524
trackEvent("List controls", "Show list", "List toggle");
1625
}
1726
};
1827

28+
const loc = useLocalizationContext();
29+
// this should later move to localization
30+
let mainLabel = "Overview";
31+
if (isZoomed) {
32+
mainLabel = isStreamgraph ? loc.area_streamgraph : loc.area;
33+
}
34+
35+
let docsLabel = "document";
36+
switch (appliedFilter) {
37+
case "open_access":
38+
docsLabel = "open access document";
39+
break;
40+
case "dataset":
41+
docsLabel = "dataset";
42+
break;
43+
default:
44+
break;
45+
}
46+
47+
if (docsNumber > 1) {
48+
docsLabel += "s";
49+
}
50+
1951
return (
2052
// html template starts here
2153
<div id="show_hide_button" className="row" onClick={handleClick}>
2254
<div className="col-xs-2"></div>
2355
<div className="col-xs-8" id="show_hide_button_label">
2456
<span id="show_hide_label">
2557
<span>
26-
{show ? localization.hide_list : localization.show_list}{" "}
58+
{mainLabel}{" "}
2759
<span id="list_item_banner">
28-
(<span id="list_item_count">{docsNumber}</span>{" "}
29-
{localization.items})
60+
(<span id="list_item_count">{docsNumber}</span> {docsLabel})
3061
</span>
3162
</span>
3263
</span>
@@ -37,4 +68,15 @@ const ListToggle = ({ show, docsNumber, onClick }) => {
3768
);
3869
};
3970

40-
export default ListToggle;
71+
const mapStateToProps = (state) => ({
72+
isShown: state.list.show,
73+
isZoomed: state.zoom,
74+
isStreamgraph: state.chartType === STREAMGRAPH_MODE,
75+
appliedFilter: state.list.filterValue,
76+
});
77+
78+
const mapDispatchToProps = (dispatch) => ({
79+
onClick: () => dispatch(toggleList()),
80+
});
81+
82+
export default connect(mapStateToProps, mapDispatchToProps)(ListToggle);

0 commit comments

Comments
 (0)