Skip to content

Commit 8a23869

Browse files
committed
Merge branch 'v3' into next
2 parents f24a4cd + c52c230 commit 8a23869

19 files changed

Lines changed: 125 additions & 109 deletions

app/component/Badge.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@ const getIcon = variant => {
2424
): {
2525
return <Icon img="icon_info-circled" className="info" />;
2626
}
27-
case variant === 'success': {
28-
return <Icon img="icon_check" className="success" />;
27+
case variant === AlertSeverityLevelType.Warning: {
28+
return <Icon img="icon_alert-circled" className="warning" />;
2929
}
30-
case [
31-
AlertSeverityLevelType.Warning,
32-
AlertSeverityLevelType.Severe,
33-
].includes(variant): {
30+
case variant === AlertSeverityLevelType.Severe: {
3431
return <Icon img="icon_caution_white_exclamation" className="danger" />;
3532
}
3633
default:

app/component/DisruptionBannerAlert.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,13 @@ const DisruptionBannerAlert = (
7676
<a
7777
className="disruption-info-content"
7878
onClick={e => e.stopPropagation()}
79-
href={`/${TRAFFICNOW}`}
79+
href={
80+
config.trafficNowTest
81+
? `/${TRAFFICNOW}`
82+
: `${config.URL.ROOTLINK}/${
83+
language === 'fi' ? '' : `${language}/`
84+
}${config.trafficNowLink[language]}`
85+
}
8086
>
8187
{message}
8288
</a>

app/component/DisruptionInfoButton.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,17 @@ function DisruptionInfoButton(props, { config }) {
1313
className="cursor-pointer disruption-info noborder"
1414
onClick={props.openDisruptionInfo}
1515
>
16-
<FormattedMessage id="traffic-now-long" defaultMessage="Services now" />
16+
{config.trafficNowTest ? (
17+
<FormattedMessage
18+
id="traffic-now-long"
19+
defaultMessage="Services now"
20+
/>
21+
) : (
22+
<FormattedMessage
23+
id="disruptions-and-diversions"
24+
defaultMessage="Disruptions and diversions"
25+
/>
26+
)}
1727
{props.viewer?.alerts?.length > 0 && (
1828
<Icon
1929
aria-hidden="true"

app/component/DisruptionInfoButtonContainer.js

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import PropTypes from 'prop-types';
22
import React, { useContext } from 'react';
33
import { graphql, QueryRenderer } from 'react-relay';
4-
import { matchShape, routerShape } from 'found';
54
import ReactRelayContext from 'react-relay/lib/ReactRelayContext';
65
import DisruptionInfoButton from './DisruptionInfoButton';
76
import { addAnalyticsEvent } from '../util/analyticsUtils';
8-
import { TRAFFICNOW } from '../util/path';
97

108
function DisruptionInfoButtonContainer(
11-
{ onClick },
12-
{ router, config: { feedIds } },
9+
{ onClick = () => {} },
10+
{ config: { feedIds } },
1311
) {
1412
const { environment } = useContext(ReactRelayContext);
1513
const openDisruptionInfo = () => {
@@ -18,7 +16,6 @@ function DisruptionInfoButtonContainer(
1816
action: 'OpenDisruptions',
1917
name: null,
2018
});
21-
router.push(`/${TRAFFICNOW}`);
2219
onClick();
2320
};
2421

@@ -49,13 +46,7 @@ DisruptionInfoButtonContainer.propTypes = {
4946
onClick: PropTypes.func,
5047
};
5148

52-
DisruptionInfoButtonContainer.defaultProps = {
53-
onClick: () => {},
54-
};
55-
5649
DisruptionInfoButtonContainer.contextTypes = {
57-
router: routerShape.isRequired,
58-
match: matchShape.isRequired,
5950
config: PropTypes.shape({
6051
feedIds: PropTypes.arrayOf(PropTypes.string.isRequired),
6152
}).isRequired,

app/component/Icon.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ const Icon = ({
3535
{background}
3636
<g
3737
style={{
38-
fill: fill || color || null,
38+
color: color || null,
39+
fill: color || null,
3940
height: height ? `${height}em` : null,
4041
width: width ? `${width}em` : null,
4142
outline: 0,

app/component/IndexPage.js

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import isEqual from 'lodash/isEqual';
77
import DTAutoSuggest from '@digitransit-component/digitransit-component-autosuggest';
88
import DTAutosuggestPanel from '@digitransit-component/digitransit-component-autosuggest-panel';
99
import CtrlPanel from '@digitransit-component/digitransit-component-control-panel';
10+
import TrafficNowLink from '@digitransit-component/digitransit-component-traffic-now-link';
1011
import { getModesWithAlerts } from '@digitransit-search-util/digitransit-search-util-query-utils';
1112
import { createUrl } from '@digitransit-store/digitransit-store-future-route';
1213
import inside from 'point-in-polygon';
@@ -28,7 +29,6 @@ import {
2829
definesItinerarySearch,
2930
PREFIX_NEARYOU,
3031
PREFIX_ITINERARY_SUMMARY,
31-
TRAFFICNOW,
3232
} from '../util/path';
3333
import { addAnalyticsEvent } from '../util/analyticsUtils';
3434
import withBreakpoint from '../util/withBreakpoint';
@@ -47,7 +47,7 @@ import {
4747
} from '../action/PositionActions';
4848
import FavouriteStore from '../store/FavouriteStore';
4949
import { useConfigContext } from '../configurations/ConfigContext';
50-
import TrafficNowLink from './trafficnow/TrafficNowLink';
50+
import TrafficNowLinkNew from './trafficnow/TrafficNowLink';
5151

5252
const StopRouteSearch = withSearchContext(DTAutoSuggest);
5353
const LocationSearch = withSearchContext(DTAutosuggestPanel);
@@ -191,12 +191,6 @@ function IndexPage(props, context) {
191191
executeAction(storeDestination, favourite);
192192
};
193193

194-
const trafficNowHandler = (e, lang) => {
195-
window.location = `${config.URL.ROOTLINK}/${
196-
lang === 'fi' ? '' : `${lang}/`
197-
}${config.trafficNowLink[lang]}`;
198-
};
199-
200194
const clickStopNearIcon = url => {
201195
addAnalyticsEvent({
202196
event: 'sendMatomoEvent',
@@ -262,7 +256,12 @@ function IndexPage(props, context) {
262256
);
263257
};
264258

265-
const { trafficNowLink } = config;
259+
const { trafficNowLink, trafficNowTest } = config;
260+
const trafficNowHref = trafficNowLink
261+
? `${config.URL.ROOTLINK}/${language === 'fi' ? '' : `${language}/`}${
262+
config.trafficNowLink[language]
263+
}`
264+
: undefined;
266265
const { breakpoint } = props;
267266

268267
const origin = pendingOriginRef.current || props.origin;
@@ -392,12 +391,17 @@ function IndexPage(props, context) {
392391
</>
393392
)}
394393

395-
{trafficNowLink && (
394+
{trafficNowLink && !trafficNowTest && (
396395
<TrafficNowLink
397-
handleClick={trafficNowHandler}
398-
href={`/${TRAFFICNOW}`}
396+
handleClick={(e, lang) => {
397+
window.location = `${config.URL.ROOTLINK}/${
398+
lang === 'fi' ? '' : `${lang}/`
399+
}${config.trafficNowLink[lang]}`;
400+
}}
401+
href={trafficNowHref}
399402
/>
400403
)}
404+
{trafficNowTest && <TrafficNowLinkNew />}
401405
</CtrlPanel>
402406
</div>
403407
{(showSpinner && <OverlayWithSpinner />) || null}
@@ -435,12 +439,17 @@ function IndexPage(props, context) {
435439
<StopRouteSearch isMobile {...stopRouteSearchProps} />
436440
</div>
437441
<CtrlPanel.SeparatorLine usePaddingBottom20 />
438-
{trafficNowLink && (
442+
{trafficNowLink && !trafficNowTest && (
439443
<TrafficNowLink
440-
handleClick={trafficNowHandler}
441-
href={`/${TRAFFICNOW}`}
444+
handleClick={(e, lang) => {
445+
window.location = `${config.URL.ROOTLINK}/${
446+
lang === 'fi' ? '' : `${lang}/`
447+
}${config.trafficNowLink[lang]}`;
448+
}}
449+
href={trafficNowHref}
442450
/>
443451
)}
452+
{trafficNowTest && <TrafficNowLinkNew />}
444453
</CtrlPanel>
445454
</div>
446455
</div>

app/component/MainMenu.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React, { useState } from 'react';
33
import { FormattedMessage, useIntl } from 'react-intl';
44
import Link from 'found/Link';
55
import { connectToStores } from 'fluxible-addons-react';
6+
import { useRouter } from 'found';
67
import { configShape } from '../util/shapes';
78
import DisruptionInfoButtonContainer from './DisruptionInfoButtonContainer';
89
import Icon from './Icon';
@@ -13,9 +14,11 @@ import { updateCountries } from '../action/CountryActions';
1314
import Toggle from './Toggle';
1415
import searchContext from '../util/searchContext';
1516
import intializeSearchContext from '../util/DTSearchContextInitializer';
17+
import { TRAFFICNOW } from '../util/path';
1618

1719
function MainMenu(props, { config, executeAction }) {
1820
const intl = useIntl();
21+
const { router } = useRouter();
1922
const [countries, setCountries] = useState(props.countries);
2023
const appBarLink =
2124
config.appBarLink?.altLink?.[props.currentLanguage] || config.appBarLink;
@@ -61,7 +64,14 @@ function MainMenu(props, { config, executeAction }) {
6164
{config.mainMenu.showDisruptions && (
6265
<div className="offcanvas-section">
6366
<DisruptionInfoButtonContainer
64-
setDisruptionInfoOpen={props.setDisruptionInfoOpen}
67+
onClick={
68+
config.trafficNowTest
69+
? () => {
70+
router.push(`/${TRAFFICNOW}`);
71+
props.closeMenu();
72+
}
73+
: () => props.setDisruptionInfoOpen(true)
74+
}
6575
/>
6676
</div>
6777
)}

app/component/departure.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@
208208
padding: 0 8px 0 4px;
209209
margin: unset;
210210
color: $cancelation-red;
211+
vertical-align: middle;
211212
}
212213
}
213214
}

app/component/trafficnow/RouteBadges.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
import React, { useMemo } from 'react';
33
import PropTypes from 'prop-types';
44
import cx from 'classnames';
5+
import { useRouter } from 'found';
56
import { entityShape } from '../../util/shapes';
6-
import { useRoute } from '../../util/RouteContext';
77
import { useConfigContext } from '../../configurations/ConfigContext';
88
import { AlertEntityType } from '../../constants';
99
import { groupEntitiesByMode } from './utils';
@@ -15,7 +15,7 @@ const STOP_SIGN_ICON_SCALE = 0.5;
1515
const NORMAL_ICON_SCALE = 1;
1616

1717
export default function RouteBadges({ entities: rawEntities }) {
18-
const { match } = useRoute();
18+
const { match } = useRouter();
1919
const config = useConfigContext();
2020
const { selectedFilters } = useFilterContext();
2121

app/component/trafficnow/TrafficNowLink.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import React from 'react';
2-
import PropTypes from 'prop-types';
32
import { FormattedMessage } from 'react-intl';
3+
import { Link } from 'found';
4+
import { TRAFFICNOW } from '../../util/path';
45
import Icon from '../Icon';
56

6-
const TrafficNowLink = ({ handleClick, href }) => {
7+
const TrafficNowLink = () => {
78
return (
8-
<a className="traffic-now__link" href={href} onClick={handleClick}>
9+
<Link className="traffic-now__link" to={`/${TRAFFICNOW}`}>
910
<div className="traffic-now__link__left-column">
1011
<Icon
1112
img="icon_info-filled"
@@ -30,17 +31,8 @@ const TrafficNowLink = ({ handleClick, href }) => {
3031
<span className="traffic-now__link__caret">
3132
<Icon img="icon_arrow-collapse--right" color="#007ac9" />
3233
</span>
33-
</a>
34+
</Link>
3435
);
3536
};
3637

37-
TrafficNowLink.propTypes = {
38-
handleClick: PropTypes.func.isRequired,
39-
href: PropTypes.string,
40-
};
41-
42-
TrafficNowLink.defaultProps = {
43-
href: undefined,
44-
};
45-
4638
export default TrafficNowLink;

0 commit comments

Comments
 (0)