Skip to content
Snippets Groups Projects
Unverified Commit 221a498a authored by Oisin Coveney's avatar Oisin Coveney Committed by GitHub
Browse files

Convert Visualization Settings Actions to TS (#48941)

parent 25683917
No related branches found
No related tags found
No related merge requests found
......@@ -76,7 +76,7 @@ export interface DashCardProps {
navigateToNewCardFromDashboard?: (
opts: NavigateToNewCardFromDashboardOpts,
) => void;
onReplaceAllVisualizationSettings: (
onReplaceAllDashCardVisualizationSettings: (
dashcardId: DashCardId,
settings: VisualizationSettings,
) => void;
......@@ -114,7 +114,7 @@ function DashCardInner({
showClickBehaviorSidebar,
onChangeLocation,
onUpdateVisualizationSettings,
onReplaceAllVisualizationSettings,
onReplaceAllDashCardVisualizationSettings,
downloadsEnabled,
}: DashCardProps) {
const dashcardData = useSelector(state =>
......@@ -326,8 +326,8 @@ function DashCardInner({
onRemove={onRemove}
onReplaceCard={onReplaceCard}
onUpdateVisualizationSettings={onUpdateVisualizationSettings}
onReplaceAllVisualizationSettings={
onReplaceAllVisualizationSettings
onReplaceAllDashCardVisualizationSettings={
onReplaceAllDashCardVisualizationSettings
}
showClickBehaviorSidebar={handleShowClickBehaviorSidebar}
onPreviewToggle={handlePreviewToggle}
......
......@@ -36,7 +36,7 @@ interface Props {
onRemove: (dashcard: DashboardCard) => void;
onAddSeries: (dashcard: DashboardCard) => void;
onReplaceCard: (dashcard: DashboardCard) => void;
onReplaceAllVisualizationSettings: (
onReplaceAllDashCardVisualizationSettings: (
dashcardId: DashCardId,
settings: VisualizationSettings,
) => void;
......@@ -60,7 +60,7 @@ function DashCardActionsPanelInner({
onRemove,
onAddSeries,
onReplaceCard,
onReplaceAllVisualizationSettings,
onReplaceAllDashCardVisualizationSettings,
onUpdateVisualizationSettings,
showClickBehaviorSidebar,
onPreviewToggle,
......@@ -95,9 +95,9 @@ function DashCardActionsPanelInner({
return;
}
onReplaceAllVisualizationSettings(dashcard.id, settings);
onReplaceAllDashCardVisualizationSettings(dashcard.id, settings);
},
[dashcard, onReplaceAllVisualizationSettings],
[dashcard, onReplaceAllDashCardVisualizationSettings],
);
const handleReplaceCard = useCallback(() => {
......
......@@ -84,7 +84,7 @@ function setup({
onRemove={jest.fn()}
markNewCardSeen={jest.fn()}
navigateToNewCardFromDashboard={jest.fn()}
onReplaceAllVisualizationSettings={jest.fn()}
onReplaceAllDashCardVisualizationSettings={jest.fn()}
onUpdateVisualizationSettings={jest.fn()}
showClickBehaviorSidebar={jest.fn()}
onChangeLocation={jest.fn()}
......
......@@ -523,7 +523,7 @@ class DashboardGrid extends Component<DashboardGridProps, DashboardGridState> {
onUpdateVisualizationSettings={
this.props.onUpdateDashCardVisualizationSettings
}
onReplaceAllVisualizationSettings={
onReplaceAllDashCardVisualizationSettings={
this.props.onReplaceAllDashCardVisualizationSettings
}
mode={this.props.mode}
......
import * as Lib from "metabase-lib";
import type Question from "metabase-lib/v1/Question";
import type { VisualizationSettings } from "metabase-types/api";
import type { Dispatch, GetState } from "metabase-types/store";
import {
getDatasetEditorTab,
......@@ -9,9 +12,11 @@ import {
import { updateQuestion } from "./core";
export const updateCardVisualizationSettings =
settings => async (dispatch, getState) => {
export const onUpdateVisualizationSettings =
(settings: VisualizationSettings) =>
async (dispatch: Dispatch, getState: GetState) => {
const question = getQuestion(getState());
const previousQueryBuilderMode = getPreviousQueryBuilderMode(getState());
const queryBuilderMode = getQueryBuilderMode(getState());
const datasetEditorTab = getDatasetEditorTab(getState());
......@@ -26,24 +31,25 @@ export const updateCardVisualizationSettings =
settings["table.column_widths"] === undefined;
if (
(isEditingDatasetMetadata || wasJustEditingModel) &&
isColumnWidthResetEvent
!question ||
((isEditingDatasetMetadata || wasJustEditingModel) &&
isColumnWidthResetEvent)
) {
return;
}
// The check allows users without data permission to resize/rearrange columns
const { isEditable } = Lib.queryDisplayInfo(question.query());
const hasWritePermissions = isEditable;
await dispatch(
updateQuestion(question.updateSettings(settings), {
shouldUpdateUrl: hasWritePermissions,
shouldUpdateUrl: isEditable,
}),
);
};
export const replaceAllCardVisualizationSettings =
(settings, newQuestion) => async (dispatch, getState) => {
export const onReplaceAllVisualizationSettings =
(settings: VisualizationSettings, newQuestion: Question) =>
async (dispatch: Dispatch, getState: GetState) => {
const oldQuestion = getQuestion(getState());
const updatedQuestion = (newQuestion ?? oldQuestion).setSettings(settings);
const { isEditable } = Lib.queryDisplayInfo(updatedQuestion.query());
......@@ -57,8 +63,3 @@ export const replaceAllCardVisualizationSettings =
}),
);
};
// these are just temporary mappings to appease the existing QB code and it's naming prefs
export const onUpdateVisualizationSettings = updateCardVisualizationSettings;
export const onReplaceAllVisualizationSettings =
replaceAllCardVisualizationSettings;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment