@malloy-publisher/sdk 0.0.34 → 0.0.35

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 (332) hide show
  1. package/README.md +21 -0
  2. package/dist/{RenderedResult-9A74lwfO.cjs → RenderedResult-DphykkT6.cjs} +1 -1
  3. package/dist/client/api.d.ts +18 -0
  4. package/dist/components/ApiErrorDisplay.d.ts +13 -0
  5. package/dist/components/Model/ModelCell.d.ts +1 -6
  6. package/dist/components/Package/Config.d.ts +1 -9
  7. package/dist/components/Package/Connections.d.ts +1 -8
  8. package/dist/components/Package/Databases.d.ts +1 -9
  9. package/dist/components/Package/Models.d.ts +1 -6
  10. package/dist/components/Package/Notebooks.d.ts +2 -7
  11. package/dist/components/Package/Package.d.ts +1 -6
  12. package/dist/components/Package/PackageProvider.d.ts +14 -0
  13. package/dist/components/Package/Schedules.d.ts +1 -9
  14. package/dist/components/Package/index.d.ts +2 -1
  15. package/dist/components/Project/About.d.ts +1 -7
  16. package/dist/components/Project/ConnectionExplorer.d.ts +1 -4
  17. package/dist/components/Project/Packages.d.ts +2 -5
  18. package/dist/components/Project/Project.d.ts +11 -3
  19. package/dist/components/Project/index.d.ts +1 -1
  20. package/dist/components/QueryResult/QueryResult.d.ts +1 -6
  21. package/dist/{index-TNDWxBXR.cjs → index-nKbldp0y.cjs} +598 -598
  22. package/dist/index.cjs.js +1 -1
  23. package/package.json +1 -1
  24. package/src/components/ApiErrorDisplay.tsx +40 -0
  25. package/src/components/Home/Home.tsx +8 -1
  26. package/src/components/Model/Model.tsx +59 -28
  27. package/src/components/Model/ModelCell.tsx +26 -63
  28. package/src/components/Model/NamedQueries.tsx +2 -2
  29. package/src/components/Model/SourcesExplorer.tsx +14 -15
  30. package/src/components/MutableNotebook/ModelPicker.tsx +13 -3
  31. package/src/components/MutableNotebook/MutableCell.tsx +5 -14
  32. package/src/components/MutableNotebook/MutableNotebook.tsx +2 -2
  33. package/src/components/Notebook/Notebook.tsx +48 -24
  34. package/src/components/Package/Config.tsx +10 -18
  35. package/src/components/Package/Connections.tsx +10 -12
  36. package/src/components/Package/Databases.tsx +93 -198
  37. package/src/components/Package/FileTreeView.tsx +21 -4
  38. package/src/components/Package/Models.tsx +21 -31
  39. package/src/components/Package/Notebooks.tsx +22 -32
  40. package/src/components/Package/Package.tsx +31 -89
  41. package/src/components/Package/PackageProvider.tsx +46 -0
  42. package/src/components/Package/Schedules.tsx +10 -19
  43. package/src/components/Package/index.ts +6 -1
  44. package/src/components/Project/About.tsx +7 -15
  45. package/src/components/Project/ConnectionExplorer.tsx +131 -52
  46. package/src/components/Project/Packages.tsx +12 -13
  47. package/src/components/Project/Project.tsx +35 -16
  48. package/src/components/Project/index.ts +1 -1
  49. package/src/components/QueryResult/QueryResult.tsx +12 -15
  50. package/src/components/RenderedResult/ResultContainer.tsx +0 -1
  51. package/dist/RenderedResult-CKEsEevp.js +0 -51
  52. package/dist/abap-BmBUA35e.js +0 -6
  53. package/dist/actionscript-3-zFUbzQa9.js +0 -6
  54. package/dist/ada-CBvPkFpZ.js +0 -6
  55. package/dist/andromeeda-uXNdzNpk.js +0 -4
  56. package/dist/angular-html-0fTdLuKf.js +0 -32
  57. package/dist/angular-ts-wkniW60G.js +0 -21
  58. package/dist/apache-CVNlsSDc.js +0 -6
  59. package/dist/apex-DFk3KRB1.js +0 -6
  60. package/dist/apl-TLDHFJX6.js +0 -16
  61. package/dist/applescript-CYMR_y0g.js +0 -6
  62. package/dist/ara-4QmU5e04.js +0 -6
  63. package/dist/asciidoc-v_1bjgUg.js +0 -6
  64. package/dist/asm-RC0Yh-NZ.js +0 -6
  65. package/dist/astro-Uf8_VxKJ.js +0 -16
  66. package/dist/aurora-x-BwoVEUWZ.js +0 -4
  67. package/dist/awk-gPH8MVMW.js +0 -6
  68. package/dist/ayu-dark-CxPZkpb2.js +0 -4
  69. package/dist/ballerina-kvLnRU_e.js +0 -6
  70. package/dist/bat-BHYy44sT.js +0 -6
  71. package/dist/beancount-D-MADTs_.js +0 -6
  72. package/dist/berry-Ci9U0o4h.js +0 -6
  73. package/dist/bibtex-CX618D15.js +0 -6
  74. package/dist/bicep-iuYiPopT.js +0 -6
  75. package/dist/blade-BtR00Gx0.js +0 -18
  76. package/dist/bsl-BIXPNqL4.js +0 -8
  77. package/dist/c-DASdrs7p.js +0 -6
  78. package/dist/cadence-BDALQi26.js +0 -6
  79. package/dist/cairo-tXZKA2PT.js +0 -8
  80. package/dist/catppuccin-frappe-BrTOiad2.js +0 -4
  81. package/dist/catppuccin-latte-D-dc_R4m.js +0 -4
  82. package/dist/catppuccin-macchiato-DN4jOp0G.js +0 -4
  83. package/dist/catppuccin-mocha-B8yCE3-3.js +0 -4
  84. package/dist/clarity-CNgV2Ths.js +0 -6
  85. package/dist/clojure-CsKKFGwv.js +0 -6
  86. package/dist/cmake-Dr-A3iJx.js +0 -6
  87. package/dist/cobol-DMssKNmC.js +0 -10
  88. package/dist/codeowners-Bt9yU6NX.js +0 -6
  89. package/dist/codeql-DBNTqJi1.js +0 -6
  90. package/dist/coffee-D_GzM8k1.js +0 -8
  91. package/dist/common-lisp-r7ZEOG7T.js +0 -6
  92. package/dist/components/Package/PublisherPackageProvider.d.ts +0 -14
  93. package/dist/components/Project/TablesInSchema.d.ts +0 -10
  94. package/dist/coq-CB6Pv_W9.js +0 -6
  95. package/dist/cpp-CJF2i3ah.js +0 -18
  96. package/dist/crystal-BKWnaU3g.js +0 -18
  97. package/dist/csharp-CYWRhZ2R.js +0 -6
  98. package/dist/css-D1aVdRIU.js +0 -6
  99. package/dist/csv-DvCncUGQ.js +0 -6
  100. package/dist/cue-BXMrmvay.js +0 -6
  101. package/dist/cypher-DTm5zNR1.js +0 -6
  102. package/dist/d-D6ZXmn3l.js +0 -6
  103. package/dist/dark-plus-pUHDTVV0.js +0 -4
  104. package/dist/dart-Dz59Is3F.js +0 -6
  105. package/dist/dax-DTVGzydb.js +0 -6
  106. package/dist/desktop-Db9vb-dl.js +0 -6
  107. package/dist/diff-XmNrvgM1.js +0 -6
  108. package/dist/docker-DWH2onkn.js +0 -6
  109. package/dist/dotenv-4337wvzu.js +0 -6
  110. package/dist/dracula-BtZx2Kac.js +0 -4
  111. package/dist/dracula-soft-BKa-aqBv.js +0 -4
  112. package/dist/dream-maker-CvvfrJSx.js +0 -6
  113. package/dist/edge-CgxR-qhM.js +0 -12
  114. package/dist/elixir-DZkeSPwW.js +0 -8
  115. package/dist/elm-BKuV1HE1.js +0 -8
  116. package/dist/emacs-lisp-BAefI874.js +0 -6
  117. package/dist/erb-BLwkpXUJ.js +0 -10
  118. package/dist/erlang-CmIiwF3I.js +0 -6
  119. package/dist/everforest-dark-DMCBqXCK.js +0 -4
  120. package/dist/everforest-light-BbXl82Em.js +0 -4
  121. package/dist/fennel-DNqkz9pE.js +0 -6
  122. package/dist/fish-DIm72t2T.js +0 -6
  123. package/dist/fluent-BapTxJsC.js +0 -6
  124. package/dist/fortran-fixed-form-s9Hnb3av.js +0 -8
  125. package/dist/fortran-free-form-CNDsBFUj.js +0 -6
  126. package/dist/fsharp-Cv0x43wb.js +0 -8
  127. package/dist/gdresource-CMcKXvgJ.js +0 -10
  128. package/dist/gdscript-D7aheHm-.js +0 -6
  129. package/dist/gdshader-BGJEsM2Z.js +0 -6
  130. package/dist/genie-C9gPjc6J.js +0 -6
  131. package/dist/gherkin-bka1Exbx.js +0 -6
  132. package/dist/git-commit-BspYIY3P.js +0 -8
  133. package/dist/git-rebase--zLBTjUa.js +0 -8
  134. package/dist/github-dark-DenFmJkN.js +0 -4
  135. package/dist/github-dark-default-BJPUVz4H.js +0 -4
  136. package/dist/github-dark-dimmed-DUshB20C.js +0 -4
  137. package/dist/github-dark-high-contrast-D3aGCnF8.js +0 -4
  138. package/dist/github-light-JYsPkUQd.js +0 -4
  139. package/dist/github-light-default-D99KPAby.js +0 -4
  140. package/dist/github-light-high-contrast-BbmZE-Mp.js +0 -4
  141. package/dist/gleam-B4k9YFGD.js +0 -6
  142. package/dist/glimmer-js-DhY9umHJ.js +0 -14
  143. package/dist/glimmer-ts-CCrHcYH5.js +0 -14
  144. package/dist/glsl-XLGYNq5B.js +0 -8
  145. package/dist/gnuplot-DnWoRZt-.js +0 -6
  146. package/dist/go-BErP6iv1.js +0 -6
  147. package/dist/graphql-DWpQF4JI.js +0 -14
  148. package/dist/groovy-IWs5-NIO.js +0 -6
  149. package/dist/hack-CQrV-ytR.js +0 -10
  150. package/dist/haml-CMN0hQaL.js +0 -10
  151. package/dist/handlebars-Cc-7fXX5.js +0 -14
  152. package/dist/haskell-CtlGos0K.js +0 -6
  153. package/dist/haxe-CZZ33vZw.js +0 -6
  154. package/dist/hcl-6hOg9WP4.js +0 -6
  155. package/dist/hjson-CgwED-oz.js +0 -6
  156. package/dist/hlsl-3-lv4gi7.js +0 -6
  157. package/dist/houston-BDYrDoDW.js +0 -4
  158. package/dist/html-B0P_v3yU.js +0 -10
  159. package/dist/html-derivative-D59SHfh8.js +0 -8
  160. package/dist/http-Dcjm_K1m.js +0 -14
  161. package/dist/hxml-BNKImryz.js +0 -8
  162. package/dist/hy-C2xHhR6I.js +0 -6
  163. package/dist/imba-Drd0AMDo.js +0 -8
  164. package/dist/index-DahUc0AC.js +0 -139511
  165. package/dist/index.es.js +0 -19
  166. package/dist/ini-BUcvsX-U.js +0 -6
  167. package/dist/java-B7odJ7Ap.js +0 -6
  168. package/dist/javascript-fa8UlHZE.js +0 -6
  169. package/dist/jinja-CCSYduCH.js +0 -11
  170. package/dist/jison-BygvlveW.js +0 -8
  171. package/dist/json-71t8ZF9g.js +0 -6
  172. package/dist/json5-Z7F6rA6a.js +0 -6
  173. package/dist/jsonc-Dphhs4m2.js +0 -6
  174. package/dist/jsonl-D9jj92Gg.js +0 -6
  175. package/dist/jsonnet-DEQ7IUoJ.js +0 -6
  176. package/dist/jssm-j74e88UX.js +0 -6
  177. package/dist/jsx-Bkesy5tT.js +0 -6
  178. package/dist/julia-CiahampL.js +0 -16
  179. package/dist/kanagawa-dragon-CiKur4Hl.js +0 -4
  180. package/dist/kanagawa-lotus-BKu-smKu.js +0 -4
  181. package/dist/kanagawa-wave-CQwozSzG.js +0 -4
  182. package/dist/kotlin-DCgZY7Ii.js +0 -6
  183. package/dist/kusto-Cw029H-v.js +0 -6
  184. package/dist/laserwave-6a00oqik.js +0 -4
  185. package/dist/latex-LfGCYGw5.js +0 -8
  186. package/dist/lean-CYSet4vs.js +0 -6
  187. package/dist/less-DQA4v-Nm.js +0 -6
  188. package/dist/light-plus-CZuVqSLX.js +0 -4
  189. package/dist/liquid-CvufO3kO.js +0 -14
  190. package/dist/log-D2eRfqDn.js +0 -6
  191. package/dist/logo-QEAtGWZ9.js +0 -6
  192. package/dist/lua-BVfhNLDr.js +0 -8
  193. package/dist/luau-BjYGiqID.js +0 -6
  194. package/dist/make-BjuHP00g.js +0 -6
  195. package/dist/malloy-explorer.css +0 -468
  196. package/dist/markdown-B6guhLWd.js +0 -6
  197. package/dist/marko-CHlMS8w5.js +0 -14
  198. package/dist/material-theme-D6KBX41T.js +0 -4
  199. package/dist/material-theme-darker-CkRroheE.js +0 -4
  200. package/dist/material-theme-lighter-BUBw43Yz.js +0 -4
  201. package/dist/material-theme-ocean-ClGX14Ja.js +0 -4
  202. package/dist/material-theme-palenight-C1RVm8K1.js +0 -4
  203. package/dist/matlab-BpQlIJiw.js +0 -6
  204. package/dist/mdc-4K6B6lHG.js +0 -12
  205. package/dist/mdx-DIoECIFU.js +0 -6
  206. package/dist/mermaid-BZ7WHNIe.js +0 -6
  207. package/dist/min-dark-C7ak0t6c.js +0 -4
  208. package/dist/min-light-CKFxVcPp.js +0 -4
  209. package/dist/mipsasm-DusDYkFc.js +0 -6
  210. package/dist/mojo-CY9jaezJ.js +0 -6
  211. package/dist/monokai-C1KBYcO0.js +0 -4
  212. package/dist/move-ChphFumd.js +0 -6
  213. package/dist/narrat-Dz4d7OmN.js +0 -6
  214. package/dist/nextflow-DW0Yq9a2.js +0 -6
  215. package/dist/nginx-Can2eAjw.js +0 -8
  216. package/dist/night-owl-Bm2rzalh.js +0 -4
  217. package/dist/nim-B3r2RtQZ.js +0 -20
  218. package/dist/nix-Cg5uV_xg.js +0 -6
  219. package/dist/nord-CC5OiUXg.js +0 -4
  220. package/dist/nushell-BfRnzRWn.js +0 -6
  221. package/dist/objective-c-BGg9R27G.js +0 -6
  222. package/dist/objective-cpp-CJ3y3V_5.js +0 -6
  223. package/dist/ocaml-BZLsfx_o.js +0 -6
  224. package/dist/one-dark-pro-D7-kP8fv.js +0 -4
  225. package/dist/one-light-D9sNaUtq.js +0 -4
  226. package/dist/pascal-l2bqd7Dz.js +0 -6
  227. package/dist/perl-DaMQyPwp.js +0 -16
  228. package/dist/php-BL3EfPBi.js +0 -18
  229. package/dist/plastic-CSTz3KZp.js +0 -4
  230. package/dist/plsql-oVq_K_wH.js +0 -6
  231. package/dist/po-5jaeIyVd.js +0 -6
  232. package/dist/poimandres-C-VADXHD.js +0 -4
  233. package/dist/polar-wcLp8ci7.js +0 -6
  234. package/dist/postcss-BZ3MNRIJ.js +0 -6
  235. package/dist/powerquery-CgRa2XRw.js +0 -6
  236. package/dist/powershell-Diwyv8Eh.js +0 -6
  237. package/dist/prisma-COL_v1x4.js +0 -6
  238. package/dist/prolog-CuvJOxqT.js +0 -6
  239. package/dist/proto-o9HLmF90.js +0 -6
  240. package/dist/pug-HKe4Luo3.js +0 -12
  241. package/dist/puppet-wpGOnQp5.js +0 -6
  242. package/dist/purescript-B_1NgE2N.js +0 -6
  243. package/dist/python-xYxLFJY-.js +0 -6
  244. package/dist/qml-FlMIyjU9.js +0 -8
  245. package/dist/qmldir-BInDYbpo.js +0 -6
  246. package/dist/qss-D-h4NdUG.js +0 -6
  247. package/dist/r-F-9I-ITZ.js +0 -6
  248. package/dist/racket-BoD1TBFT.js +0 -6
  249. package/dist/raku-IaYcw19m.js +0 -6
  250. package/dist/razor-CeqqNtyB.js +0 -10
  251. package/dist/red-7y8PH7HH.js +0 -4
  252. package/dist/reg-CMUdAgIP.js +0 -6
  253. package/dist/regexp-GiFkbxS-.js +0 -6
  254. package/dist/rel-BaRn3QX7.js +0 -6
  255. package/dist/riscv-B9V3SsvW.js +0 -6
  256. package/dist/rose-pine-DhT-HZE9.js +0 -4
  257. package/dist/rose-pine-dawn-DiCjL2i4.js +0 -4
  258. package/dist/rose-pine-moon-BNmGHlcn.js +0 -4
  259. package/dist/rst-C3D6-dqL.js +0 -22
  260. package/dist/ruby-DcPLUUK3.js +0 -30
  261. package/dist/rust-Pc7DCsZD.js +0 -6
  262. package/dist/sas-tDSYjXcL.js +0 -8
  263. package/dist/sass-iCyS6eP9.js +0 -6
  264. package/dist/scala-Cly-fENF.js +0 -6
  265. package/dist/scheme-Zi24oEYu.js +0 -6
  266. package/dist/scss-DhHc4lxB.js +0 -8
  267. package/dist/sdbl-BBamrXFL.js +0 -6
  268. package/dist/shaderlab-CvqEIoL0.js +0 -8
  269. package/dist/shellscript-Dn0-btNd.js +0 -6
  270. package/dist/shellsession-8OLo3sB6.js +0 -8
  271. package/dist/slack-dark-i7wN4OET.js +0 -4
  272. package/dist/slack-ochin-ndHf0LoP.js +0 -4
  273. package/dist/smalltalk-Cns31tKw.js +0 -6
  274. package/dist/snazzy-light-BlSJXAu4.js +0 -4
  275. package/dist/solarized-dark-UTmkh7lw.js +0 -4
  276. package/dist/solarized-light-BheCkDPT.js +0 -4
  277. package/dist/solidity-BG_k8fA_.js +0 -6
  278. package/dist/soy-EwHMOVPj.js +0 -8
  279. package/dist/sparql-DhuelBut.js +0 -8
  280. package/dist/splunk-CTqDjQdo.js +0 -6
  281. package/dist/sql-DCkt643-.js +0 -6
  282. package/dist/ssh-config-DHHGll-v.js +0 -6
  283. package/dist/stata-Dok6hMw0.js +0 -8
  284. package/dist/stylus-n_9f0QQ5.js +0 -6
  285. package/dist/svelte-01qw6Rxm.js +0 -14
  286. package/dist/swift-BAWqNR8A.js +0 -6
  287. package/dist/synthwave-84-NU3C_KFZ.js +0 -4
  288. package/dist/system-verilog-Cui-g-ut.js +0 -6
  289. package/dist/systemd-CsKYQIQK.js +0 -6
  290. package/dist/talonscript-D2dGh8FO.js +0 -6
  291. package/dist/tasl-D3W8HMV6.js +0 -6
  292. package/dist/tcl-2y0Fuc4S.js +0 -6
  293. package/dist/templ-Hmy8U0DD.js +0 -12
  294. package/dist/terraform-BGW6Oerf.js +0 -6
  295. package/dist/tex-mHs7a43s.js +0 -8
  296. package/dist/tokyo-night-LhP3hHhi.js +0 -4
  297. package/dist/toml-CQSfOn0e.js +0 -6
  298. package/dist/ts-tags-DYZ4SGcN.js +0 -41
  299. package/dist/tsv-BtvSkaG0.js +0 -6
  300. package/dist/tsx-DiGsgWT8.js +0 -6
  301. package/dist/turtle-BJ2wmjPc.js +0 -6
  302. package/dist/twig-BmytkGQV.js +0 -18
  303. package/dist/typescript-buWNZFwO.js +0 -6
  304. package/dist/typespec-bLbdsxJL.js +0 -6
  305. package/dist/typst-Y9_SmXTs.js +0 -6
  306. package/dist/v-wa8Orrdd.js +0 -6
  307. package/dist/vala-DRdriFr_.js +0 -6
  308. package/dist/vb-E2_-jk4M.js +0 -6
  309. package/dist/vendor-DfRellEl.js +0 -75318
  310. package/dist/verilog-B1iBoR5_.js +0 -6
  311. package/dist/vesper-CJsaOsSM.js +0 -4
  312. package/dist/vhdl-CRVaAhXk.js +0 -6
  313. package/dist/viml-B-zWOd7Z.js +0 -6
  314. package/dist/vitesse-black-BoGvW84i.js +0 -4
  315. package/dist/vitesse-dark-Cym-eLtO.js +0 -4
  316. package/dist/vitesse-light-CcmG315c.js +0 -4
  317. package/dist/vue-Bl1uVNsA.js +0 -31
  318. package/dist/vue-html-DHr5wjBG.js +0 -10
  319. package/dist/vyper-DWutKXpa.js +0 -6
  320. package/dist/wasm-Bv5f0gKv.js +0 -6
  321. package/dist/wasm-DQxwEHae.js +0 -7
  322. package/dist/wenyan-BMYnfus1.js +0 -6
  323. package/dist/wgsl-DnPoPGDU.js +0 -6
  324. package/dist/wikitext-CntM04PE.js +0 -6
  325. package/dist/wolfram-Ws5qPlX9.js +0 -6
  326. package/dist/xml-ChBsf5uy.js +0 -8
  327. package/dist/xsl-BefjlXrd.js +0 -8
  328. package/dist/yaml-Bbg74JKr.js +0 -6
  329. package/dist/zenscript-C0RKE4nU.js +0 -6
  330. package/dist/zig-D6SXBGNm.js +0 -6
  331. package/src/components/Package/PublisherPackageProvider.tsx +0 -48
  332. package/src/components/Project/TablesInSchema.tsx +0 -84
@@ -4,6 +4,8 @@ import axios from "axios";
4
4
  import { Configuration, ModelsApi } from "../../client";
5
5
  import { StyledCard, StyledCardContent } from "../styles";
6
6
  import { FileTreeView } from "./FileTreeView";
7
+ import { usePackage } from "./PackageProvider";
8
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
7
9
 
8
10
  axios.defaults.baseURL = "http://localhost:4000";
9
11
  const modelsApi = new ModelsApi(new Configuration());
@@ -12,22 +14,13 @@ const queryClient = new QueryClient();
12
14
  const DEFAULT_EXPANDED_FOLDERS = ["notebooks/", "models/"];
13
15
 
14
16
  interface ModelsProps {
15
- server?: string;
16
- projectName: string;
17
- packageName: string;
18
- versionId?: string;
19
17
  navigate: (to: string, event?: React.MouseEvent) => void;
20
- accessToken?: string;
21
18
  }
22
19
 
23
- export default function Models({
24
- server,
25
- projectName,
26
- packageName,
27
- versionId,
28
- navigate,
29
- accessToken,
30
- }: ModelsProps) {
20
+ export default function Models({ navigate }: ModelsProps) {
21
+ const { server, projectName, packageName, versionId, accessToken } =
22
+ usePackage();
23
+
31
24
  const { data, isError, error, isLoading, isSuccess } = useQuery(
32
25
  {
33
26
  queryKey: ["models", server, projectName, packageName, versionId],
@@ -39,6 +32,7 @@ export default function Models({
39
32
  Authorization: accessToken && `Bearer ${accessToken}`,
40
33
  },
41
34
  }),
35
+ throwOnError: false,
42
36
  retry: false,
43
37
  },
44
38
  queryClient,
@@ -58,29 +52,25 @@ export default function Models({
58
52
  overflowY: "auto",
59
53
  }}
60
54
  >
61
- {isLoading && (
55
+ {!isSuccess && !isError && (
62
56
  <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
63
57
  Fetching Models...
64
58
  </Typography>
65
59
  )}
66
- {isSuccess &&
67
- (data.data.length > 0 ? (
68
- <FileTreeView
69
- items={data.data.sort((a, b) => {
70
- return a.path.localeCompare(b.path);
71
- })}
72
- defaultExpandedItems={DEFAULT_EXPANDED_FOLDERS}
73
- navigate={navigate}
74
- />
75
- ) : (
76
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
77
- No models found
78
- </Typography>
79
- ))}
80
60
  {isError && (
81
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
82
- {`${projectName} > ${packageName} > ${versionId} - ${error.message}`}
83
- </Typography>
61
+ <ApiErrorDisplay
62
+ error={error}
63
+ context={`${projectName} > ${packageName} > Models`}
64
+ />
65
+ )}
66
+ {isSuccess && (
67
+ <FileTreeView
68
+ items={data.data.sort((a, b) => {
69
+ return a.path.localeCompare(b.path);
70
+ })}
71
+ navigate={navigate}
72
+ defaultExpandedItems={DEFAULT_EXPANDED_FOLDERS}
73
+ />
84
74
  )}
85
75
  </Box>
86
76
  </StyledCardContent>
@@ -3,29 +3,22 @@ import { QueryClient, useQuery } from "@tanstack/react-query";
3
3
  import { Configuration, NotebooksApi } from "../../client";
4
4
  import { StyledCard, StyledCardContent } from "../styles";
5
5
  import { FileTreeView } from "./FileTreeView";
6
+ import { usePackage } from "./PackageProvider";
7
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
6
8
 
7
9
  const notebooksApi = new NotebooksApi(new Configuration());
8
10
  const queryClient = new QueryClient();
9
11
 
10
12
  const DEFAULT_EXPANDED_FOLDERS = ["notebooks/"];
11
13
 
12
- interface ModelsProps {
13
- server?: string;
14
- projectName: string;
15
- packageName: string;
16
- versionId?: string;
14
+ interface NotebooksProps {
17
15
  navigate: (to: string, event?: React.MouseEvent) => void;
18
- accessToken?: string;
19
16
  }
20
17
 
21
- export default function Notebooks({
22
- server,
23
- projectName,
24
- packageName,
25
- versionId,
26
- navigate,
27
- accessToken,
28
- }: ModelsProps) {
18
+ export default function Notebooks({ navigate }: NotebooksProps) {
19
+ const { server, projectName, packageName, versionId, accessToken } =
20
+ usePackage();
21
+
29
22
  const { data, isLoading, isError, error, isSuccess } = useQuery(
30
23
  {
31
24
  queryKey: ["notebooks", server, projectName, packageName, versionId],
@@ -37,6 +30,7 @@ export default function Notebooks({
37
30
  Authorization: accessToken && `Bearer ${accessToken}`,
38
31
  },
39
32
  }),
33
+ throwOnError: false,
40
34
  retry: false,
41
35
  },
42
36
  queryClient,
@@ -56,29 +50,25 @@ export default function Notebooks({
56
50
  overflowY: "auto",
57
51
  }}
58
52
  >
59
- {isLoading && (
53
+ {!isSuccess && !isError && (
60
54
  <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
61
55
  Fetching Notebooks...
62
56
  </Typography>
63
57
  )}
64
- {isSuccess &&
65
- (data.data.length > 0 ? (
66
- <FileTreeView
67
- items={data.data.sort((a, b) => {
68
- return a.path.localeCompare(b.path);
69
- })}
70
- defaultExpandedItems={DEFAULT_EXPANDED_FOLDERS}
71
- navigate={navigate}
72
- />
73
- ) : (
74
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
75
- No notebooks found
76
- </Typography>
77
- ))}
78
58
  {isError && (
79
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
80
- {`${projectName} > ${packageName} > ${versionId} - ${error.message}`}
81
- </Typography>
59
+ <ApiErrorDisplay
60
+ error={error}
61
+ context={`${projectName} > ${packageName} > Notebooks`}
62
+ />
63
+ )}
64
+ {isSuccess && (
65
+ <FileTreeView
66
+ items={data.data.sort((a, b) => {
67
+ return a.path.localeCompare(b.path);
68
+ })}
69
+ defaultExpandedItems={DEFAULT_EXPANDED_FOLDERS}
70
+ navigate={navigate}
71
+ />
82
72
  )}
83
73
  </Box>
84
74
  </StyledCardContent>
@@ -5,28 +5,15 @@ import Connections from "./Connections";
5
5
  import Databases from "./Databases";
6
6
  import Models from "./Models";
7
7
  import Notebooks from "./Notebooks";
8
- import { PublisherPackageProvider } from "./PublisherPackageProvider";
9
8
  import Schedules from "./Schedules";
10
9
 
11
10
  const README_NOTEBOOK = "README.malloynb";
12
11
 
13
12
  interface PackageProps {
14
- server?: string;
15
- projectName: string;
16
- packageName: string;
17
- versionId?: string;
18
13
  navigate?: (to: string, event?: React.MouseEvent) => void;
19
- accessToken?: string;
20
14
  }
21
15
 
22
- export default function Package({
23
- server,
24
- projectName,
25
- packageName,
26
- versionId,
27
- navigate,
28
- accessToken,
29
- }: PackageProps) {
16
+ export default function Package({ navigate }: PackageProps) {
30
17
  if (!navigate) {
31
18
  navigate = (to: string) => {
32
19
  window.location.href = to;
@@ -34,82 +21,37 @@ export default function Package({
34
21
  }
35
22
 
36
23
  return (
37
- <PublisherPackageProvider
38
- server={server}
39
- accessToken={accessToken}
40
- projectName={projectName}
41
- packageName={packageName}
42
- versionId={versionId}
24
+ <Grid
25
+ container
26
+ spacing={2}
27
+ columns={12}
28
+ sx={{ mb: (theme) => theme.spacing(2) }}
43
29
  >
44
- <Grid
45
- container
46
- spacing={2}
47
- columns={12}
48
- sx={{ mb: (theme) => theme.spacing(2) }}
49
- >
50
- <Grid size={{ xs: 12, md: 4 }}>
51
- <Config
52
- server={server}
53
- projectName={projectName}
54
- packageName={packageName}
55
- versionId={versionId}
56
- accessToken={accessToken}
57
- />
58
- </Grid>
59
- <Grid size={{ xs: 12, md: 4 }}>
60
- <Notebooks
61
- server={server}
62
- projectName={projectName}
63
- packageName={packageName}
64
- versionId={versionId}
65
- navigate={navigate}
66
- accessToken={accessToken}
67
- />
68
- </Grid>
69
- <Grid size={{ xs: 12, md: 4 }}>
70
- <Models
71
- server={server}
72
- projectName={projectName}
73
- packageName={packageName}
74
- versionId={versionId}
75
- navigate={navigate}
76
- accessToken={accessToken}
77
- />
78
- </Grid>
79
- <Grid size={{ xs: 12, md: 6 }}>
80
- <Databases
81
- server={server}
82
- projectName={projectName}
83
- packageName={packageName}
84
- versionId={versionId}
85
- accessToken={accessToken}
86
- />
87
- </Grid>
88
- <Grid size={{ xs: 12, md: 6 }}>
89
- <Connections
90
- navigate={navigate}
91
- server={server}
92
- projectName={projectName}
93
- accessToken={accessToken}
94
- />
95
- </Grid>
96
- <Grid size={{ xs: 12, md: 12 }}>
97
- <Schedules
98
- server={server}
99
- projectName={projectName}
100
- packageName={packageName}
101
- versionId={versionId}
102
- accessToken={accessToken}
103
- />
104
- </Grid>
105
- <Grid size={{ xs: 12, md: 12 }}>
106
- <Notebook
107
- notebookPath={README_NOTEBOOK}
108
- expandCodeCells={false}
109
- hideEmbeddingIcons={true}
110
- />
111
- </Grid>
30
+ <Grid size={{ xs: 12, md: 4 }}>
31
+ <Config />
112
32
  </Grid>
113
- </PublisherPackageProvider>
33
+ <Grid size={{ xs: 12, md: 4 }}>
34
+ <Notebooks navigate={navigate} />
35
+ </Grid>
36
+ <Grid size={{ xs: 12, md: 4 }}>
37
+ <Models navigate={navigate} />
38
+ </Grid>
39
+ <Grid size={{ xs: 12, md: 6 }}>
40
+ <Databases />
41
+ </Grid>
42
+ <Grid size={{ xs: 12, md: 6 }}>
43
+ <Connections navigate={navigate} />
44
+ </Grid>
45
+ <Grid size={{ xs: 12, md: 12 }}>
46
+ <Schedules />
47
+ </Grid>
48
+ <Grid size={{ xs: 12, md: 12 }}>
49
+ <Notebook
50
+ notebookPath={README_NOTEBOOK}
51
+ expandCodeCells={false}
52
+ hideEmbeddingIcons={true}
53
+ />
54
+ </Grid>
55
+ </Grid>
114
56
  );
115
57
  }
@@ -0,0 +1,46 @@
1
+ import React, { createContext, useContext, ReactNode } from "react";
2
+
3
+ export interface PackageContextProps {
4
+ server?: string;
5
+ projectName: string;
6
+ packageName: string;
7
+ versionId?: string;
8
+ accessToken?: string;
9
+ }
10
+
11
+ const PackageContext = createContext<PackageContextProps | undefined>(
12
+ undefined,
13
+ );
14
+
15
+ interface PackageProviderProps extends PackageContextProps {
16
+ children: ReactNode;
17
+ }
18
+
19
+ // Provider for the Package context.
20
+ // This context is used to pass the package information to the components
21
+ // that need it.
22
+ // The package information is passed to the components via the usePackage hook.
23
+ export const PackageProvider = ({
24
+ server,
25
+ projectName,
26
+ packageName,
27
+ versionId,
28
+ accessToken,
29
+ children,
30
+ }: PackageProviderProps) => {
31
+ return (
32
+ <PackageContext.Provider
33
+ value={{ server, projectName, packageName, versionId, accessToken }}
34
+ >
35
+ {children}
36
+ </PackageContext.Provider>
37
+ );
38
+ };
39
+
40
+ export function usePackage() {
41
+ const context = useContext(PackageContext);
42
+ if (!context) {
43
+ throw new Error("usePackage must be used within a PackageProvider");
44
+ }
45
+ return context;
46
+ }
@@ -11,29 +11,18 @@ import {
11
11
  Typography,
12
12
  } from "@mui/material";
13
13
  import { QueryClient, useQuery } from "@tanstack/react-query";
14
- import axios from "axios";
15
14
  import { Configuration, SchedulesApi } from "../../client";
16
15
  import { StyledCard, StyledCardContent } from "../styles";
16
+ import { usePackage } from "./PackageProvider";
17
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
17
18
 
18
- axios.defaults.baseURL = "http://localhost:4000";
19
19
  const schedulesApi = new SchedulesApi(new Configuration());
20
20
  const queryClient = new QueryClient();
21
21
 
22
- interface PackageProps {
23
- server?: string;
24
- projectName: string;
25
- packageName: string;
26
- versionId?: string;
27
- accessToken: string;
28
- }
22
+ export default function Schedules() {
23
+ const { server, projectName, packageName, versionId, accessToken } =
24
+ usePackage();
29
25
 
30
- export default function Package({
31
- server,
32
- projectName,
33
- packageName,
34
- versionId,
35
- accessToken,
36
- }: PackageProps) {
37
26
  const { data, isError, isLoading, error } = useQuery(
38
27
  {
39
28
  queryKey: ["schedules", server, projectName, packageName, versionId],
@@ -46,6 +35,7 @@ export default function Package({
46
35
  },
47
36
  }),
48
37
  retry: false,
38
+ throwOnError: false,
49
39
  },
50
40
  queryClient,
51
41
  );
@@ -60,9 +50,10 @@ export default function Package({
60
50
 
61
51
  if (isError) {
62
52
  return (
63
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
64
- {`${packageName} > ${versionId} - ${error.message}`}
65
- </Typography>
53
+ <ApiErrorDisplay
54
+ error={error}
55
+ context={`${projectName} > ${packageName} > Schedules`}
56
+ />
66
57
  );
67
58
  }
68
59
 
@@ -1,2 +1,7 @@
1
1
  export { default as Package } from "./Package";
2
- export * from "./PublisherPackageProvider";
2
+ export * from "./PackageProvider";
3
+ // Backward compatibility
4
+ export {
5
+ PackageProvider as PublisherPackageProvider,
6
+ usePackage as usePublisherPackage,
7
+ } from "./PackageProvider";
@@ -1,25 +1,17 @@
1
1
  import { Divider, Typography } from "@mui/material";
2
2
  import { Configuration, ProjectsApi } from "../../client";
3
- import axios from "axios";
4
3
  import Markdown from "markdown-to-jsx";
5
4
  import { StyledCard, StyledCardContent, StyledCardMedia } from "../styles";
6
5
  import { QueryClient, useQuery } from "@tanstack/react-query";
6
+ import { useProject } from "./Project";
7
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
7
8
 
8
- axios.defaults.baseURL = "http://localhost:4000";
9
9
  const projectsApi = new ProjectsApi(new Configuration());
10
10
  const queryClient = new QueryClient();
11
11
 
12
- interface AboutProps {
13
- server?: string;
14
- projectName: string;
15
- accessToken?: string;
16
- }
12
+ export default function About() {
13
+ const { server, projectName, accessToken } = useProject();
17
14
 
18
- export default function About({
19
- server,
20
- projectName,
21
- accessToken,
22
- }: AboutProps) {
23
15
  const { data, isSuccess, isError, error } = useQuery(
24
16
  {
25
17
  queryKey: ["about", server, projectName],
@@ -31,6 +23,8 @@ export default function About({
31
23
  Authorization: accessToken && `Bearer ${accessToken}`,
32
24
  },
33
25
  }),
26
+ retry: false,
27
+ throwOnError: false,
34
28
  },
35
29
  queryClient,
36
30
  );
@@ -56,9 +50,7 @@ export default function About({
56
50
  </StyledCard>
57
51
  )}
58
52
  {isError && (
59
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
60
- {error.message}
61
- </Typography>
53
+ <ApiErrorDisplay error={error} context={`${projectName} > About`} />
62
54
  )}
63
55
  </>
64
56
  );