Skip to content

Commit

Permalink
[Stack Monitoring] Fix date picker range options (elastic#121295) (el…
Browse files Browse the repository at this point in the history
…astic#123123)

* Pass commonly used ranges to EuiSuperDatePicker

* Tidy up start contract types

(cherry picked from commit dcd6da7)

# Conflicts:
#	x-pack/plugins/monitoring/public/plugin.ts
  • Loading branch information
Kerry350 authored Jan 18, 2022
1 parent 82052d8 commit 5042ef3
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 16 deletions.
5 changes: 2 additions & 3 deletions x-pack/plugins/monitoring/public/alerts/alerts_dropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,12 @@ import { i18n } from '@kbn/i18n';
import React, { useState } from 'react';
import { FormattedMessage } from '@kbn/i18n/react';
import { useKibana } from '../../../../../src/plugins/kibana_react/public';
import { MonitoringStartPluginDependencies } from '../types';
import { MonitoringStartServices } from '../types';
import { useAlertsModal } from '../application/hooks/use_alerts_modal';

export const AlertsDropdown: React.FC<{}> = () => {
const alertsEnableModalProvider = useAlertsModal();
const { navigateToApp } =
useKibana<MonitoringStartPluginDependencies['core']>().services.application;
const { navigateToApp } = useKibana<MonitoringStartServices>().services.application;

const [isPopoverOpen, setIsPopoverOpen] = useState(false);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
*/
import React, { createContext } from 'react';
import { GlobalState } from '../../url_state';
import { MonitoringStartPluginDependencies } from '../../types';
import { MonitoringStartPluginDependencies, MonitoringStartServices } from '../../types';
import { TimeRange, RefreshInterval } from '../../../../../../src/plugins/data/public';
import { Legacy } from '../../legacy_shims';

interface GlobalStateProviderProps {
query: MonitoringStartPluginDependencies['data']['query'];
toasts: MonitoringStartPluginDependencies['core']['notifications']['toasts'];
toasts: MonitoringStartServices['notifications']['toasts'];
}

export interface State {
Expand Down
29 changes: 27 additions & 2 deletions x-pack/plugins/monitoring/public/components/shared/toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,41 @@ import {
EuiTitle,
OnRefreshChangeProps,
} from '@elastic/eui';
import React, { useContext, useCallback } from 'react';
import React, { useContext, useCallback, useMemo } from 'react';
import { MonitoringTimeContainer } from '../../application/hooks/use_monitoring_time';
import { GlobalStateContext } from '../../application/contexts/global_state_context';
import { Legacy } from '../../legacy_shims';

import { MonitoringStartServices } from '../../types';
import { useKibana } from '../../../../../../src/plugins/kibana_react/public';
import { UI_SETTINGS } from '../../../../../../src/plugins/data/common';
interface MonitoringToolbarProps {
pageTitle?: string;
onRefresh?: () => void;
}

interface TimePickerQuickRange {
from: string;
to: string;
display: string;
}

export const MonitoringToolbar: React.FC<MonitoringToolbarProps> = ({ pageTitle, onRefresh }) => {
const { services } = useKibana<MonitoringStartServices>();

const timePickerQuickRanges = services.uiSettings.get<TimePickerQuickRange[]>(
UI_SETTINGS.TIMEPICKER_QUICK_RANGES
);

const commonlyUsedRanges = useMemo(
() =>
timePickerQuickRanges.map(({ from, to, display }) => ({
start: from,
end: to,
label: display,
})),
[timePickerQuickRanges]
);

const {
currentTimerange,
handleTimeChange,
Expand Down Expand Up @@ -88,6 +112,7 @@ export const MonitoringToolbar: React.FC<MonitoringToolbarProps> = ({ pageTitle,
isPaused={isPaused}
refreshInterval={refreshInterval}
onRefreshChange={onRefreshChange}
commonlyUsedRanges={commonlyUsedRanges}
/>
</div>
</EuiFlexItem>
Expand Down
7 changes: 5 additions & 2 deletions x-pack/plugins/monitoring/public/legacy_shims.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
import { CoreStart, HttpSetup, IUiSettingsClient, AppMountParameters } from 'kibana/public';
import { Observable } from 'rxjs';
import { HttpRequestInit } from '../../../../src/core/public';
import { MonitoringStartPluginDependencies } from './types';
import {
MonitoringStartPluginDependencies,
LegacyMonitoringStartPluginDependencies,
} from './types';
import { TriggersAndActionsUIPublicPluginStart } from '../../triggers_actions_ui/public';
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
import { TypeRegistry } from '../../triggers_actions_ui/public/application/type_registry';
Expand Down Expand Up @@ -75,7 +78,7 @@ export class Legacy {
triggersActionsUi,
usageCollection,
appMountParameters,
}: MonitoringStartPluginDependencies) {
}: LegacyMonitoringStartPluginDependencies) {
this._shims = {
toastNotifications: core.notifications.toasts,
capabilities: core.application.capabilities,
Expand Down
8 changes: 6 additions & 2 deletions x-pack/plugins/monitoring/public/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ import { createMissingMonitoringDataAlertType } from './alerts/missing_monitorin
import { createThreadPoolRejectionsAlertType } from './alerts/thread_pool_rejections_alert';
import { setConfig } from './external_config';
import { Legacy } from './legacy_shims';
import { MonitoringConfig, MonitoringStartPluginDependencies } from './types';
import {
MonitoringConfig,
MonitoringStartPluginDependencies,
LegacyMonitoringStartPluginDependencies,
} from './types';

interface MonitoringSetupPluginDependencies {
home?: HomePublicPluginSetup;
Expand Down Expand Up @@ -94,7 +98,7 @@ export class MonitoringPlugin
mount: async (params: AppMountParameters) => {
const [coreStart, pluginsStart] = await core.getStartServices();
const externalConfig = this.getExternalConfig();
const deps: MonitoringStartPluginDependencies = {
const deps: LegacyMonitoringStartPluginDependencies = {
navigation: pluginsStart.navigation,
element: params.element,
core: coreStart,
Expand Down
13 changes: 10 additions & 3 deletions x-pack/plugins/monitoring/public/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import { NavigationPublicPluginStart as NavigationStart } from '../../../../src/
import { DataPublicPluginStart } from '../../../../src/plugins/data/public';
import { TriggersAndActionsUIPublicPluginStart } from '../../triggers_actions_ui/public';
import { UsageCollectionSetup } from '../../../../src/plugins/usage_collection/public';

// eslint-disable-next-line @kbn/eslint/no-restricted-paths
export type { MonitoringConfig } from '../server';
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
Expand All @@ -19,12 +18,20 @@ export type { MLJobs } from '../server/lib/elasticsearch/get_ml_jobs';
export interface MonitoringStartPluginDependencies {
navigation: NavigationStart;
data: DataPublicPluginStart;
triggersActionsUi: TriggersAndActionsUIPublicPluginStart;
usageCollection: UsageCollectionSetup;
}

interface LegacyStartDependencies {
element: HTMLElement;
core: CoreStart;
isCloud: boolean;
pluginInitializerContext: PluginInitializerContext;
externalConfig: Array<Array<string | number> | Array<string | boolean>>;
triggersActionsUi: TriggersAndActionsUIPublicPluginStart;
usageCollection: UsageCollectionSetup;
appMountParameters: AppMountParameters;
}

export type LegacyMonitoringStartPluginDependencies = MonitoringStartPluginDependencies &
LegacyStartDependencies;

export type MonitoringStartServices = CoreStart & MonitoringStartPluginDependencies;
4 changes: 2 additions & 2 deletions x-pack/plugins/monitoring/public/url_state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
import { Subscription } from 'rxjs';
import { History, createHashHistory } from 'history';
import { MonitoringStartPluginDependencies } from './types';
import { MonitoringStartPluginDependencies, MonitoringStartServices } from './types';
import { Legacy } from './legacy_shims';

import {
Expand Down Expand Up @@ -67,7 +67,7 @@ export class GlobalState {

constructor(
queryService: MonitoringStartPluginDependencies['data']['query'],
toasts: MonitoringStartPluginDependencies['core']['notifications']['toasts'],
toasts: MonitoringStartServices['notifications']['toasts'],
externalState: RawObject
) {
this.timefilterRef = queryService.timefilter.timefilter;
Expand Down

0 comments on commit 5042ef3

Please sign in to comment.