Skip to content

Commit c526c67

Browse files
feat(mode-buttons): disable modes by default
1 parent ef68009 commit c526c67

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

lib/components/form/batch-preferences.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ class BatchPreferences extends Component<{
4545
*/
4646
onQueryParamChange = (newQueryParams: any) => {
4747
const { config, modeOptions, query, setQueryParam } = this.props
48-
const enabledModes = query.enabledModes || modeOptions
48+
const enabledModes =
49+
query.enabledModes || modeOptions.filter((m) => !m.defaultUnselected)
4950
const combinations = config.modes.combinations
5051
.filter(combinationFilter(enabledModes))
5152
.map(replaceTransitMode(newQueryParams.mode))

lib/components/form/batch-settings.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ class BatchSettings extends Component<{
100100
}> {
101101
state = {
102102
expanded: null,
103-
selectedModes: this.props.modeOptions.map((m) => m.mode)
103+
selectedModes: this.props.modeOptions
104+
.filter((m) => !m.defaultUnselected)
105+
.map((m) => m.mode)
104106
}
105107

106108
_onClickMode = (mode: string) => {

lib/components/form/mode-buttons.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { buttonCss } from './batch-styled'
66
import { ComponentContext } from '../../util/contexts'
77
import { getFormattedMode } from '../../util/i18n'
88
import { injectIntl, IntlProvider, IntlShape } from 'react-intl'
9-
import FormattedMode from '../util/formatted-mode'
109
import Icon from '../util/icon'
1110

1211
export type Mode = {
12+
defaultUnselected: boolean
1313
icon?: string
1414
label?: string
1515
mode: string

lib/reducers/create-otp-reducer.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import coreUtils from '@opentripplanner/core-utils'
44
import objectPath from 'object-path'
55
import update from 'immutability-helper'
66

7+
import { combinationFilter } from '../components/form/batch-settings'
78
import { FETCH_STATUS, PERSIST_TO_LOCAL_STORAGE } from '../util/constants'
89
import { getTimestamp } from '../util/state'
910
import { isBatchRoutingEnabled } from '../util/itinerary'
@@ -142,9 +143,21 @@ export function getInitialState(userDefinedConfig) {
142143
if (currentQuery.routingType === 'ITINERARY') {
143144
queryModes = ensureSingleAccessMode(queryModes)
144145
}
145-
if (config.modes && config.modes.combinations) {
146+
if (config.modes?.combinations) {
146147
// Inject combinations from config for batch routing.
147-
currentQuery.combinations = clone(config.modes.combinations)
148+
// Filter options based on defaults if modeOptions is specified in config
149+
let enabledCombinations
150+
if (config.modes.modeOptions) {
151+
const defaultModes = config.modes.modeOptions
152+
?.filter((m) => !m.defaultUnselected)
153+
.map((m) => m.mode)
154+
enabledCombinations = config.modes.combinations.filter(
155+
combinationFilter(defaultModes)
156+
)
157+
} else {
158+
enabledCombinations = config.mode.combinations
159+
}
160+
currentQuery.combinations = clone(enabledCombinations)
148161
}
149162

150163
return {

0 commit comments

Comments
 (0)