From b261e0a5b58086317ab633ff6a02ac1183600a78 Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Nov 23 2017 14:42:21 +0000 Subject: Halp: don't repeat the dates in the request list Fixes #444 --- diff --git a/hubs/static/client/app/widgets/halp/RequestList.js b/hubs/static/client/app/widgets/halp/RequestList.js new file mode 100644 index 0000000..cc6a8d7 --- /dev/null +++ b/hubs/static/client/app/widgets/halp/RequestList.js @@ -0,0 +1,53 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { + defineMessages, + FormattedMessage, + injectIntl, + } from 'react-intl'; +import Request from './Request'; + + +const messages = defineMessages({ + no_request: { + id: "hubs.widgets.halp.no_request", + defaultMessage: "No request for now." + }, +}); + + +class RequestList extends React.Component { + render() { + let content; + if (this.props.requests.length === 0) { + content = ( +

+ +

+ ); + } else { + let previousDate = null; + content = this.props.requests.map((request, idx) => { + const showDate = previousDate === null ? true : ( + this.props.intl.formatRelative(request.date * 1000) !== + this.props.intl.formatRelative(previousDate * 1000) + ); + previousDate = request.date; + return ( + + ); + }); + } + return ( +
+ {content} +
+ ); + } +} + +export default injectIntl(RequestList); diff --git a/hubs/static/client/app/widgets/halp/Widget.js b/hubs/static/client/app/widgets/halp/Widget.js index ce4b676..0ae6d86 100644 --- a/hubs/static/client/app/widgets/halp/Widget.js +++ b/hubs/static/client/app/widgets/halp/Widget.js @@ -11,17 +11,13 @@ import { import HubsList from './HubsList'; import ModalRequest from './ModalRequest'; import ModalAllRequests from './ModalAllRequests'; -import Request from './Request'; +import RequestList from './RequestList'; import WidgetChrome from '../../components/WidgetChrome'; import Spinner from "../../components/Spinner"; import "./halp.css"; const messages = defineMessages({ - no_request: { - id: "hubs.widgets.halp.no_request", - defaultMessage: "No request for now." - }, view_more: { id: "hubs.widgets.halp.view_more", defaultMessage: "View more" @@ -132,27 +128,6 @@ export default class HalpWidget extends React.Component { } render() { - let requestNodes; - if (this.state.requests.length === 0) { - requestNodes = ( -

- -

- ); - } else { - let previousDate = null; - requestNodes = this.state.requests.map(function(request, idx) { - const showDate = (request.date !== previousDate); - previousDate = request.date; - return ( - - ); - }.bind(this)); - } let hubs = this.props.widget.config.hubs || []; hubs = hubs.map(function(hub) { return { @@ -173,9 +148,10 @@ export default class HalpWidget extends React.Component { { this.state.isLoading ? : -
- {requestNodes} -
+ }