Skip to content

Commit 894ff55

Browse files
EDSC-4125 recurring slider bug fixes (#1852)
1 parent df18a98 commit 894ff55

File tree

4 files changed

+12
-15
lines changed

4 files changed

+12
-15
lines changed

static/src/js/components/GranuleFilters/GranuleFiltersForm.jsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,10 @@ export const GranuleFiltersForm = (props) => {
451451
validate={false}
452452
onSliderChange={
453453
(value) => {
454-
setFieldValue('temporal.startDate', moment(temporal.startDate).year(value.min).toISOString())
455-
setFieldValue('temporal.endDate', moment(temporal.endDate).year(value.max).toISOString())
454+
const startDate = temporal.startDate ? moment(temporal.startDate) : moment()
455+
const endDate = temporal.endDate ? moment(temporal.endDate) : moment()
456+
setFieldValue('temporal.startDate', startDate.year(value.min).toISOString())
457+
setFieldValue('temporal.endDate', endDate.year(value.max).toISOString())
456458
}
457459
}
458460
onRecurringToggle={
@@ -552,7 +554,6 @@ export const GranuleFiltersForm = (props) => {
552554
}
553555
}
554556

555-
// Only call handleSubmit if `onSubmitStart` was called
556557
if (shouldSubmit && (startDate.isValid() || !input)) {
557558
handleSubmit()
558559

@@ -909,12 +910,6 @@ export const GranuleFiltersForm = (props) => {
909910
temporal={equatorCrossingDate}
910911
displayStartDate={equatorCrossingDate.startDate}
911912
displayEndDate={equatorCrossingDate.endDate}
912-
onSliderChange={
913-
(value) => {
914-
setFieldValue('temporal.startDate', moment(temporal.startDate).year(value.min).toISOString())
915-
setFieldValue('temporal.endDate', moment(temporal.endDate).year(value.max).toISOString())
916-
}
917-
}
918913
validate={false}
919914
onSubmitStart={
920915
(startDate, shouldSubmit) => {

static/src/js/components/GranuleFilters/__tests__/GranuleFiltersForm.test.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ describe('GranuleFiltersForm component', () => {
489489
expect(setFieldTouched).toHaveBeenCalledTimes(1)
490490
expect(setFieldTouched).toHaveBeenCalledWith('temporal.isRecurring', true)
491491

492-
expect(setFieldValue).toHaveBeenCalledTimes(3)
492+
expect(setFieldValue).toHaveBeenCalledTimes(4)
493493
expect(setFieldValue).toHaveBeenCalledWith('temporal.isRecurring', true)
494494
expect(setFieldValue).toHaveBeenCalledWith('temporal.recurringDayStart', 225)
495495
expect(setFieldValue).toHaveBeenCalledWith('temporal.recurringDayEnd', 226)
@@ -1649,7 +1649,7 @@ describe('GranuleFiltersForm component', () => {
16491649
})
16501650

16511651
describe('End date submission behavior', () => {
1652-
test.only('when submitting end date in same year as start date with recurring enabled, adjusts start date to minimum year', async () => {
1652+
test('when submitting end date in same year as start date with recurring enabled, adjusts start date to minimum year', async () => {
16531653
MockDate.set('2024-12-15')
16541654

16551655
const {

static/src/js/components/TemporalDisplay/TemporalSelectionDropdown.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,8 @@ const TemporalSelectionDropdown = ({
352352
const { min, max } = value
353353
setTemporal({
354354
...temporal,
355-
startDate: moment(temporal.startDate).year(min).toISOString(),
356-
endDate: moment(temporal.endDate).year(max).toISOString()
355+
startDate: moment(temporal.startDate).utc().year(min).toISOString(),
356+
endDate: moment(temporal.endDate).utc().year(max).toISOString()
357357
})
358358
}
359359
}

static/src/js/components/TemporalSelection/TemporalSelection.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ export class TemporalSelection extends Component {
134134
const minimumTemporalDate = moment(minimumTemporalDateString, temporalDateFormatFull)
135135

136136
let sliderStartDate = moment(temporal.startDate).utc()
137+
const sliderEndDate = moment(temporal.endDate || undefined).utc()
138+
137139
if (!sliderStartDate.isValid()) {
138140
sliderStartDate = moment()
139141
sliderStartDate.set({
@@ -253,7 +255,7 @@ export class TemporalSelection extends Component {
253255
<span className="temporal-selection__range-label">
254256
{sliderStartDate.year()}
255257
{' - '}
256-
{moment(temporal.endDate || undefined).year()}
258+
{sliderEndDate.year()}
257259
</span>
258260

259261
<InputRange
@@ -263,7 +265,7 @@ export class TemporalSelection extends Component {
263265
value={
264266
{
265267
min: sliderStartDate.year(),
266-
max: moment(temporal.endDate || undefined).year()
268+
max: sliderEndDate.year()
267269
}
268270
}
269271
onChange={onSliderChange}

0 commit comments

Comments
 (0)