@datarecce/ui 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/{RecceCheckContext-DIQjrvH8.mjs → RecceCheckContext-CiG9fGRW.mjs} +4 -3
  2. package/dist/RecceCheckContext-CiG9fGRW.mjs.map +1 -0
  3. package/dist/{RecceCheckContext-_xzNlnbJ.js → RecceCheckContext-tUxygNmN.js} +4 -3
  4. package/dist/RecceCheckContext-tUxygNmN.js.map +1 -0
  5. package/dist/api.d.mts +2 -2
  6. package/dist/api.d.ts +2 -2
  7. package/dist/api.js +3 -2
  8. package/dist/api.mjs +3 -3
  9. package/dist/{components-DXbVq9Cw.js → components-Chaffojm.js} +274 -227
  10. package/dist/components-Chaffojm.js.map +1 -0
  11. package/dist/{components-CfY72Lq2.mjs → components-DoLZeY_e.mjs} +274 -225
  12. package/dist/components-DoLZeY_e.mjs.map +1 -0
  13. package/dist/components.d.mts +1 -1
  14. package/dist/components.d.ts +1 -1
  15. package/dist/components.js +4 -4
  16. package/dist/components.mjs +4 -4
  17. package/dist/{hooks-C4jkoryM.js → hooks-VXI-W5Aq.js} +3 -3
  18. package/dist/{hooks-C4jkoryM.js.map → hooks-VXI-W5Aq.js.map} +1 -1
  19. package/dist/{hooks-C8pyX9m_.mjs → hooks-XsKEyc3k.mjs} +3 -3
  20. package/dist/{hooks-C8pyX9m_.mjs.map → hooks-XsKEyc3k.mjs.map} +1 -1
  21. package/dist/hooks.d.mts +2 -2
  22. package/dist/hooks.d.ts +2 -2
  23. package/dist/hooks.js +4 -3
  24. package/dist/hooks.mjs +4 -4
  25. package/dist/{index-CVPmrztP.d.ts → index-OeBjAMJ6.d.ts} +46 -40
  26. package/dist/index-OeBjAMJ6.d.ts.map +1 -0
  27. package/dist/{index-DIHuswfP.d.mts → index-_KWh3aGd.d.mts} +115 -109
  28. package/dist/index-_KWh3aGd.d.mts.map +1 -0
  29. package/dist/index.d.mts +2 -2
  30. package/dist/index.d.ts +2 -2
  31. package/dist/index.js +7 -5
  32. package/dist/index.mjs +6 -6
  33. package/dist/{state-BbgVwFV2.mjs → state-DyHCt6IJ.mjs} +118 -96
  34. package/dist/state-DyHCt6IJ.mjs.map +1 -0
  35. package/dist/{state-AeoqV9ja.js → state-FkYREAs-.js} +123 -95
  36. package/dist/state-FkYREAs-.js.map +1 -0
  37. package/dist/types.d.mts +1 -1
  38. package/dist/types.d.ts +1 -1
  39. package/dist/{version-MxW9vrDY.js → version-BGNaeW6k.js} +22 -12
  40. package/dist/version-BGNaeW6k.js.map +1 -0
  41. package/dist/{version-C2NU3xyx.mjs → version-Dav28qEz.mjs} +18 -14
  42. package/dist/version-Dav28qEz.mjs.map +1 -0
  43. package/package.json +2 -1
  44. package/dist/RecceCheckContext-DIQjrvH8.mjs.map +0 -1
  45. package/dist/RecceCheckContext-_xzNlnbJ.js.map +0 -1
  46. package/dist/components-CfY72Lq2.mjs.map +0 -1
  47. package/dist/components-DXbVq9Cw.js.map +0 -1
  48. package/dist/index-CVPmrztP.d.ts.map +0 -1
  49. package/dist/index-DIHuswfP.d.mts.map +0 -1
  50. package/dist/state-AeoqV9ja.js.map +0 -1
  51. package/dist/state-BbgVwFV2.mjs.map +0 -1
  52. package/dist/version-C2NU3xyx.mjs.map +0 -1
  53. package/dist/version-MxW9vrDY.js.map +0 -1
package/dist/types.d.mts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { Cr as isSimpleRun, Er as isValueDiffRun, G as RECCE_SUPPORT_CALENDAR_URL, H as PUBLIC_API_URL, J as isSchemaChanged, K as deltaPercentageString, Sr as isSchemaDiffRun, Tr as isValueDiffDetailRun, U as PUBLIC_CLOUD_WEB_URL, W as DisableTooltipMessages, X as buildQuery, Y as buildDescription, Z as buildTitle, _r as isQueryBaseRun, ar as DataFrame, br as isRowCountDiffRun, cr as RowDataTypes, dr as RunParamTypes, er as RunFormProps, fr as SchemaDiffParams, gr as isProfileRun, hr as isProfileDiffRun, ir as ColumnType, lr as RowObjectType, mr as isLineageDiffRun, nr as AxiosQueryParams, or as LineageDiffParams, pr as isHistogramDiffRun, q as columnPrecisionSelectOptions, rr as ColumnRenderMode, sr as RowData, tr as RunResultViewProps, ur as Run, vr as isQueryDiffRun, wr as isTopKDiffRun, xr as isRowCountRun, yr as isQueryRun } from "./index-DIHuswfP.mjs";
2
+ import { Cr as isRowCountDiffRun, Dr as isTopKDiffRun, Er as isSimpleRun, G as DisableTooltipMessages, J as columnPrecisionSelectOptions, K as RECCE_SUPPORT_CALENDAR_URL, Or as isValueDiffDetailRun, Q as buildTitle, Sr as isQueryRun, Tr as isSchemaDiffRun, U as PUBLIC_API_URL, W as PUBLIC_CLOUD_WEB_URL, X as buildDescription, Y as isSchemaChanged, Z as buildQuery, _r as isLineageDiffRun, ar as AxiosQueryParams, br as isQueryBaseRun, cr as DataFrame, dr as RowDataTypes, fr as RowObjectType, gr as isHistogramDiffRun, hr as SchemaDiffParams, ir as RunResultViewProps, kr as isValueDiffRun, lr as LineageDiffParams, mr as RunParamTypes, or as ColumnRenderMode, pr as Run, q as deltaPercentageString, rr as RunFormProps, sr as ColumnType, ur as RowData, vr as isProfileDiffRun, wr as isRowCountRun, xr as isQueryDiffRun, yr as isProfileRun } from "./index-_KWh3aGd.mjs";
3
3
  export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
 
2
- import { Cr as isSimpleRun, Er as isValueDiffRun, G as RECCE_SUPPORT_CALENDAR_URL, H as PUBLIC_API_URL, J as isSchemaChanged, K as deltaPercentageString, Sr as isSchemaDiffRun, Tr as isValueDiffDetailRun, U as PUBLIC_CLOUD_WEB_URL, W as DisableTooltipMessages, X as buildQuery, Y as buildDescription, Z as buildTitle, _r as isQueryBaseRun, ar as DataFrame, br as isRowCountDiffRun, cr as RowDataTypes, dr as RunParamTypes, er as RunFormProps, fr as SchemaDiffParams, gr as isProfileRun, hr as isProfileDiffRun, ir as ColumnType, lr as RowObjectType, mr as isLineageDiffRun, nr as AxiosQueryParams, or as LineageDiffParams, pr as isHistogramDiffRun, q as columnPrecisionSelectOptions, rr as ColumnRenderMode, sr as RowData, tr as RunResultViewProps, ur as Run, vr as isQueryDiffRun, wr as isTopKDiffRun, xr as isRowCountRun, yr as isQueryRun } from "./index-CVPmrztP.js";
2
+ import { Cr as isRowCountDiffRun, Dr as isTopKDiffRun, Er as isSimpleRun, G as DisableTooltipMessages, J as columnPrecisionSelectOptions, K as RECCE_SUPPORT_CALENDAR_URL, Or as isValueDiffDetailRun, Q as buildTitle, Sr as isQueryRun, Tr as isSchemaDiffRun, U as PUBLIC_API_URL, W as PUBLIC_CLOUD_WEB_URL, X as buildDescription, Y as isSchemaChanged, Z as buildQuery, _r as isLineageDiffRun, ar as AxiosQueryParams, br as isQueryBaseRun, cr as DataFrame, dr as RowDataTypes, fr as RowObjectType, gr as isHistogramDiffRun, hr as SchemaDiffParams, ir as RunResultViewProps, kr as isValueDiffRun, lr as LineageDiffParams, mr as RunParamTypes, or as ColumnRenderMode, pr as Run, q as deltaPercentageString, rr as RunFormProps, sr as ColumnType, ur as RowData, vr as isProfileDiffRun, wr as isRowCountRun, xr as isQueryDiffRun, yr as isProfileRun } from "./index-OeBjAMJ6.js";
3
3
  export { AxiosQueryParams, ColumnRenderMode, ColumnType, DataFrame, DisableTooltipMessages, LineageDiffParams, PUBLIC_API_URL, PUBLIC_CLOUD_WEB_URL, RECCE_SUPPORT_CALENDAR_URL, RowData, RowDataTypes, RowObjectType, Run, RunFormProps, RunParamTypes, RunResultViewProps, SchemaDiffParams, buildDescription, buildQuery, buildTitle, columnPrecisionSelectOptions, deltaPercentageString, isHistogramDiffRun, isLineageDiffRun, isProfileDiffRun, isProfileRun, isQueryBaseRun, isQueryDiffRun, isQueryRun, isRowCountDiffRun, isRowCountRun, isSchemaChanged, isSchemaDiffRun, isSimpleRun, isTopKDiffRun, isValueDiffDetailRun, isValueDiffRun };
@@ -1,12 +1,12 @@
1
1
  "use client"
2
- const require_state = require('./state-AeoqV9ja.js');
2
+ const require_state = require('./state-FkYREAs-.js');
3
3
  let react = require("react");
4
4
  let axios = require("axios");
5
5
  axios = require_state.__toESM(axios);
6
6
 
7
7
  //#region recce-source/js/src/lib/api/schemacheck.ts
8
- async function createSchemaDiffCheck(params) {
9
- return (await require_state.axiosClient.post("/api/checks", {
8
+ async function createSchemaDiffCheck(params, client = require_state.axiosClient) {
9
+ return (await client.post("/api/checks", {
10
10
  type: "schema_diff",
11
11
  params
12
12
  })).data;
@@ -14,8 +14,8 @@ async function createSchemaDiffCheck(params) {
14
14
 
15
15
  //#endregion
16
16
  //#region recce-source/js/src/lib/api/select.ts
17
- async function select(input) {
18
- return (await require_state.axiosClient.post(`/api/select`, input)).data;
17
+ async function select(input, client = require_state.axiosClient) {
18
+ return (await client.post(`/api/select`, input)).data;
19
19
  }
20
20
 
21
21
  //#endregion
@@ -39,15 +39,15 @@ const localStorageKeys = {
39
39
 
40
40
  //#endregion
41
41
  //#region recce-source/js/src/lib/api/connectToCloud.ts
42
- async function connectToCloud() {
43
- return (await require_state.axiosClient.post("/api/connect")).data;
42
+ async function connectToCloud(client = require_state.axiosClient) {
43
+ return (await client.post("/api/connect")).data;
44
44
  }
45
45
 
46
46
  //#endregion
47
47
  //#region recce-source/js/src/lib/api/user.ts
48
- async function fetchUser() {
48
+ async function fetchUser(client = require_state.axiosClient) {
49
49
  try {
50
- return (await require_state.axiosClient.get("/api/users")).data;
50
+ return (await client.get("/api/users")).data;
51
51
  } catch (error) {
52
52
  console.error("Error fetching user data:", error);
53
53
  throw error;
@@ -64,13 +64,17 @@ async function fetchGitHubAvatar(userId) {
64
64
 
65
65
  //#endregion
66
66
  //#region recce-source/js/src/lib/api/version.ts
67
+ async function getVersion(client = require_state.axiosClient) {
68
+ return (await client.get("/api/version")).data;
69
+ }
67
70
  function useVersionNumber() {
68
71
  const [version, setVersion] = (0, react.useState)("");
69
72
  const [latestVersion, setLatestVersion] = (0, react.useState)("");
73
+ const { apiClient } = require_state.useApiConfig();
70
74
  (0, react.useEffect)(() => {
71
75
  async function fetchVersion() {
72
76
  try {
73
- const { version: version$1, latestVersion: latestVersion$1 } = (await require_state.axiosClient.get("/api/version")).data;
77
+ const { version: version$1, latestVersion: latestVersion$1 } = await getVersion(apiClient);
74
78
  setVersion(version$1);
75
79
  setLatestVersion(latestVersion$1);
76
80
  } catch (error) {
@@ -78,7 +82,7 @@ function useVersionNumber() {
78
82
  }
79
83
  }
80
84
  fetchVersion();
81
- }, []);
85
+ }, [apiClient]);
82
86
  return {
83
87
  version,
84
88
  latestVersion
@@ -110,6 +114,12 @@ Object.defineProperty(exports, 'fetchUser', {
110
114
  return fetchUser;
111
115
  }
112
116
  });
117
+ Object.defineProperty(exports, 'getVersion', {
118
+ enumerable: true,
119
+ get: function () {
120
+ return getVersion;
121
+ }
122
+ });
113
123
  Object.defineProperty(exports, 'localStorageKeys', {
114
124
  enumerable: true,
115
125
  get: function () {
@@ -134,4 +144,4 @@ Object.defineProperty(exports, 'useVersionNumber', {
134
144
  return useVersionNumber;
135
145
  }
136
146
  });
137
- //# sourceMappingURL=version-MxW9vrDY.js.map
147
+ //# sourceMappingURL=version-BGNaeW6k.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-BGNaeW6k.js","names":["axiosClient","axiosClient","prefix","axiosClient","axiosClient","axiosClient","useApiConfig","version","latestVersion"],"sources":["../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n client: AxiosInstance = axiosClient,\n): Promise<Check> {\n const response = await client.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(\n input: SelectInput,\n client: AxiosInstance = axiosClient,\n): Promise<SelectOutput> {\n return (\n await client.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","import { AxiosInstance } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(\n client: AxiosInstance = axiosClient,\n): Promise<ConnectToCloud> {\n const data = await client.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(\n client: AxiosInstance = axiosClient,\n): Promise<User> {\n try {\n const response = await client.get<never, AxiosResponse<User>>(\"/api/users\");\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { useApiConfig } from \"../hooks/ApiConfigContext\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport async function getVersion(\n client: AxiosInstance = axiosClient,\n): Promise<VersionResponse> {\n const response = await client.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n );\n return response.data;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n const { apiClient } = useApiConfig();\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = await getVersion(apiClient);\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, [apiClient]);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;;AAiBA,eAAsB,sBACpB,QACA,SAAwBA,2BACR;AAShB,SARiB,MAAM,OAAO,KAG5B,eAAe;EACf,MAAM;EACE;EACT,CAAC,EAEc;;;;;ACflB,eAAsB,OACpB,OACA,SAAwBC,2BACD;AACvB,SACE,MAAM,OAAO,KACX,eACA,MACD,EACD;;;;;ACvBJ,MAAMC,WAAS;AAEf,MAAa,qBAAqB;CAChC,uBAAuB,GAAGA,SAAO;CACjC,sBAAsB,GAAGA,SAAO;CAChC,sBAAsB,GAAGA,SAAO;CAChC,8BAA8B,GAAGA,SAAO;CACzC;;;;ACPD,MAAM,SAAS;AAEf,MAAa,mBAAmB;CAC9B,qBAAqB,GAAG,OAAO;CAC/B,yBAAyB,GAAG,OAAO;CACnC,mBAAmB,GAAG,OAAO;CAC9B;;;;ACCD,eAAsB,eACpB,SAAwBC,2BACC;AAEzB,SADa,MAAM,OAAO,KAAqB,eAAe,EAClD;;;;;ACMd,eAAsB,UACpB,SAAwBC,2BACT;AACf,KAAI;AAEF,UADiB,MAAM,OAAO,IAAgC,aAAa,EAC3D;UACT,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AACjD,QAAM;;;AAIV,eAAsB,kBACpB,QACwB;AACxB,KAAI;AAIF,UAHiB,MAAM,cAAM,IAC3B,+BAA+B,SAChC,EACe,KAAK;UACd,OAAO;AACd,UAAQ,KAAK,kCAAkC,MAAM;AACrD,SAAO;;;;;;AC7BX,eAAsB,WACpB,SAAwBC,2BACE;AAI1B,SAHiB,MAAM,OAAO,IAC5B,eACD,EACe;;AAGlB,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,kCAAuB,GAAG;CAC1C,MAAM,CAAC,eAAe,wCAA6B,GAAG;CACtD,MAAM,EAAE,cAAcC,4BAAc;AAEpC,4BAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,mCAAkB,MAAM,WAAW,UAAU;AAE9D,eAAWC,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,CAAC,UAAU,CAAC;AAEf,QAAO;EAAE;EAAS;EAAe"}
@@ -1,11 +1,11 @@
1
1
  "use client"
2
- import { jn as axiosClient } from "./state-BbgVwFV2.mjs";
2
+ import { Mn as axiosClient, St as useApiConfig } from "./state-DyHCt6IJ.mjs";
3
3
  import { useEffect, useState } from "react";
4
- import axios, { AxiosResponse } from "axios";
4
+ import axios, { AxiosInstance, AxiosResponse } from "axios";
5
5
 
6
6
  //#region recce-source/js/src/lib/api/schemacheck.ts
7
- async function createSchemaDiffCheck(params) {
8
- return (await axiosClient.post("/api/checks", {
7
+ async function createSchemaDiffCheck(params, client = axiosClient) {
8
+ return (await client.post("/api/checks", {
9
9
  type: "schema_diff",
10
10
  params
11
11
  })).data;
@@ -13,8 +13,8 @@ async function createSchemaDiffCheck(params) {
13
13
 
14
14
  //#endregion
15
15
  //#region recce-source/js/src/lib/api/select.ts
16
- async function select(input) {
17
- return (await axiosClient.post(`/api/select`, input)).data;
16
+ async function select(input, client = axiosClient) {
17
+ return (await client.post(`/api/select`, input)).data;
18
18
  }
19
19
 
20
20
  //#endregion
@@ -38,15 +38,15 @@ const localStorageKeys = {
38
38
 
39
39
  //#endregion
40
40
  //#region recce-source/js/src/lib/api/connectToCloud.ts
41
- async function connectToCloud() {
42
- return (await axiosClient.post("/api/connect")).data;
41
+ async function connectToCloud(client = axiosClient) {
42
+ return (await client.post("/api/connect")).data;
43
43
  }
44
44
 
45
45
  //#endregion
46
46
  //#region recce-source/js/src/lib/api/user.ts
47
- async function fetchUser() {
47
+ async function fetchUser(client = axiosClient) {
48
48
  try {
49
- return (await axiosClient.get("/api/users")).data;
49
+ return (await client.get("/api/users")).data;
50
50
  } catch (error) {
51
51
  console.error("Error fetching user data:", error);
52
52
  throw error;
@@ -63,13 +63,17 @@ async function fetchGitHubAvatar(userId) {
63
63
 
64
64
  //#endregion
65
65
  //#region recce-source/js/src/lib/api/version.ts
66
+ async function getVersion(client = axiosClient) {
67
+ return (await client.get("/api/version")).data;
68
+ }
66
69
  function useVersionNumber() {
67
70
  const [version, setVersion] = useState("");
68
71
  const [latestVersion, setLatestVersion] = useState("");
72
+ const { apiClient } = useApiConfig();
69
73
  useEffect(() => {
70
74
  async function fetchVersion() {
71
75
  try {
72
- const { version: version$1, latestVersion: latestVersion$1 } = (await axiosClient.get("/api/version")).data;
76
+ const { version: version$1, latestVersion: latestVersion$1 } = await getVersion(apiClient);
73
77
  setVersion(version$1);
74
78
  setLatestVersion(latestVersion$1);
75
79
  } catch (error) {
@@ -77,7 +81,7 @@ function useVersionNumber() {
77
81
  }
78
82
  }
79
83
  fetchVersion();
80
- }, []);
84
+ }, [apiClient]);
81
85
  return {
82
86
  version,
83
87
  latestVersion
@@ -85,5 +89,5 @@ function useVersionNumber() {
85
89
  }
86
90
 
87
91
  //#endregion
88
- export { localStorageKeys as a, createSchemaDiffCheck as c, connectToCloud as i, fetchGitHubAvatar as n, sessionStorageKeys as o, fetchUser as r, select as s, useVersionNumber as t };
89
- //# sourceMappingURL=version-C2NU3xyx.mjs.map
92
+ export { connectToCloud as a, select as c, fetchUser as i, createSchemaDiffCheck as l, useVersionNumber as n, localStorageKeys as o, fetchGitHubAvatar as r, sessionStorageKeys as s, getVersion as t };
93
+ //# sourceMappingURL=version-Dav28qEz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-Dav28qEz.mjs","names":["prefix","version","latestVersion"],"sources":["../recce-source/js/src/lib/api/schemacheck.ts","../recce-source/js/src/lib/api/select.ts","../recce-source/js/src/lib/api/sessionStorageKeys.ts","../recce-source/js/src/lib/api/localStorageKeys.ts","../recce-source/js/src/lib/api/connectToCloud.ts","../recce-source/js/src/lib/api/user.ts","../recce-source/js/src/lib/api/version.ts"],"sourcesContent":["import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\nimport { Check } from \"./checks\";\n\nexport interface SchemaDiffViewParams {\n node_id?: string | string[];\n select?: string;\n exclude?: string;\n view_mode?: \"all\" | \"changed_models\";\n packages?: string[];\n}\n\ninterface CreateSchemaDiffCheckBody {\n type: string;\n params: SchemaDiffViewParams;\n}\n\nexport async function createSchemaDiffCheck(\n params: SchemaDiffViewParams,\n client: AxiosInstance = axiosClient,\n): Promise<Check> {\n const response = await client.post<\n CreateSchemaDiffCheckBody,\n AxiosResponse<Check>\n >(\"/api/checks\", {\n type: \"schema_diff\",\n params: params,\n });\n\n return response.data;\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface SelectInput {\n select?: string;\n exclude?: string;\n packages?: string[];\n view_mode?: \"all\" | \"changed_models\";\n}\n\nexport interface SelectOutput {\n nodes: string[];\n}\n\nexport async function select(\n input: SelectInput,\n client: AxiosInstance = axiosClient,\n): Promise<SelectOutput> {\n return (\n await client.post<SelectInput, AxiosResponse<SelectOutput>>(\n `/api/select`,\n input,\n )\n ).data;\n}\n","const prefix = \"recce\";\n\nexport const sessionStorageKeys = {\n recommendationIgnored: `${prefix}-recommendation-ignored`,\n recommendationShowed: `${prefix}-recommendation-showed`,\n prevRefreshTimeStamp: `${prefix}-prev-refresh-timestamp`,\n lineageNotificationDismissed: `${prefix}-lineage-notification-dismissed`,\n};\n","const prefix = \"recce-\";\n\nexport const localStorageKeys = {\n bypassSaveOverwrite: `${prefix}-bypass-save-overwrite`,\n previewChangeFeedbackID: `${prefix}-preview-change-feedback`,\n prepareEnvGuideID: `${prefix}-prepare-env`,\n};\n","import { AxiosInstance } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface ConnectToCloud {\n connection_url: string;\n}\n\nexport async function connectToCloud(\n client: AxiosInstance = axiosClient,\n): Promise<ConnectToCloud> {\n const data = await client.post<ConnectToCloud>(\"/api/connect\");\n return data.data;\n}\n","import axios, { AxiosInstance, AxiosResponse } from \"axios\";\nimport { axiosClient } from \"./axiosClient\";\n\nexport interface User {\n id: string;\n login: string;\n login_type: string;\n email: string;\n onboarding_state: string;\n}\n\ninterface GitHubUser {\n login: string;\n id: number;\n avatar_url: string;\n}\n\nexport async function fetchUser(\n client: AxiosInstance = axiosClient,\n): Promise<User> {\n try {\n const response = await client.get<never, AxiosResponse<User>>(\"/api/users\");\n return response.data;\n } catch (error) {\n console.error(\"Error fetching user data:\", error);\n throw error;\n }\n}\n\nexport async function fetchGitHubAvatar(\n userId: string,\n): Promise<string | null> {\n try {\n const response = await axios.get<GitHubUser>(\n `https://api.github.com/user/${userId}`,\n );\n return response.data.avatar_url;\n } catch (error) {\n console.warn(\"Failed to fetch GitHub avatar:\", error);\n return null;\n }\n}\n","import { AxiosInstance, AxiosResponse } from \"axios\";\nimport { useEffect, useState } from \"react\";\nimport { useApiConfig } from \"../hooks/ApiConfigContext\";\nimport { axiosClient } from \"./axiosClient\";\n\ninterface VersionResponse {\n version: string;\n latestVersion: string;\n}\n\nexport async function getVersion(\n client: AxiosInstance = axiosClient,\n): Promise<VersionResponse> {\n const response = await client.get<never, AxiosResponse<VersionResponse>>(\n \"/api/version\",\n );\n return response.data;\n}\n\nexport function useVersionNumber() {\n const [version, setVersion] = useState(\"\");\n const [latestVersion, setLatestVersion] = useState(\"\");\n const { apiClient } = useApiConfig();\n\n useEffect(() => {\n async function fetchVersion() {\n try {\n const { version, latestVersion } = await getVersion(apiClient);\n\n setVersion(version);\n setLatestVersion(latestVersion);\n } catch (error) {\n console.error(\"Error fetching version number:\", error);\n }\n }\n void fetchVersion();\n }, [apiClient]);\n\n return { version, latestVersion };\n}\n"],"mappings":";;;;;;AAiBA,eAAsB,sBACpB,QACA,SAAwB,aACR;AAShB,SARiB,MAAM,OAAO,KAG5B,eAAe;EACf,MAAM;EACE;EACT,CAAC,EAEc;;;;;ACflB,eAAsB,OACpB,OACA,SAAwB,aACD;AACvB,SACE,MAAM,OAAO,KACX,eACA,MACD,EACD;;;;;ACvBJ,MAAMA,WAAS;AAEf,MAAa,qBAAqB;CAChC,uBAAuB,GAAGA,SAAO;CACjC,sBAAsB,GAAGA,SAAO;CAChC,sBAAsB,GAAGA,SAAO;CAChC,8BAA8B,GAAGA,SAAO;CACzC;;;;ACPD,MAAM,SAAS;AAEf,MAAa,mBAAmB;CAC9B,qBAAqB,GAAG,OAAO;CAC/B,yBAAyB,GAAG,OAAO;CACnC,mBAAmB,GAAG,OAAO;CAC9B;;;;ACCD,eAAsB,eACpB,SAAwB,aACC;AAEzB,SADa,MAAM,OAAO,KAAqB,eAAe,EAClD;;;;;ACMd,eAAsB,UACpB,SAAwB,aACT;AACf,KAAI;AAEF,UADiB,MAAM,OAAO,IAAgC,aAAa,EAC3D;UACT,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AACjD,QAAM;;;AAIV,eAAsB,kBACpB,QACwB;AACxB,KAAI;AAIF,UAHiB,MAAM,MAAM,IAC3B,+BAA+B,SAChC,EACe,KAAK;UACd,OAAO;AACd,UAAQ,KAAK,kCAAkC,MAAM;AACrD,SAAO;;;;;;AC7BX,eAAsB,WACpB,SAAwB,aACE;AAI1B,SAHiB,MAAM,OAAO,IAC5B,eACD,EACe;;AAGlB,SAAgB,mBAAmB;CACjC,MAAM,CAAC,SAAS,cAAc,SAAS,GAAG;CAC1C,MAAM,CAAC,eAAe,oBAAoB,SAAS,GAAG;CACtD,MAAM,EAAE,cAAc,cAAc;AAEpC,iBAAgB;EACd,eAAe,eAAe;AAC5B,OAAI;IACF,MAAM,EAAE,oBAAS,mCAAkB,MAAM,WAAW,UAAU;AAE9D,eAAWC,UAAQ;AACnB,qBAAiBC,gBAAc;YACxB,OAAO;AACd,YAAQ,MAAM,kCAAkC,MAAM;;;AAG1D,EAAK,cAAc;IAClB,CAAC,UAAU,CAAC;AAEf,QAAO;EAAE;EAAS;EAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarecce/ui",
3
- "version": "0.1.23",
3
+ "version": "0.1.25",
4
4
  "description": "Recce UI Components Library - Reusable React components for data validation and review",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -93,6 +93,7 @@
93
93
  "@emotion/styled": "^11.14.1",
94
94
  "@hello-pangea/dnd": "^18.0.1",
95
95
  "@jeromefitz/date-fns-tz": "3.0.0-canary.8",
96
+ "@mui/material": "^7.3.6",
96
97
  "@sentry/react": "^10.32.1",
97
98
  "@types/js-cookie": "^3.0.6",
98
99
  "@uiw/codemirror-theme-github": "^4.25.4",
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecceCheckContext-DIQjrvH8.mjs","names":["nodeCount"],"sources":["../recce-source/js/src/lib/hooks/RecceQueryContext.tsx","../recce-source/js/src/lib/hooks/RecceShareStateContext.tsx","../recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx","../recce-source/js/src/lib/hooks/useCheckToast.tsx","../recce-source/js/src/lib/hooks/RecceCheckContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport interface QueryContext {\n sqlQuery: string;\n setSqlQuery: (sqlQuery: string) => void;\n primaryKeys: string[] | undefined;\n setPrimaryKeys: (primaryKeys: string[] | undefined) => void;\n isCustomQueries: boolean;\n setCustomQueries: (isCustomQueries: boolean) => void;\n baseSqlQuery?: string;\n setBaseSqlQuery?: (baseSqlQuery: string) => void;\n}\n\nexport const defaultSqlQuery = 'select * from {{ ref(\"mymodel\") }}';\n\nconst defaultQueryContext: QueryContext = {\n sqlQuery: defaultSqlQuery,\n setSqlQuery: () => {\n return void 0;\n },\n primaryKeys: undefined,\n setPrimaryKeys: () => {\n return void 0;\n },\n isCustomQueries: false,\n setCustomQueries: () => {\n return void 0;\n },\n baseSqlQuery: defaultSqlQuery,\n setBaseSqlQuery: () => {\n return void 0;\n },\n};\n\nconst RecceQueryContext = createContext(defaultQueryContext);\n\ninterface QueryContextProps {\n children: React.ReactNode;\n}\n\nexport function RecceQueryContextProvider({ children }: QueryContextProps) {\n const [sqlQuery, setSqlQuery] = React.useState<string>(defaultSqlQuery);\n const [baseSqlQuery, setBaseSqlQuery] =\n React.useState<string>(defaultSqlQuery);\n const [isCustomQueries, setCustomQueries] = React.useState<boolean>(false);\n const [primaryKeys, setPrimaryKeys] = React.useState<string[] | undefined>();\n return (\n <RecceQueryContext.Provider\n value={{\n setSqlQuery,\n sqlQuery,\n setPrimaryKeys,\n primaryKeys,\n isCustomQueries,\n setCustomQueries,\n baseSqlQuery,\n setBaseSqlQuery,\n }}\n >\n {children}\n </RecceQueryContext.Provider>\n );\n}\n\nexport const useRecceQueryContext = () => useContext(RecceQueryContext);\n\nexport interface RowCountStateContext {\n isNodesFetching: string[];\n setIsNodesFetching: (nodes: string[]) => void;\n}\n\nconst defaultRowCountStateContext: RowCountStateContext = {\n isNodesFetching: [],\n setIsNodesFetching: () => {\n return void 0;\n },\n};\n\nconst RowCountStateContext = createContext(defaultRowCountStateContext);\n\ninterface RowCountStateContextProps {\n children: React.ReactNode;\n}\n\nexport function RowCountStateContextProvider({\n children,\n}: RowCountStateContextProps) {\n const [isNodesFetching, setIsNodesFetching] = React.useState<string[]>([]);\n return (\n <RowCountStateContext.Provider\n value={{ isNodesFetching, setIsNodesFetching }}\n >\n {children}\n </RowCountStateContext.Provider>\n );\n}\n\nexport const useRowCountStateContext = () => useContext(RowCountStateContext);\n","import React, { createContext, useContext, useState } from \"react\";\nimport { shareState } from \"@/lib/api/state\";\n\ninterface ShareStateProps {\n shareUrl?: string;\n isLoading: boolean;\n error?: string;\n handleShareClick: () => Promise<void>;\n}\n\nconst ShareState = createContext<ShareStateProps | undefined>(undefined);\n\nexport function RecceShareStateContextProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [shareUrl, setShareUrl] = useState<string>();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>();\n\n const handleShareClick = async () => {\n setIsLoading(true);\n setError(undefined);\n setShareUrl(undefined);\n try {\n const response = await shareState();\n if (response.status !== \"success\") {\n setError(response.message);\n return;\n }\n setShareUrl(response.share_url);\n } catch (err) {\n setError((err as Error).message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <ShareState.Provider\n value={{ shareUrl, isLoading, error, handleShareClick }}\n >\n {children}\n </ShareState.Provider>\n );\n}\n\nexport const useRecceShareStateContext = () => {\n const context = useContext(ShareState);\n if (!context) {\n throw new Error(\n \"useRecceShareStateContext must be used within a RecceShareStateContextProvider\",\n );\n }\n return context;\n};\n","import Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport MuiDialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Stack from \"@mui/material/Stack\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport {\n EXPLORE_ACTION,\n EXPLORE_FORM_EVENT,\n trackExploreActionForm,\n} from \"@/lib/api/track\";\n\nfunction useValueDiffAlertDialog() {\n const [open, setOpen] = useState(false);\n const [nodeCount, setNodeCount] = useState(0);\n const [resolvePromise, setResolvePromise] =\n useState<(value: boolean) => void>();\n const cancelRef = useRef<HTMLButtonElement>(null);\n\n const confirm = useCallback((nodeCount: number) => {\n setNodeCount(nodeCount);\n return new Promise<boolean>((resolve) => {\n setResolvePromise(() => resolve);\n setOpen(true);\n });\n }, []);\n\n const handleConfirm = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.EXECUTE,\n });\n resolvePromise?.(true);\n setOpen(false);\n };\n\n const handleCancel = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.CANCEL,\n });\n resolvePromise?.(false);\n setOpen(false);\n };\n\n const ValueDiffAlertDialog = (\n <MuiDialog\n open={open}\n onClose={handleCancel}\n maxWidth=\"md\"\n fullWidth\n aria-labelledby=\"value-diff-alert-dialog-title\"\n >\n <DialogTitle\n id=\"value-diff-alert-dialog-title\"\n sx={{ fontSize: \"1.125rem\", fontWeight: \"bold\" }}\n >\n Value Diff on {nodeCount} nodes\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleCancel}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: \"grey.500\",\n }}\n >\n <IoClose />\n </IconButton>\n <DialogContent>\n <Stack spacing=\"20px\">\n <Box>\n Value diff will be executed on {nodeCount} nodes in the Lineage,\n which can add extra costs to your bill.\n </Box>\n </Stack>\n </DialogContent>\n <DialogActions sx={{ gap: 0.5 }}>\n <Button\n ref={cancelRef}\n onClick={handleCancel}\n variant=\"outlined\"\n color=\"neutral\"\n >\n Cancel\n </Button>\n <Button\n color=\"iochmara\"\n variant=\"contained\"\n onClick={handleConfirm}\n sx={{ ml: 1.5 }}\n >\n Execute\n </Button>\n </DialogActions>\n </MuiDialog>\n );\n\n return { confirm, AlertDialog: ValueDiffAlertDialog };\n}\n\nexport default useValueDiffAlertDialog;\n","import { toaster } from \"@/components/ui/toaster\";\n\nexport function useCheckToast() {\n function markedAsApprovedToast() {\n toaster.create({\n title: \"Marked as approved\",\n type: \"success\",\n duration: 2000,\n });\n }\n return {\n markedAsApprovedToast,\n };\n}\n","import React, { createContext, useContext } from \"react\";\n\nexport interface CheckContext {\n latestSelectedCheckId: string;\n setLatestSelectedCheckId: (selectCheckId: string) => void;\n}\n\ninterface CheckContextProps {\n children: React.ReactNode;\n}\n\nconst RecceCheckContext = createContext<CheckContext>({\n latestSelectedCheckId: \"\",\n setLatestSelectedCheckId: () => {\n return void 0;\n },\n});\n\nexport function RecceCheckContextProvider({ children }: CheckContextProps) {\n const [selectCheckId, setSelectCheckId] = React.useState<string>(\"\");\n return (\n <RecceCheckContext.Provider\n value={{\n setLatestSelectedCheckId: setSelectCheckId,\n latestSelectedCheckId: selectCheckId,\n }}\n >\n {children}\n </RecceCheckContext.Provider>\n );\n}\n\nexport const useRecceCheckContext = () => useContext(RecceCheckContext);\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecceCheckContext-_xzNlnbJ.js","names":["React","shareState","nodeCount","EXPLORE_ACTION","EXPLORE_FORM_EVENT","MuiDialog","DialogTitle","IconButton","IoClose","DialogContent","Stack","Box","DialogActions","Button","React"],"sources":["../recce-source/js/src/lib/hooks/RecceQueryContext.tsx","../recce-source/js/src/lib/hooks/RecceShareStateContext.tsx","../recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx","../recce-source/js/src/lib/hooks/useCheckToast.tsx","../recce-source/js/src/lib/hooks/RecceCheckContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport interface QueryContext {\n sqlQuery: string;\n setSqlQuery: (sqlQuery: string) => void;\n primaryKeys: string[] | undefined;\n setPrimaryKeys: (primaryKeys: string[] | undefined) => void;\n isCustomQueries: boolean;\n setCustomQueries: (isCustomQueries: boolean) => void;\n baseSqlQuery?: string;\n setBaseSqlQuery?: (baseSqlQuery: string) => void;\n}\n\nexport const defaultSqlQuery = 'select * from {{ ref(\"mymodel\") }}';\n\nconst defaultQueryContext: QueryContext = {\n sqlQuery: defaultSqlQuery,\n setSqlQuery: () => {\n return void 0;\n },\n primaryKeys: undefined,\n setPrimaryKeys: () => {\n return void 0;\n },\n isCustomQueries: false,\n setCustomQueries: () => {\n return void 0;\n },\n baseSqlQuery: defaultSqlQuery,\n setBaseSqlQuery: () => {\n return void 0;\n },\n};\n\nconst RecceQueryContext = createContext(defaultQueryContext);\n\ninterface QueryContextProps {\n children: React.ReactNode;\n}\n\nexport function RecceQueryContextProvider({ children }: QueryContextProps) {\n const [sqlQuery, setSqlQuery] = React.useState<string>(defaultSqlQuery);\n const [baseSqlQuery, setBaseSqlQuery] =\n React.useState<string>(defaultSqlQuery);\n const [isCustomQueries, setCustomQueries] = React.useState<boolean>(false);\n const [primaryKeys, setPrimaryKeys] = React.useState<string[] | undefined>();\n return (\n <RecceQueryContext.Provider\n value={{\n setSqlQuery,\n sqlQuery,\n setPrimaryKeys,\n primaryKeys,\n isCustomQueries,\n setCustomQueries,\n baseSqlQuery,\n setBaseSqlQuery,\n }}\n >\n {children}\n </RecceQueryContext.Provider>\n );\n}\n\nexport const useRecceQueryContext = () => useContext(RecceQueryContext);\n\nexport interface RowCountStateContext {\n isNodesFetching: string[];\n setIsNodesFetching: (nodes: string[]) => void;\n}\n\nconst defaultRowCountStateContext: RowCountStateContext = {\n isNodesFetching: [],\n setIsNodesFetching: () => {\n return void 0;\n },\n};\n\nconst RowCountStateContext = createContext(defaultRowCountStateContext);\n\ninterface RowCountStateContextProps {\n children: React.ReactNode;\n}\n\nexport function RowCountStateContextProvider({\n children,\n}: RowCountStateContextProps) {\n const [isNodesFetching, setIsNodesFetching] = React.useState<string[]>([]);\n return (\n <RowCountStateContext.Provider\n value={{ isNodesFetching, setIsNodesFetching }}\n >\n {children}\n </RowCountStateContext.Provider>\n );\n}\n\nexport const useRowCountStateContext = () => useContext(RowCountStateContext);\n","import React, { createContext, useContext, useState } from \"react\";\nimport { shareState } from \"@/lib/api/state\";\n\ninterface ShareStateProps {\n shareUrl?: string;\n isLoading: boolean;\n error?: string;\n handleShareClick: () => Promise<void>;\n}\n\nconst ShareState = createContext<ShareStateProps | undefined>(undefined);\n\nexport function RecceShareStateContextProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [shareUrl, setShareUrl] = useState<string>();\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string>();\n\n const handleShareClick = async () => {\n setIsLoading(true);\n setError(undefined);\n setShareUrl(undefined);\n try {\n const response = await shareState();\n if (response.status !== \"success\") {\n setError(response.message);\n return;\n }\n setShareUrl(response.share_url);\n } catch (err) {\n setError((err as Error).message);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <ShareState.Provider\n value={{ shareUrl, isLoading, error, handleShareClick }}\n >\n {children}\n </ShareState.Provider>\n );\n}\n\nexport const useRecceShareStateContext = () => {\n const context = useContext(ShareState);\n if (!context) {\n throw new Error(\n \"useRecceShareStateContext must be used within a RecceShareStateContextProvider\",\n );\n }\n return context;\n};\n","import Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport MuiDialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Stack from \"@mui/material/Stack\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport { IoClose } from \"react-icons/io5\";\nimport {\n EXPLORE_ACTION,\n EXPLORE_FORM_EVENT,\n trackExploreActionForm,\n} from \"@/lib/api/track\";\n\nfunction useValueDiffAlertDialog() {\n const [open, setOpen] = useState(false);\n const [nodeCount, setNodeCount] = useState(0);\n const [resolvePromise, setResolvePromise] =\n useState<(value: boolean) => void>();\n const cancelRef = useRef<HTMLButtonElement>(null);\n\n const confirm = useCallback((nodeCount: number) => {\n setNodeCount(nodeCount);\n return new Promise<boolean>((resolve) => {\n setResolvePromise(() => resolve);\n setOpen(true);\n });\n }, []);\n\n const handleConfirm = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.EXECUTE,\n });\n resolvePromise?.(true);\n setOpen(false);\n };\n\n const handleCancel = () => {\n trackExploreActionForm({\n action: EXPLORE_ACTION.VALUE_DIFF,\n event: EXPLORE_FORM_EVENT.CANCEL,\n });\n resolvePromise?.(false);\n setOpen(false);\n };\n\n const ValueDiffAlertDialog = (\n <MuiDialog\n open={open}\n onClose={handleCancel}\n maxWidth=\"md\"\n fullWidth\n aria-labelledby=\"value-diff-alert-dialog-title\"\n >\n <DialogTitle\n id=\"value-diff-alert-dialog-title\"\n sx={{ fontSize: \"1.125rem\", fontWeight: \"bold\" }}\n >\n Value Diff on {nodeCount} nodes\n </DialogTitle>\n <IconButton\n aria-label=\"close\"\n onClick={handleCancel}\n sx={{\n position: \"absolute\",\n right: 8,\n top: 8,\n color: \"grey.500\",\n }}\n >\n <IoClose />\n </IconButton>\n <DialogContent>\n <Stack spacing=\"20px\">\n <Box>\n Value diff will be executed on {nodeCount} nodes in the Lineage,\n which can add extra costs to your bill.\n </Box>\n </Stack>\n </DialogContent>\n <DialogActions sx={{ gap: 0.5 }}>\n <Button\n ref={cancelRef}\n onClick={handleCancel}\n variant=\"outlined\"\n color=\"neutral\"\n >\n Cancel\n </Button>\n <Button\n color=\"iochmara\"\n variant=\"contained\"\n onClick={handleConfirm}\n sx={{ ml: 1.5 }}\n >\n Execute\n </Button>\n </DialogActions>\n </MuiDialog>\n );\n\n return { confirm, AlertDialog: ValueDiffAlertDialog };\n}\n\nexport default useValueDiffAlertDialog;\n","import { toaster } from \"@/components/ui/toaster\";\n\nexport function useCheckToast() {\n function markedAsApprovedToast() {\n toaster.create({\n title: \"Marked as approved\",\n type: \"success\",\n duration: 2000,\n });\n }\n return {\n markedAsApprovedToast,\n };\n}\n","import React, { createContext, useContext } from \"react\";\n\nexport interface CheckContext {\n latestSelectedCheckId: string;\n setLatestSelectedCheckId: (selectCheckId: string) => void;\n}\n\ninterface CheckContextProps {\n children: React.ReactNode;\n}\n\nconst RecceCheckContext = createContext<CheckContext>({\n latestSelectedCheckId: \"\",\n setLatestSelectedCheckId: () => {\n return void 0;\n },\n});\n\nexport function RecceCheckContextProvider({ children }: CheckContextProps) {\n const [selectCheckId, setSelectCheckId] = React.useState<string>(\"\");\n return (\n <RecceCheckContext.Provider\n value={{\n setLatestSelectedCheckId: setSelectCheckId,\n latestSelectedCheckId: selectCheckId,\n }}\n >\n {children}\n </RecceCheckContext.Provider>\n );\n}\n\nexport const useRecceCheckContext = () => useContext(RecceCheckContext);\n"],"mappings":"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"}