Skip to content

Commit a2c4170

Browse files
committed
Fix Twenty Four Hour Setting
1 parent 48b967f commit a2c4170

File tree

6 files changed

+23
-12
lines changed

6 files changed

+23
-12
lines changed

js/stores/SettingsStore.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
class SettingsStore {
22
constructor() {
33
this.state = {
4-
clock: true,
5-
longName: false,
4+
isTwentyFourHour: false,
65
lastLocation: [-36.844229, 174.767823], // britomart
76
bikeShare: false,
87
}
98
if (localStorage.getItem('SettingsData')) {
109
const preState = JSON.parse(localStorage.getItem('SettingsData'))
1110
// copies saved state, preserves defaults
12-
for (const attrname in preState) {
13-
this.state[attrname] = preState[attrname]
14-
}
11+
Object.keys(preState).forEach(attr => {
12+
this.state[attr] = preState[attr]
13+
})
1514
}
1615
localStorage.setItem('AppVersion', '2.4.6')
1716
}

js/views/lines/Line.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { withRouter } from 'react-router'
66
import queryString from 'query-string'
77

88
import { vars } from '../../styles.js'
9+
import SettingsStore from '../../stores/SettingsStore.js'
910
import UiStore from '../../stores/UiStore.js'
1011
import Header from '../reusable/Header.jsx'
1112
import Spinner from '../reusable/Spinner.jsx'
@@ -447,6 +448,7 @@ class Line extends React.Component {
447448
realtimeStopUpdates={realtimeStopUpdates}
448449
triggerTrip={this.triggerTrip}
449450
region={match.params.region}
451+
isTwentyFourHour={SettingsStore.state.isTwentyFourHour}
450452
/>
451453
) : null
452454
const lineStops = loading ? (
@@ -465,6 +467,7 @@ class Line extends React.Component {
465467
selectedStop={this.lineData.stop_id}
466468
currentTrip={currentTrip}
467469
realtimeStopUpdates={realtimeStopUpdates}
470+
isTwentyFourHour={SettingsStore.state.isTwentyFourHour}
468471
/>
469472
</>
470473
)

js/views/lines/LineStops.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment, useState } from 'react'
1+
import React, { useState } from 'react'
22
import { Text, View, StyleSheet, TouchableOpacity } from 'react-native'
33

44
import { vars } from '../../styles.js'
@@ -15,6 +15,7 @@ export const LineStops = ({
1515
currentTrip = '',
1616
selectedStop = null,
1717
realtimeStopUpdates = {},
18+
isTwentyFourHour = false,
1819
}) => {
1920
const stopStyle = [styles.stop, { borderColor: color }]
2021
const [showAll, setShowAll] = useState(false)
@@ -59,7 +60,7 @@ export const LineStops = ({
5960
comparisionStopTime.setSeconds(0) // so it makes more sense in the UI
6061

6162
return (
62-
<Fragment>
63+
<>
6364
{!showAll && selectedStopIndex > 0 ? (
6465
<TouchableOpacity
6566
onClick={() => setShowAll(true)}
@@ -160,6 +161,7 @@ export const LineStops = ({
160161
delay * 1000
161162
).toLocaleTimeString(navigator.language, {
162163
timeZone: 'UTC',
164+
hour12: !isTwentyFourHour,
163165
hour: 'numeric',
164166
minute: 'numeric',
165167
})}
@@ -170,7 +172,7 @@ export const LineStops = ({
170172
)
171173
})}
172174
</View>
173-
</Fragment>
175+
</>
174176
)
175177
}
176178

js/views/lines/Timetable.jsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { vars } from '../../styles.js'
66

77
import { getTime } from '../../helpers/date.js'
88

9-
const formatDate = (dateString, delay, region) => {
9+
const formatDate = (dateString, delay, isTwentyFourHour, region) => {
1010
const date = new Date(dateString)
1111
date.setTime(date.getTime() + delay * 1000)
12-
const humanTime = getTime(date, false, true, region)
12+
const humanTime = getTime(date, isTwentyFourHour, true, region)
1313

1414
// make this nicer
1515
return `${humanTime.text || ''}${humanTime.subtext || ''}${
@@ -25,6 +25,7 @@ const Timetable = ({
2525
triggerTrip,
2626
realtimeStopUpdates,
2727
region,
28+
isTwentyFourHour = false,
2829
}) => {
2930
const tripIds = {}
3031
return (
@@ -99,7 +100,12 @@ const Timetable = ({
99100
onPress={triggerTrip(service.trip_id)}
100101
>
101102
<Text style={[styles.departureDate, departureTextStyle]}>
102-
{formatDate(service.departure_time, delay, region)}
103+
{formatDate(
104+
service.departure_time,
105+
delay,
106+
isTwentyFourHour,
107+
region
108+
)}
103109
</Text>
104110
<Text style={[styles.departureStatus, emotion]}>
105111
{scheduleRelationship}

js/views/pages/Settings.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ const Settings = () => {
7373
<Text style={paragraphStyles.h1}>
7474
{t('settings.preferences.title')}
7575
</Text>
76-
<Toggle id="clock">
76+
<Toggle id="isTwentyFourHour">
7777
<ClockIcon />
7878
<Text style={styles.buttonText}>{t('settings.preferences.hrs')}</Text>
7979
</Toggle>

js/views/station/Station.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,7 @@ class Station extends React.Component {
448448
isRealtime: i.isRealtime,
449449
platform: i.platform,
450450
}))}
451+
isTwentyFourHour={SettingsStore.state.isTwentyFourHour}
451452
onClick={() =>
452453
this.triggerMap(
453454
agencyId,

0 commit comments

Comments
 (0)