cube-js/cube

Deprecation warning but TypeScript still refers to deprecated value

Open

#7315 opened on Oct 27, 2023

View on GitHub
 (3 comments) (2 reactions) (2 assignees)Rust (19,563 stars) (1,965 forks)batch import
client:reacthelp wanted

Description

Describe the bug The new version of the React client library gives a deprecation warning if you pass the prop cubejsApi to CubeProvider but gives type errors if you use the new cubeApi value.

Looks like this was introduced in https://github.com/cube-js/cube/pull/7300

To Reproduce Install @cubejs-client/react@0.34.9.

Create a

Expected behavior The CubeProviderProps type should contain the cubeApi type.

Screenshots image

Minimally reproducible Cube Schema N/A

Version: @cubejs-client/react@0.34.9

Additional context Happy to raise a PR to fix - seems like it'd be a matter of changing the index.d.ts file.

I've locally patched it like this:

diff --git a/index.d.ts b/index.d.ts
index 17cabc64b86b4fa9ca5939853d88efc0cf3969f2..1347bc67bff3ab64d22622685a73e6af3dcd6134 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -39,7 +39,8 @@ declare module '@cubejs-client/react' {
   }
   
   type CubeProviderProps = {
-    cubejsApi: CubejsApi | null;
+    cubejsApi?: CubejsApi | null;
+    cubeApi: CubejsApi | null;
     options?: CubeProviderOptions;
     children: React.ReactNode;
   };

Please let me know if there are any issues with this approach.

Contributor guide