Compare commits

...

7 Commits

Author SHA1 Message Date
Timofei
5e63cf67f5 Revert loadCard changes 2025-09-25 12:40:31 +04:00
Timofei
ba83265be0 Revert "Use Questions.HACK_getObjectFromAction"
This reverts commit 016297badd.
2025-09-25 10:02:00 +04:00
Timofei
84189d37a8 Revert select changes 2025-09-25 00:44:13 +04:00
Timofei
016297badd Use Questions.HACK_getObjectFromAction 2025-09-25 00:44:13 +04:00
Timofei
5812f0171f Fix filtering 2025-09-25 00:44:13 +04:00
Timofei
84a628b5a6 Fixed typo 2025-09-25 00:44:13 +04:00
Timofei
f4d754d938 Minor code preparations for Static Embedding via SDK 2025-09-25 00:44:12 +04:00
5 changed files with 14 additions and 8 deletions

View File

@@ -1,12 +1,15 @@
import _ from "underscore";
import type {
SdkDispatch,
SdkStoreState,
} from "embedding-sdk-bundle/store/types";
import type { LoadSdkQuestionParams } from "embedding-sdk-bundle/types/question";
import { resolveCards } from "metabase/query_builder/actions";
import { getParameterValuesForQuestion } from "metabase/query_builder/actions/core/parameterUtils";
import { loadMetadataForCard } from "metabase/questions/actions";
import { getMetadata } from "metabase/selectors/metadata";
import Question from "metabase-lib/v1/Question";
import type { Dispatch, GetState } from "metabase-types/store";
export const loadQuestionSdk =
({
@@ -17,8 +20,8 @@ export const loadQuestionSdk =
targetDashboardId,
}: LoadSdkQuestionParams) =>
async (
dispatch: Dispatch,
getState: GetState,
dispatch: SdkDispatch,
getState: () => SdkStoreState,
): Promise<{ question: Question; originalQuestion?: Question }> => {
const questionId = initQuestionId === "new" ? undefined : initQuestionId;

View File

@@ -37,7 +37,8 @@ export async function runQuestionQuerySdk(
isDirty: isQueryDirty,
});
const [{ data }] = queryResults;
// Default values for rows/cols are needed because the `data` is missing in the case of Static Embedding
const [{ data = { rows: [], cols: [] } }] = queryResults;
const sensibleDisplays = getSensibleDisplays(data);
question = question.maybeResetDisplay(data, sensibleDisplays, undefined);
}

View File

@@ -15,7 +15,7 @@ import { getStore } from "metabase/store";
import { reducer as visualizer } from "metabase/visualizer/visualizer.slice";
import { sdk } from "./reducer";
import type { SdkStore } from "./types";
import type { SdkDispatch, SdkStore } from "./types";
export const sdkReducers = {
...commonReducers,
@@ -42,7 +42,7 @@ export const getSdkStore = () =>
export const useSdkDispatch = () => {
useCheckSdkReduxContext();
return useDispatch();
return useDispatch() as SdkDispatch;
};
export const useSdkStore = () => {

View File

@@ -32,7 +32,7 @@ export function numberToWord(num: number) {
}
}
export function isJWT(string: unknown) {
export function isJWT(string: unknown): string is string {
return (
typeof string === "string" &&
/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/.test(string)

View File

@@ -17,6 +17,7 @@ interface ResponsiveParametersListProps {
setParameterValue: (parameterId: string, value: string) => void;
setParameterIndex: (parameterId: string, parameterIndex: number) => void;
enableParameterRequiredBehavior: boolean;
commitImmediately?: boolean;
}
export const ResponsiveParametersList = ({
@@ -26,6 +27,7 @@ export const ResponsiveParametersList = ({
setParameterValue,
setParameterIndex,
enableParameterRequiredBehavior,
commitImmediately = true,
}: ResponsiveParametersListProps) => {
const [mobileShowParameterList, setShowMobileParameterList] = useState(false);
const isSmallScreen = useIsSmallScreen();
@@ -87,7 +89,7 @@ export const ResponsiveParametersList = ({
setParameterIndex={setParameterIndex}
enableParameterRequiredBehavior={enableParameterRequiredBehavior}
isEditing
commitImmediately
commitImmediately={commitImmediately}
/>
</Box>
</Box>