diff --git a/superset-frontend/src/embedded/EmbeddedContextProviders.tsx b/superset-frontend/src/embedded/EmbeddedContextProviders.tsx index 3846f697d11..28819a9702e 100644 --- a/superset-frontend/src/embedded/EmbeddedContextProviders.tsx +++ b/superset-frontend/src/embedded/EmbeddedContextProviders.tsx @@ -17,6 +17,7 @@ * under the License. */ import { getExtensionsRegistry } from '@superset-ui/core'; +import type { ComponentType, ReactNode } from 'react'; import { Provider as ReduxProvider } from 'react-redux'; import { QueryParamProvider } from 'use-query-params'; import { ReactRouter5Adapter } from 'use-query-params/adapters/react-router-5'; @@ -64,7 +65,7 @@ export const EmbeddedContextProviders: React.FC<{ }> = ({ children }) => { const RootContextProviderExtension = extensionsRegistry.get( 'root.context.provider', - ); + ) as ComponentType<{ children?: ReactNode }> | undefined; return ( diff --git a/superset-frontend/src/explore/components/controls/CollectionControl/index.tsx b/superset-frontend/src/explore/components/controls/CollectionControl/index.tsx index 0ad904731fa..369642f4142 100644 --- a/superset-frontend/src/explore/components/controls/CollectionControl/index.tsx +++ b/superset-frontend/src/explore/components/controls/CollectionControl/index.tsx @@ -188,7 +188,9 @@ function CollectionControl({ // Two items can collide when keyAccessor returns falsy and the index // fallback is used — breaking dnd-kit reordering and React reconciliation. // Assign a stable nanoid per item ref when no key is available. - const generatedIdsRef = useRef>(new WeakMap()); + const generatedIdsRef = useRef>( + new WeakMap(), + ); const itemIds = useMemo( () => value.map(item => { diff --git a/superset-frontend/src/features/home/SubMenu.tsx b/superset-frontend/src/features/home/SubMenu.tsx index 9c2e2c451eb..d0108473f9c 100644 --- a/superset-frontend/src/features/home/SubMenu.tsx +++ b/superset-frontend/src/features/home/SubMenu.tsx @@ -34,6 +34,7 @@ import { Tooltip, Row, type OnClickHandler, + type ButtonProps as CoreButtonProps, } from '@superset-ui/core/components'; import { Icons } from '@superset-ui/core/components/Icons'; import { MenuObjectProps } from 'src/types/bootstrapTypes'; @@ -148,7 +149,7 @@ export interface ButtonProps { 'data-test'?: string; buttonStyle: 'primary' | 'secondary' | 'dashed' | 'link' | 'tertiary'; loading?: boolean; - icon?: ReactNode; + icon?: CoreButtonProps['icon']; component?: ReactNode; } diff --git a/superset-frontend/src/views/RootContextProviders.tsx b/superset-frontend/src/views/RootContextProviders.tsx index 38a6dab16e4..abc1475054e 100644 --- a/superset-frontend/src/views/RootContextProviders.tsx +++ b/superset-frontend/src/views/RootContextProviders.tsx @@ -18,6 +18,7 @@ */ import { getExtensionsRegistry } from '@superset-ui/core'; +import type { ComponentType, ReactNode } from 'react'; import { Provider as ReduxProvider } from 'react-redux'; import { QueryParamProvider } from 'use-query-params'; import { ReactRouter5Adapter } from 'use-query-params/adapters/react-router-5'; @@ -39,7 +40,7 @@ export const RootContextProviders: React.FC<{ children?: React.ReactNode }> = ({ }) => { const RootContextProviderExtension = extensionsRegistry.get( 'root.context.provider', - ); + ) as ComponentType<{ children?: ReactNode }> | undefined; return ( diff --git a/superset/superset_typing.py b/superset/superset_typing.py index b7b81e83f4d..4634a66ee43 100644 --- a/superset/superset_typing.py +++ b/superset/superset_typing.py @@ -82,6 +82,8 @@ class DatasetMetricData(TypedDict, total=False): warning_markdown: str | None warning_text: str | None verbose_name: str | None + + # Type alias for database connection mutator function DBConnectionMutator: TypeAlias = Callable[ [URL, dict[str, Any], str | None, Any, "QuerySource | None"],