diff --git a/frontend/src/metabase/dashboard/components/DashCard.jsx b/frontend/src/metabase/dashboard/components/DashCard.jsx index af04185b1d7fcf2d1256bdfdcaabf537ac90ad1b..dcb4686c84073c8151c5bbb66c5f466dde513e12 100644 --- a/frontend/src/metabase/dashboard/components/DashCard.jsx +++ b/frontend/src/metabase/dashboard/components/DashCard.jsx @@ -135,7 +135,7 @@ export default class DashCard extends Component { replacementContent={isEditingParameter && <DashCardParameterMapper dashcard={dashcard} />} metadata={metadata} onChangeCardAndRun={(card: UnsavedCard|Card) => { - this.props.navigateToNewCard(card, dashcard) + navigateToNewCard(card, dashcard) }} /> </div> diff --git a/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx b/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx index d6b766826812a5933ee1e8f8d8bb3bb7c0f6c64d..3651bfac14ac23ad3a1687da17bf7e39218dfc7d 100644 --- a/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx +++ b/frontend/src/metabase/dashboard/hoc/DashboardControls.jsx @@ -38,7 +38,7 @@ export default (ComposedComponent: ReactClass<any>) => class extends Component<*, Props, State> { static displayName = "DashboardControls["+(ComposedComponent.displayName || ComposedComponent.name)+"]"; - state = { + state: State = { isFullscreen: false, isNightMode: false, diff --git a/frontend/src/metabase/meta/Card.spec.js b/frontend/src/metabase/meta/Card.spec.js index 3d57d40c659bc8bcb6707b76a012aee64fe1614a..a29221001721ebc925d2429b254638e41378cbbb 100644 --- a/frontend/src/metabase/meta/Card.spec.js +++ b/frontend/src/metabase/meta/Card.spec.js @@ -1,6 +1,6 @@ import * as Card from "./Card"; -import { assocIn, dissoc } from "icepick"; +import { assocIn } from "icepick"; describe("metabase/meta/Card", () => { describe("questionUrlWithParameters", () => { diff --git a/frontend/src/metabase/meta/types/Visualization.js b/frontend/src/metabase/meta/types/Visualization.js index 90732168d769a662c75af03f5a44f6b2ef33d947..b191504a37be136bf07ac649b06956610ca3a220 100644 --- a/frontend/src/metabase/meta/types/Visualization.js +++ b/frontend/src/metabase/meta/types/Visualization.js @@ -29,7 +29,7 @@ export type DimensionValue = { export type ClickObject = { value?: Value, - column: Column, + column?: Column, dimensions?: DimensionValue[], event?: MouseEvent, element?: HTMLElement, diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js index 20b4a5cae0fc176371f84984d7213a6b0a979f99..58ac0a7970c20ce1b168552eaa1f79627e7b2a86 100644 --- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js +++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js @@ -35,7 +35,7 @@ import { parseTimestamp } from "metabase/lib/time"; import { datasetContainsNoResults } from "metabase/lib/dataset"; -import type { Series } from "metabase/meta/types/Visualization" +import type { Series, ClickObject } from "metabase/meta/types/Visualization" const MIN_PIXELS_PER_TICK = { x: 100, y: 32 }; const BAR_PADDING_RATIO = 0.2; @@ -380,7 +380,7 @@ function applyChartTooltips(chart, series, isStacked, isScalarSeries, onHoverCha const card = series[seriesIndex].card; const isSingleSeriesBar = this.classList.contains("bar") && series.length === 1; - let clicked; + let clicked: ?ClickObject; if (Array.isArray(d.key)) { // scatter clicked = { value: d.key[2], diff --git a/frontend/src/metabase/visualizations/lib/table.js b/frontend/src/metabase/visualizations/lib/table.js index 686b7949aaf4f6435fbc8606c8d1e4fb9f47484a..3e05c3cb8278037c17d38b37e09456021b142138 100644 --- a/frontend/src/metabase/visualizations/lib/table.js +++ b/frontend/src/metabase/visualizations/lib/table.js @@ -13,11 +13,13 @@ export function getTableCellClickedObject(data: DatasetData, rowIndex: number, c if (isPivoted) { // if it's a pivot table, the first column is if (columnIndex === 0) { + // $FlowFixMe: _dimension return row._dimension; } else { return { value, column, + // $FlowFixMe: _dimension dimensions: [row._dimension, column._dimension] }; } diff --git a/frontend/src/metabase/visualizations/lib/tooltip.js b/frontend/src/metabase/visualizations/lib/tooltip.js index b3ea550dc68bd58f4569e21dad4e23d61f9837b7..dbc72ca44b4722dd264d4364e67b7f73cf07393e 100644 --- a/frontend/src/metabase/visualizations/lib/tooltip.js +++ b/frontend/src/metabase/visualizations/lib/tooltip.js @@ -15,7 +15,7 @@ function getParentWithClass(element, className) { } // HACK: This determines the index of the series the provided element belongs to since DC doesn't seem to provide another way -export function determineSeriesIndexFromElement(element, isStacked) { +export function determineSeriesIndexFromElement(element, isStacked): number { if (isStacked) { if (element.classList.contains("dot")) { // .dots are children of dc-tooltip diff --git a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx index 03ed47642eec01219390f72f35f7d753043b706a..73cc1b27ae737e7c4325093627a3154dd3f7f164 100644 --- a/frontend/src/metabase/visualizations/visualizations/PieChart.jsx +++ b/frontend/src/metabase/visualizations/visualizations/PieChart.jsx @@ -177,17 +177,16 @@ export default class PieChart extends Component<*, Props, *> { value = formatMetric(total); } - const getSliceClickObject = ({ index, event }) => ({ + const getSliceClickObject = (index) => ({ value: slices[index].value, column: cols[metricIndex], dimensions: [{ value: slices[index].key, column: cols[dimensionIndex], - }], - event: event + }] }) - const isClickable = onVisualizationClick && visualizationIsClickable(getSliceClickObject({ index: 0 })); + const isClickable = onVisualizationClick && visualizationIsClickable(getSliceClickObject(0)); const getSliceIsClickable = (index) => isClickable && slices[index] !== otherSlice; return ( @@ -216,10 +215,10 @@ export default class PieChart extends Component<*, Props, *> { onMouseLeave={() => onHoverChange && onHoverChange(null)} className={cx({ "cursor-pointer": getSliceIsClickable(index) })} onClick={getSliceIsClickable(index) && ((e) => - onVisualizationClick(getSliceClickObject({ - index, + onVisualizationClick({ + ...getSliceClickObject(index), event: e.nativeEvent - })) + }) )} /> )}