Skip to content

Commit

Permalink
[EuiSuperDatePicker] Quick select menu inherits selected value (again) (
Browse files Browse the repository at this point in the history
#3446)

* restore default value based on selection inhereitance rather than static fallback

* CL
  • Loading branch information
thompsongl authored May 11, 2020
1 parent acbe3f0 commit 5155586
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 31 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
- Added `partition` key to `EuiChartThemeType` for Partition chart support ([#3387](https://github.com/elastic/eui/pull/3387))
- Updated `EuiImage`'s `caption` prop type from `string` to `ReactNode` ([#3387](https://github.com/elastic/eui/pull/3387))

**Bug Fixes**

- Fixed `EuiSuperDatePicker` quick selection menu overriding specified time range with default values ([#3446](https://github.com/elastic/eui/pull/3446))

**Breaking changes**

- Changed parameters for `euiPaletteColorBlind()` to an object ([#3387](https://github.com/elastic/eui/pull/3387))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,6 @@ exports[`EuiQuickSelectPopover is rendered 1`] = `
<EuiQuickSelect
applyTime={[Function]}
end="now"
prevQuickSelect={
Object {
"timeTense": "last",
"timeUnits": "m",
"timeValue": 15,
}
}
start="now-15m"
/>
<EuiCommonlyUsedTimeRanges
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import { timeUnits } from '../time_units';
import { EuiScreenReaderOnly } from '../../../accessibility';
import { ApplyTime, QuickSelect, TimeUnitId } from '../../types';
import { keysOf } from '../../../common';
import { parseTimeParts } from './quick_select_utils';

const LAST = 'last';
const NEXT = 'next';
Expand All @@ -48,43 +49,43 @@ const timeUnitsOptions = keysOf(timeUnits).map(key => {
return { value: key, text: `${timeUnits[key]}s` };
});

const defaultQuickSelect: QuickSelect = {
timeTense: LAST,
timeValue: 15,
timeUnits: 'm',
};

type EuiQuickSelectState = QuickSelect;

export interface EuiQuickSelectProps {
applyTime: ApplyTime;
start: string;
end: string;
prevQuickSelect: EuiQuickSelectState;
prevQuickSelect?: EuiQuickSelectState;
}

export class EuiQuickSelect extends Component<
EuiQuickSelectProps,
EuiQuickSelectState
> {
static defaultProps = {
prevQuickSelect: defaultQuickSelect,
};
constructor(props: EuiQuickSelectProps) {
super(props);

state: EuiQuickSelectState = {
timeTense:
this.props.prevQuickSelect && this.props.prevQuickSelect.timeTense
? this.props.prevQuickSelect.timeTense
: defaultQuickSelect.timeTense,
timeValue:
this.props.prevQuickSelect && this.props.prevQuickSelect.timeValue
? this.props.prevQuickSelect.timeValue
: defaultQuickSelect.timeValue,
timeUnits:
this.props.prevQuickSelect && this.props.prevQuickSelect.timeUnits
? this.props.prevQuickSelect.timeUnits
: defaultQuickSelect.timeUnits,
};
const {
timeTense: timeTenseDefault,
timeUnits: timeUnitsDefault,
timeValue: timeValueDefault,
} = parseTimeParts(props.start, props.end);

this.state = {
timeTense:
props.prevQuickSelect && props.prevQuickSelect.timeTense
? props.prevQuickSelect.timeTense
: timeTenseDefault,
timeValue:
props.prevQuickSelect && props.prevQuickSelect.timeValue
? props.prevQuickSelect.timeValue
: timeValueDefault,
timeUnits:
props.prevQuickSelect && props.prevQuickSelect.timeUnits
? props.prevQuickSelect.timeUnits
: timeUnitsDefault,
};
}

generateId = htmlIdGenerator();

Expand Down

0 comments on commit 5155586

Please sign in to comment.