Skip to content

Commit

Permalink
Flatten logposition destructuring
Browse files Browse the repository at this point in the history
  • Loading branch information
Zacqary committed Jan 3, 2020
1 parent 6f7285c commit 6a94a40
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const LogColumnHeaders: React.FunctionComponent<{
columnConfigurations: LogColumnConfiguration[];
columnWidths: LogEntryColumnWidths;
}> = ({ columnConfigurations, columnWidths }) => {
const [{ firstVisiblePosition }] = useContext(LogPositionState.Context);
const { firstVisiblePosition } = useContext(LogPositionState.Context);
return (
<LogColumnHeadersWrapper>
{columnConfigurations.map(columnConfiguration => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const useLogHighlightsState = ({
filterQuery: string | null;
}) => {
const [highlightTerms, setHighlightTerms] = useState<string[]>([]);
const [{ visibleMidpoint }, { jumpToTargetPosition }] = useContext(LogPositionState.Context);
const { visibleMidpoint, jumpToTargetPosition } = useContext(LogPositionState.Context);
const { intervalSize: summaryIntervalSize } = useContext(LogViewConfiguration.Context);
const {
start: summaryStart,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/

import { useState, useMemo, useEffect } from 'react';
import { useState, useMemo, useEffect, useCallback } from 'react';
import createContainer from 'constate';
import { TimeKey } from '../../../../common/time';

Expand Down Expand Up @@ -59,7 +59,7 @@ const useVisibleMidpoint = (middleKey: TimeKeyOrNull, targetPosition: TimeKeyOrN
return store.currentValue;
};

export const useLogPositionState: () => [LogPositionStateParams, LogPositionCallbacks] = () => {
export const useLogPositionState: () => LogPositionStateParams & LogPositionCallbacks = () => {
const [targetPosition, jumpToTargetPosition] = useState<TimeKey | null>(null);
const [isAutoReloading, setIsAutoReloading] = useState(false);
const [visiblePositions, reportVisiblePositions] = useState<VisiblePositions>({
Expand Down Expand Up @@ -92,13 +92,16 @@ export const useLogPositionState: () => [LogPositionStateParams, LogPositionCall

const callbacks = {
jumpToTargetPosition,
jumpToTargetPositionTime: (time: number) => jumpToTargetPosition({ tiebreaker: 0, time }),
jumpToTargetPositionTime: useCallback(
(time: number) => jumpToTargetPosition({ tiebreaker: 0, time }),
[jumpToTargetPosition]
),
reportVisiblePositions,
startLiveStreaming: () => setIsAutoReloading(true),
stopLiveStreaming: () => setIsAutoReloading(false),
startLiveStreaming: useCallback(() => setIsAutoReloading(true), [setIsAutoReloading]),
stopLiveStreaming: useCallback(() => setIsAutoReloading(false), [setIsAutoReloading]),
};

return [state, callbacks];
return { ...state, ...callbacks };
};

export const LogPositionState = createContainer(useLogPositionState);
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@ interface LogPositionUrlState {
}

export const WithLogPositionUrlState = () => {
const [
{ visibleMidpoint, isAutoReloading },
{ jumpToTargetPosition, jumpToTargetPositionTime, startLiveStreaming, stopLiveStreaming },
] = useContext(LogPositionState.Context);
const {
visibleMidpoint,
isAutoReloading,
jumpToTargetPosition,
jumpToTargetPositionTime,
startLiveStreaming,
stopLiveStreaming,
} = useContext(LogPositionState.Context);
const urlState = useMemo(
() => ({
position: visibleMidpoint ? pickTimeKey(visibleMidpoint) : null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export const WithSummary = ({
const { intervalSize } = useContext(LogViewConfiguration.Context);
const { sourceId } = useContext(Source.Context);
const { filterQuery } = useContext(LogFilterState.Context);
const [{ visibleMidpointTime }] = useContext(LogPositionState.Context);
const { visibleMidpointTime } = useContext(LogPositionState.Context);

const { buckets, start, end } = useLogSummary(
sourceId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,15 @@ export const LogsPageLogsContent: React.FunctionComponent = () => {

const { logSummaryHighlights } = useContext(LogHighlightsState.Context);
const { applyLogFilterQuery } = useContext(LogFilterState.Context);
const [
{ isAutoReloading, targetPosition, visibleMidpointTime, visibleTimeInterval },
{ reportVisiblePositions, jumpToTargetPosition, stopLiveStreaming },
] = useContext(LogPositionState.Context);
const {
isAutoReloading,
targetPosition,
visibleMidpointTime,
visibleTimeInterval,
reportVisiblePositions,
jumpToTargetPosition,
stopLiveStreaming,
} = useContext(LogPositionState.Context);
return (
<>
<WithLogMinimapUrlState />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ const LogFilterStateProvider: React.FC = ({ children }) => {

const LogEntriesStateProvider: React.FC = ({ children }) => {
const { sourceId } = useContext(Source.Context);
const [
{ targetPosition, pagesBeforeStart, pagesAfterEnd, isAutoReloading },
{ jumpToTargetPosition },
] = useContext(LogPositionState.Context);
const {
targetPosition,
pagesBeforeStart,
pagesAfterEnd,
isAutoReloading,
jumpToTargetPosition,
} = useContext(LogPositionState.Context);
const { filterQuery } = useContext(LogFilterState.Context);

const entriesProps = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,13 @@ export const LogsToolbar = () => {
goToPreviousHighlight,
goToNextHighlight,
} = useContext(LogHighlightsState.Context);
const [
{ visibleMidpointTime, isAutoReloading },
{ jumpToTargetPositionTime, startLiveStreaming, stopLiveStreaming },
] = useContext(LogPositionState.Context);
const {
visibleMidpointTime,
isAutoReloading,
jumpToTargetPositionTime,
startLiveStreaming,
stopLiveStreaming,
} = useContext(LogPositionState.Context);
return (
<Toolbar>
<EuiFlexGroup alignItems="center" justifyContent="spaceBetween" gutterSize="s">
Expand Down

0 comments on commit 6a94a40

Please sign in to comment.