|
1 | 1 | import React, { useCallback, useEffect, useRef, useState } from 'react';
|
2 | 2 | import PropTypes from 'prop-types';
|
3 | 3 |
|
4 |
| -import { Button, Dropdown, DropdownItem, Icon } from 'nr1'; |
| 4 | +import { Button, Dropdown, DropdownItem, Icon, useNerdletState } from 'nr1'; |
5 | 5 |
|
6 | 6 | import { TimeRangePicker } from '@newrelic/nr-labs-components';
|
7 | 7 | import { uuid } from '../../utils';
|
@@ -78,6 +78,7 @@ const PlaybackBar = ({ isLoading, onPreload, onSeek, onChange }) => {
|
78 | 78 | const seekDragStartX = useRef(0);
|
79 | 79 | const isMouseDownOnSeeker = useRef(false);
|
80 | 80 | const showingTimeWindow = useRef({ start: 0, end: 0 });
|
| 81 | + const [nerdletState, setNerdletState] = useNerdletState(); |
81 | 82 |
|
82 | 83 | const loadDataCache = useCallback(async (tbs) => {
|
83 | 84 | if (!onPreload) return;
|
@@ -125,12 +126,24 @@ const PlaybackBar = ({ isLoading, onPreload, onSeek, onChange }) => {
|
125 | 126 | }, []);
|
126 | 127 |
|
127 | 128 | const timeRangeChangeHandler = useCallback((selectedTimeRange) => {
|
128 |
| - setTimeRange(selectedTimeRange); |
129 |
| - setSelectedIncrement( |
130 |
| - playbackIncrementForSelectedDuration(selectedTimeRange) |
131 |
| - ); |
| 129 | + setNerdletState({ |
| 130 | + playbackTimeRange: selectedTimeRange, |
| 131 | + playbackIncrement: |
| 132 | + playbackIncrementForSelectedDuration(selectedTimeRange), |
| 133 | + }); |
132 | 134 | }, []);
|
133 | 135 |
|
| 136 | + useEffect(() => { |
| 137 | + if (nerdletState.playbackTimeRange) { |
| 138 | + setTimeRange(nerdletState.playbackTimeRange); |
| 139 | + setSelectedIncrement( |
| 140 | + nerdletState.playbackIncrement |
| 141 | + ? nerdletState.playbackIncrement |
| 142 | + : playbackIncrementForSelectedDuration(nerdletState.playbackTimeRange) |
| 143 | + ); |
| 144 | + } |
| 145 | + }, [nerdletState.playbackTimeRange]); |
| 146 | + |
134 | 147 | useEffect(() => {
|
135 | 148 | const mouseUpHandler = () => {
|
136 | 149 | isMouseDownOnSeeker.current = false;
|
@@ -293,7 +306,7 @@ const PlaybackBar = ({ isLoading, onPreload, onSeek, onChange }) => {
|
293 | 306 | <DropdownItem
|
294 | 307 | key={item.timeInSeconds}
|
295 | 308 | disabled={isPlaybackIncrementDisabled(item, timeRange)}
|
296 |
| - onClick={() => setSelectedIncrement(item)} |
| 309 | + onClick={() => setNerdletState({ playbackIncrement: item })} |
297 | 310 | >
|
298 | 311 | {item.display}
|
299 | 312 | </DropdownItem>
|
|
0 commit comments