@openneuro/app 4.20.4 → 4.20.6-alpha.2

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 (358) hide show
  1. package/__mocks__/fileMock.js +1 -1
  2. package/package.json +5 -5
  3. package/pluralize-esm.js +204 -211
  4. package/src/@types/custom.d.ts +3 -3
  5. package/src/@types/react.d.ts +3 -4
  6. package/src/client.jsx +17 -16
  7. package/src/scripts/__mocks__/config.ts +6 -6
  8. package/src/scripts/__utils__/mock-app-shell.tsx +9 -8
  9. package/src/scripts/apm.js +6 -6
  10. package/src/scripts/app.tsx +7 -7
  11. package/src/scripts/authentication/__tests__/profile.spec.js +10 -10
  12. package/src/scripts/authentication/admin-user.jsx +2 -2
  13. package/src/scripts/authentication/logged-in.jsx +2 -2
  14. package/src/scripts/authentication/logged-out.jsx +2 -2
  15. package/src/scripts/authentication/loginCheck.js +2 -2
  16. package/src/scripts/authentication/loginUrls.ts +1 -1
  17. package/src/scripts/authentication/profile.ts +7 -7
  18. package/src/scripts/authentication/regular-user.tsx +3 -3
  19. package/src/scripts/authentication/signOut.ts +2 -2
  20. package/src/scripts/authentication/withProfile.jsx +6 -6
  21. package/src/scripts/common/block-navigation.jsx +3 -4
  22. package/src/scripts/common/containers/__tests__/header.spec.tsx +16 -16
  23. package/src/scripts/common/containers/footer.tsx +3 -3
  24. package/src/scripts/common/containers/header.tsx +30 -30
  25. package/src/scripts/common/forms/__tests__/warn-button.spec.jsx +6 -6
  26. package/src/scripts/common/forms/warn-button.jsx +21 -17
  27. package/src/scripts/common/partials/block-navigation.jsx +3 -4
  28. package/src/scripts/common/partials/freshdesk-widget.jsx +17 -20
  29. package/src/scripts/common/partials/toast-content.jsx +2 -2
  30. package/src/scripts/components/__tests__/data-table.spec.tsx +7 -7
  31. package/src/scripts/components/data-table.tsx +23 -22
  32. package/src/scripts/config.ts +2 -2
  33. package/src/scripts/datalad/dataset/comments-fragments.js +1 -1
  34. package/src/scripts/datalad/dataset/dataset-context.js +1 -1
  35. package/src/scripts/datalad/dataset/dataset-query-context.js +1 -1
  36. package/src/scripts/datalad/dataset/dataset-query-fragments.js +1 -1
  37. package/src/scripts/datalad/mutations/cache-clear.jsx +7 -6
  38. package/src/scripts/datalad/mutations/cache-id.js +2 -2
  39. package/src/scripts/datalad/mutations/delete-comment.jsx +13 -11
  40. package/src/scripts/datalad/mutations/delete.jsx +10 -9
  41. package/src/scripts/datalad/mutations/follow.jsx +12 -11
  42. package/src/scripts/datalad/mutations/publish.jsx +13 -12
  43. package/src/scripts/datalad/mutations/remove-permissions.jsx +8 -8
  44. package/src/scripts/datalad/mutations/revalidate.jsx +7 -6
  45. package/src/scripts/datalad/mutations/snapshot.tsx +7 -7
  46. package/src/scripts/datalad/mutations/star.jsx +12 -11
  47. package/src/scripts/datalad/mutations/submit-metadata.jsx +14 -12
  48. package/src/scripts/datalad/mutations/update-permissions.jsx +14 -13
  49. package/src/scripts/datalad/mutations/update-ref.jsx +7 -6
  50. package/src/scripts/datalad/routes/dataset-redirect.tsx +49 -49
  51. package/src/scripts/datalad/subscriptions/__tests__/files-subscription.spec.jsx +32 -32
  52. package/src/scripts/datalad/subscriptions/files-subscription.jsx +16 -16
  53. package/src/scripts/datalad/subscriptions/useDatasetDeletedSubscription.jsx +4 -4
  54. package/src/scripts/datalad/subscriptions/useDraftSubscription.js +4 -4
  55. package/src/scripts/datalad/subscriptions/usePermissionsSubscription.js +4 -4
  56. package/src/scripts/datalad/subscriptions/useSnapshotsUpdatedSubscriptions.js +3 -3
  57. package/src/scripts/dataset/__tests__/__snapshots__/snapshot-container.spec.tsx.snap +2 -2
  58. package/src/scripts/dataset/__tests__/snapshot-container.spec.tsx +12 -12
  59. package/src/scripts/dataset/comments/__tests__/comment.spec.jsx +21 -21
  60. package/src/scripts/dataset/comments/__tests__/comments.spec.jsx +10 -10
  61. package/src/scripts/dataset/comments/block-style-controls.jsx +15 -15
  62. package/src/scripts/dataset/comments/comment-editor.jsx +31 -31
  63. package/src/scripts/dataset/comments/comment.jsx +50 -50
  64. package/src/scripts/dataset/comments/comments.jsx +24 -22
  65. package/src/scripts/dataset/comments/inline-style-controls.jsx +9 -9
  66. package/src/scripts/dataset/comments/style-button.jsx +8 -9
  67. package/src/scripts/dataset/common/follow-toggles.tsx +3 -3
  68. package/src/scripts/dataset/dataset-query-context.js +1 -1
  69. package/src/scripts/dataset/dataset-query.jsx +34 -31
  70. package/src/scripts/dataset/dataset-routes.jsx +5 -5
  71. package/src/scripts/dataset/download/__tests__/download-command-line.spec.jsx +13 -13
  72. package/src/scripts/dataset/download/__tests__/download-link.spec.jsx +10 -10
  73. package/src/scripts/dataset/download/__tests__/download-native.spec.js +7 -7
  74. package/src/scripts/dataset/download/__tests__/shell-example.spec.jsx +5 -5
  75. package/src/scripts/dataset/download/download-command-line.jsx +9 -7
  76. package/src/scripts/dataset/download/download-datalad.jsx +22 -20
  77. package/src/scripts/dataset/download/download-derivative-datalad.tsx +2 -2
  78. package/src/scripts/dataset/download/download-derivative-s3.tsx +2 -2
  79. package/src/scripts/dataset/download/download-link.jsx +6 -6
  80. package/src/scripts/dataset/download/download-native.js +20 -19
  81. package/src/scripts/dataset/download/download-query.js +2 -3
  82. package/src/scripts/dataset/download/download-s3.jsx +8 -8
  83. package/src/scripts/dataset/download/download-script.tsx +23 -20
  84. package/src/scripts/dataset/download/native-file-toast.jsx +13 -11
  85. package/src/scripts/dataset/download/shell-example.jsx +1 -1
  86. package/src/scripts/dataset/download/track-download.js +5 -5
  87. package/src/scripts/dataset/draft-container.tsx +104 -102
  88. package/src/scripts/dataset/draft-snapshot-routes.tsx +3 -3
  89. package/src/scripts/dataset/files/__tests__/file-tree-unloaded-directory.spec.jsx +23 -23
  90. package/src/scripts/dataset/files/__tests__/file-tree.spec.jsx +57 -58
  91. package/src/scripts/dataset/files/__tests__/file-viewer-type.spec.jsx +6 -6
  92. package/src/scripts/dataset/files/__tests__/file.spec.jsx +15 -15
  93. package/src/scripts/dataset/files/file-display.jsx +11 -11
  94. package/src/scripts/dataset/files/file-tree-unloaded-directory.jsx +10 -10
  95. package/src/scripts/dataset/files/file-tree.tsx +27 -27
  96. package/src/scripts/dataset/files/file-view.jsx +4 -4
  97. package/src/scripts/dataset/files/file-viewer-type.jsx +21 -21
  98. package/src/scripts/dataset/files/file.tsx +85 -80
  99. package/src/scripts/dataset/files/files.tsx +41 -40
  100. package/src/scripts/dataset/files/index.tsx +2 -2
  101. package/src/scripts/dataset/files/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -24
  102. package/src/scripts/dataset/files/viewers/__tests__/file-viewer-json.spec.jsx +9 -9
  103. package/src/scripts/dataset/files/viewers/__tests__/parse-tabular.spec.js +8 -8
  104. package/src/scripts/dataset/files/viewers/file-viewer-csv.jsx +5 -5
  105. package/src/scripts/dataset/files/viewers/file-viewer-html.jsx +3 -3
  106. package/src/scripts/dataset/files/viewers/file-viewer-json.jsx +4 -4
  107. package/src/scripts/dataset/files/viewers/file-viewer-nifti.tsx +4 -4
  108. package/src/scripts/dataset/files/viewers/file-viewer-table.tsx +3 -3
  109. package/src/scripts/dataset/files/viewers/file-viewer-text.jsx +3 -3
  110. package/src/scripts/dataset/files/viewers/file-viewer-tsv.jsx +5 -5
  111. package/src/scripts/dataset/files/viewers/parse-tabular.js +4 -4
  112. package/src/scripts/dataset/fragments/__tests__/cancel-button.spec.tsx +5 -5
  113. package/src/scripts/dataset/fragments/__tests__/dataset-alert-draft.spec.tsx +9 -9
  114. package/src/scripts/dataset/fragments/__tests__/dataset-citation.spec.jsx +10 -10
  115. package/src/scripts/dataset/fragments/__tests__/doi-link.spec.tsx +29 -29
  116. package/src/scripts/dataset/fragments/__tests__/edit-button.spec.tsx +5 -5
  117. package/src/scripts/dataset/fragments/__tests__/edit-list.spec.jsx +13 -13
  118. package/src/scripts/dataset/fragments/__tests__/save-button.spec.tsx +5 -5
  119. package/src/scripts/dataset/fragments/__tests__/select-input.spec.tsx +26 -26
  120. package/src/scripts/dataset/fragments/cancel-button.tsx +2 -2
  121. package/src/scripts/dataset/fragments/comments-fragments.js +1 -1
  122. package/src/scripts/dataset/fragments/copyable-tooltip.jsx +14 -13
  123. package/src/scripts/dataset/fragments/dataset-alert-draft.tsx +17 -13
  124. package/src/scripts/dataset/fragments/dataset-alert-version.tsx +5 -4
  125. package/src/scripts/dataset/fragments/dataset-citation.jsx +23 -21
  126. package/src/scripts/dataset/fragments/dataset-history.jsx +12 -12
  127. package/src/scripts/dataset/fragments/dataset-reviewers.ts +1 -1
  128. package/src/scripts/dataset/fragments/doi-link.tsx +6 -6
  129. package/src/scripts/dataset/fragments/edit-button.tsx +2 -2
  130. package/src/scripts/dataset/fragments/edit-description-field.jsx +23 -21
  131. package/src/scripts/dataset/fragments/edit-description-list.jsx +8 -8
  132. package/src/scripts/dataset/fragments/edit-list.jsx +8 -8
  133. package/src/scripts/dataset/fragments/number-input.tsx +36 -35
  134. package/src/scripts/dataset/fragments/save-button.tsx +2 -2
  135. package/src/scripts/dataset/fragments/select-input.tsx +87 -86
  136. package/src/scripts/dataset/fragments/text-array-input.tsx +38 -37
  137. package/src/scripts/dataset/fragments/text-input.tsx +79 -78
  138. package/src/scripts/dataset/mutations/__tests__/cache-id.spec.js +5 -5
  139. package/src/scripts/dataset/mutations/__tests__/delete-file.spec.jsx +85 -83
  140. package/src/scripts/dataset/mutations/__tests__/delete.spec.jsx +8 -8
  141. package/src/scripts/dataset/mutations/__tests__/deprecate-snapshot.spec.tsx +17 -17
  142. package/src/scripts/dataset/mutations/__tests__/deprecate-version.spec.tsx +19 -19
  143. package/src/scripts/dataset/mutations/__tests__/description.spec.jsx +51 -51
  144. package/src/scripts/dataset/mutations/__tests__/remove-permissions.spec.tsx +9 -9
  145. package/src/scripts/dataset/mutations/__tests__/update-permissions.spec.jsx +7 -7
  146. package/src/scripts/dataset/mutations/admin-exports.jsx +13 -12
  147. package/src/scripts/dataset/mutations/cache-clear.jsx +6 -6
  148. package/src/scripts/dataset/mutations/cache-id.js +2 -2
  149. package/src/scripts/dataset/mutations/comment.jsx +25 -23
  150. package/src/scripts/dataset/mutations/create-anonymous-reviewer.tsx +36 -30
  151. package/src/scripts/dataset/mutations/dataset-relations.tsx +28 -29
  152. package/src/scripts/dataset/mutations/delete-anonymous-reviewer.tsx +7 -8
  153. package/src/scripts/dataset/mutations/delete-comment.jsx +14 -12
  154. package/src/scripts/dataset/mutations/delete-dataset-form.jsx +20 -22
  155. package/src/scripts/dataset/mutations/delete-file.jsx +8 -8
  156. package/src/scripts/dataset/mutations/delete.jsx +10 -9
  157. package/src/scripts/dataset/mutations/deprecate-version.tsx +5 -6
  158. package/src/scripts/dataset/mutations/description.jsx +21 -20
  159. package/src/scripts/dataset/mutations/flag-annex-object.jsx +10 -9
  160. package/src/scripts/dataset/mutations/follow.tsx +15 -14
  161. package/src/scripts/dataset/mutations/import-dataset.tsx +5 -5
  162. package/src/scripts/dataset/mutations/metadata-form.jsx +94 -97
  163. package/src/scripts/dataset/mutations/publish.jsx +13 -13
  164. package/src/scripts/dataset/mutations/readme.jsx +12 -11
  165. package/src/scripts/dataset/mutations/remove-annex-object.jsx +10 -9
  166. package/src/scripts/dataset/mutations/remove-permissions.tsx +5 -6
  167. package/src/scripts/dataset/mutations/revalidate.jsx +7 -7
  168. package/src/scripts/dataset/mutations/snapshot.tsx +8 -8
  169. package/src/scripts/dataset/mutations/star.tsx +14 -13
  170. package/src/scripts/dataset/mutations/submit-metadata.jsx +12 -11
  171. package/src/scripts/dataset/mutations/undo-deprecate-version.tsx +5 -6
  172. package/src/scripts/dataset/mutations/update-file.jsx +6 -6
  173. package/src/scripts/dataset/mutations/update-permissions.tsx +9 -9
  174. package/src/scripts/dataset/mutations/update-ref.jsx +7 -7
  175. package/src/scripts/dataset/routes/__tests__/deprecate-snapshot-page.spec.tsx +5 -5
  176. package/src/scripts/dataset/routes/add-metadata.jsx +19 -20
  177. package/src/scripts/dataset/routes/admin-datalad.jsx +7 -7
  178. package/src/scripts/dataset/routes/dataset-default.tsx +12 -10
  179. package/src/scripts/dataset/routes/delete-page.tsx +12 -12
  180. package/src/scripts/dataset/routes/deprecate-snapshot-page.tsx +8 -8
  181. package/src/scripts/dataset/routes/derivatives.tsx +10 -10
  182. package/src/scripts/dataset/routes/download-dataset.tsx +20 -20
  183. package/src/scripts/dataset/routes/manage-anonymous-reviewers.tsx +37 -35
  184. package/src/scripts/dataset/routes/manage-permissions.jsx +22 -22
  185. package/src/scripts/dataset/routes/publish.jsx +32 -30
  186. package/src/scripts/dataset/routes/snapshot-default.tsx +7 -7
  187. package/src/scripts/dataset/routes/snapshot.tsx +44 -43
  188. package/src/scripts/dataset/routes/styles/dataset-page-border.tsx +3 -3
  189. package/src/scripts/dataset/routes/styles/dataset-page-tab-container.tsx +3 -3
  190. package/src/scripts/dataset/routes/styles/header-row.tsx +3 -3
  191. package/src/scripts/dataset/routes/tab-routes-draft.tsx +12 -12
  192. package/src/scripts/dataset/routes/tab-routes-snapshot.tsx +8 -8
  193. package/src/scripts/dataset/snapshot-container.tsx +78 -86
  194. package/src/scripts/errors/403page.tsx +11 -11
  195. package/src/scripts/errors/404page.tsx +12 -12
  196. package/src/scripts/errors/errorBoundary.jsx +13 -12
  197. package/src/scripts/errors/errorRoute.jsx +6 -6
  198. package/src/scripts/errors/freshdesk-widget.jsx +17 -20
  199. package/src/scripts/errors/freshdeskInterface.jsx +9 -9
  200. package/src/scripts/errors/orcid/email.jsx +3 -3
  201. package/src/scripts/errors/orcid/family.jsx +4 -4
  202. package/src/scripts/errors/orcid/general.jsx +1 -1
  203. package/src/scripts/errors/orcid/given.jsx +4 -4
  204. package/src/scripts/fixtures/dataset-query.ts +119 -119
  205. package/src/scripts/fixtures/mock-app-wrapper.tsx +4 -4
  206. package/src/scripts/index.tsx +9 -9
  207. package/src/scripts/pages/admin/admin.jsx +5 -5
  208. package/src/scripts/pages/admin/flagged-files.jsx +33 -31
  209. package/src/scripts/pages/admin/user-fragment.ts +1 -1
  210. package/src/scripts/pages/admin/user-tools.tsx +13 -11
  211. package/src/scripts/pages/admin/users.jsx +38 -39
  212. package/src/scripts/pages/api.jsx +20 -19
  213. package/src/scripts/pages/citation-page.tsx +4 -4
  214. package/src/scripts/pages/faq/faq.tsx +2 -2
  215. package/src/scripts/pages/front-page/aggregate-queries/aggregate-counts-container.tsx +6 -5
  216. package/src/scripts/pages/front-page/aggregate-queries/use-participant-count.ts +2 -2
  217. package/src/scripts/pages/front-page/aggregate-queries/use-publicDatasets-count.ts +2 -2
  218. package/src/scripts/pages/front-page/front-page-content.ts +42 -42
  219. package/src/scripts/pages/front-page/front-page.tsx +18 -14
  220. package/src/scripts/pages/front-page-comp.tsx +3 -3
  221. package/src/scripts/pages/import-dataset.tsx +10 -10
  222. package/src/scripts/pages/metadata/dataset-metadata.tsx +15 -14
  223. package/src/scripts/pages/pet-redirect.tsx +2 -2
  224. package/src/scripts/queries/dataset.ts +3 -3
  225. package/src/scripts/resources/__tests__/kibana.spec.js +9 -9
  226. package/src/scripts/resources/kibana.js +3 -3
  227. package/src/scripts/resources/strings.js +2 -2
  228. package/src/scripts/routes.tsx +14 -14
  229. package/src/scripts/search/__helpers__/search-render.tsx +3 -3
  230. package/src/scripts/search/__tests__/search-container.spec.tsx +22 -22
  231. package/src/scripts/search/__tests__/search-params-ctx.spec.tsx +20 -20
  232. package/src/scripts/search/es-query-builders.ts +21 -5
  233. package/src/scripts/search/filters-block-container.tsx +14 -16
  234. package/src/scripts/search/initial-search-params.tsx +45 -45
  235. package/src/scripts/search/inputs/__tests__/sort-by-select.spec.tsx +23 -23
  236. package/src/scripts/search/inputs/admin-allDatasets-toggle.tsx +12 -12
  237. package/src/scripts/search/inputs/age-range-input.tsx +9 -8
  238. package/src/scripts/search/inputs/author-input.tsx +14 -11
  239. package/src/scripts/search/inputs/date-radios.tsx +8 -7
  240. package/src/scripts/search/inputs/diagnosis-select.tsx +6 -6
  241. package/src/scripts/search/inputs/index.ts +33 -33
  242. package/src/scripts/search/inputs/keyword-input.tsx +13 -13
  243. package/src/scripts/search/inputs/modality-select.tsx +33 -30
  244. package/src/scripts/search/inputs/pet/bodyParts_input.tsx +18 -16
  245. package/src/scripts/search/inputs/pet/scannerManufacturersModelNames_input.tsx +18 -16
  246. package/src/scripts/search/inputs/pet/scannerManufacturers_input.tsx +18 -16
  247. package/src/scripts/search/inputs/pet/tracerNames_input.tsx +16 -15
  248. package/src/scripts/search/inputs/pet/tracerRadionuclides_input.tsx +18 -16
  249. package/src/scripts/search/inputs/section-select.tsx +6 -6
  250. package/src/scripts/search/inputs/sex-radios.tsx +6 -6
  251. package/src/scripts/search/inputs/show-datasets-radios.tsx +31 -29
  252. package/src/scripts/search/inputs/sort-by-select.tsx +10 -11
  253. package/src/scripts/search/inputs/species-select.tsx +6 -6
  254. package/src/scripts/search/inputs/study-domain-input.tsx +18 -16
  255. package/src/scripts/search/inputs/subject-count-range-input.tsx +8 -7
  256. package/src/scripts/search/inputs/task-input.tsx +18 -16
  257. package/src/scripts/search/search-container.tsx +83 -85
  258. package/src/scripts/search/search-params-ctx.tsx +40 -38
  259. package/src/scripts/search/search-routes.tsx +4 -4
  260. package/src/scripts/search/use-search-results.tsx +125 -99
  261. package/src/scripts/styles/media.tsx +3 -3
  262. package/src/scripts/styles/support-modal.jsx +2 -2
  263. package/src/scripts/sw.ts +12 -11
  264. package/src/scripts/test-utils.js +4 -4
  265. package/src/scripts/uploader/add-path-to-files.js +7 -7
  266. package/src/scripts/uploader/file-select.tsx +3 -3
  267. package/src/scripts/uploader/file-upload.js +13 -12
  268. package/src/scripts/uploader/input.jsx +8 -7
  269. package/src/scripts/uploader/upload-button.jsx +3 -3
  270. package/src/scripts/uploader/upload-disclaimer-input.tsx +66 -66
  271. package/src/scripts/uploader/upload-disclaimer.jsx +6 -5
  272. package/src/scripts/uploader/upload-file-status.jsx +4 -4
  273. package/src/scripts/uploader/upload-issues.jsx +32 -29
  274. package/src/scripts/uploader/upload-metadata.jsx +18 -17
  275. package/src/scripts/uploader/upload-mutation.js +17 -20
  276. package/src/scripts/uploader/upload-progress-button.jsx +5 -4
  277. package/src/scripts/uploader/upload-progress.jsx +3 -3
  278. package/src/scripts/uploader/upload-rename.jsx +6 -5
  279. package/src/scripts/uploader/upload-resume.jsx +26 -24
  280. package/src/scripts/uploader/upload-select.jsx +10 -9
  281. package/src/scripts/uploader/upload-status.jsx +5 -5
  282. package/src/scripts/uploader/upload-step.jsx +9 -9
  283. package/src/scripts/uploader/uploader-context.js +1 -1
  284. package/src/scripts/uploader/uploader-location.js +1 -1
  285. package/src/scripts/uploader/uploader-modal.jsx +8 -7
  286. package/src/scripts/uploader/uploader-setup-routes.jsx +10 -10
  287. package/src/scripts/uploader/uploader-status-routes.jsx +6 -6
  288. package/src/scripts/uploader/uploader-view.jsx +4 -4
  289. package/src/scripts/uploader/uploader.jsx +50 -48
  290. package/src/scripts/users/username.tsx +3 -3
  291. package/src/scripts/utils/__tests__/csv.spec.ts +16 -16
  292. package/src/scripts/utils/__tests__/date.spec.js +4 -4
  293. package/src/scripts/utils/__tests__/json-ld.spec.js +12 -12
  294. package/src/scripts/utils/__tests__/newid.spec.js +9 -9
  295. package/src/scripts/utils/__tests__/userNotify.spec.js +10 -10
  296. package/src/scripts/utils/analytics.tsx +3 -3
  297. package/src/scripts/utils/cookies.js +1 -1
  298. package/src/scripts/utils/csv.ts +13 -15
  299. package/src/scripts/utils/datalad.js +1 -1
  300. package/src/scripts/utils/dataset-url.js +2 -2
  301. package/src/scripts/utils/date.js +2 -2
  302. package/src/scripts/utils/global-polyfill.ts +2 -2
  303. package/src/scripts/utils/gtag.js +6 -6
  304. package/src/scripts/utils/json-ld.js +13 -13
  305. package/src/scripts/utils/newid.js +1 -1
  306. package/src/scripts/utils/user-login-modal-ctx.tsx +4 -4
  307. package/src/scripts/utils/userNotify.js +2 -2
  308. package/src/scripts/validation/validation-panel.jsx +3 -3
  309. package/src/scripts/validation/validation-results.issues.issue.jsx +9 -9
  310. package/src/scripts/validation/validation-results.issues.jsx +19 -17
  311. package/src/scripts/validation/validation-results.jsx +10 -10
  312. package/src/scripts/validation/validation-status.jsx +19 -17
  313. package/src/scripts/validation/validation.jsx +5 -5
  314. package/src/scripts/workers/schema.ts +2 -2
  315. package/src/scripts/workers/schema.worker.ts +4 -4
  316. package/src/scripts/workers/validate.ts +2 -2
  317. package/src/scripts/workers/validate.worker.ts +7 -5
  318. package/vite.config.js +17 -17
  319. package/src/dist/assets/activity-icon.9ab0c828.png +0 -0
  320. package/src/dist/assets/bids.da8810b3.jpg +0 -0
  321. package/src/dist/assets/brand_mark.28e7645d.png +0 -0
  322. package/src/dist/assets/close-button.21e700a6.png +0 -0
  323. package/src/dist/assets/cube-get.39ed5636.png +0 -0
  324. package/src/dist/assets/cube-share.9b558c29.png +0 -0
  325. package/src/dist/assets/cube-use.ccf2ddc5.png +0 -0
  326. package/src/dist/assets/datalad.a35b15b8.jpg +0 -0
  327. package/src/dist/assets/eeg.1dc1dc54.jpg +0 -0
  328. package/src/dist/assets/email-header.1cb8bf76.png +0 -0
  329. package/src/dist/assets/ieeg.f91deb0a.jpg +0 -0
  330. package/src/dist/assets/index.3db805fb.js +0 -23127
  331. package/src/dist/assets/index.3db805fb.js.map +0 -1
  332. package/src/dist/assets/index.5eb79d2c.css +0 -1
  333. package/src/dist/assets/ljaf.567e9566.png +0 -0
  334. package/src/dist/assets/logo_app.8c986cf9.png +0 -0
  335. package/src/dist/assets/logo_cube.5224b745.png +0 -0
  336. package/src/dist/assets/logo_data.3e1d5743.png +0 -0
  337. package/src/dist/assets/logo_users.a84a265a.png +0 -0
  338. package/src/dist/assets/meg.1e1928f8.jpg +0 -0
  339. package/src/dist/assets/mri.b01e4f42.jpg +0 -0
  340. package/src/dist/assets/nih-bi-logo.80d76e1d.png +0 -0
  341. package/src/dist/assets/nih-stanford.2a7c496e.jpg +0 -0
  342. package/src/dist/assets/nih.78a64d38.png +0 -0
  343. package/src/dist/assets/nimh.0ec775d8.png +0 -0
  344. package/src/dist/assets/nru-logo.f3097dc5.png +0 -0
  345. package/src/dist/assets/nsf.eee1d3f7.png +0 -0
  346. package/src/dist/assets/nsf.f87e96e7.png +0 -0
  347. package/src/dist/assets/on-dark-horz.e1f213d0.svg +0 -1
  348. package/src/dist/assets/on-dark.12f4e2ce.svg +0 -1
  349. package/src/dist/assets/on-light-horz.23ff22c3.svg +0 -1
  350. package/src/dist/assets/on-light.50592f7f.svg +0 -1
  351. package/src/dist/assets/pet-scan.21d98a3d.jpg +0 -0
  352. package/src/dist/assets/revicons.4ca02b8a.ttf +0 -0
  353. package/src/dist/assets/revicons.9e4d4c68.eot +0 -0
  354. package/src/dist/assets/revicons.f7b9c306.woff +0 -0
  355. package/src/dist/assets/sqm-logo.9cd0cca5.png +0 -0
  356. package/src/dist/assets/squishymedia.fa3c5919.png +0 -0
  357. package/src/dist/assets/stanford.5f245936.png +0 -0
  358. package/src/dist/index.html +0 -25
@@ -1,8 +1,8 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { useCookies } from 'react-cookie'
4
- import { getProfile } from '../../authentication/profile'
5
- import { config } from '../../config'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { useCookies } from "react-cookie"
4
+ import { getProfile } from "../../authentication/profile"
5
+ import { config } from "../../config"
6
6
 
7
7
  const buildCustomQuery = (customText, prepopulatedFields) => {
8
8
  const customizerQueries = [
@@ -11,7 +11,7 @@ const buildCustomQuery = (customText, prepopulatedFields) => {
11
11
  .filter(([, value]) => value)
12
12
  .map(([key, value]) => `helpdesk_ticket[${key}]=${value}`),
13
13
  ]
14
- return customizerQueries.length ? `&${customizerQueries.join(';')}` : ''
14
+ return customizerQueries.length ? `&${customizerQueries.join(";")}` : ""
15
15
  }
16
16
 
17
17
  function FreshdeskWidget({ subject, error, sentryId, description }) {
@@ -19,17 +19,17 @@ function FreshdeskWidget({ subject, error, sentryId, description }) {
19
19
  const profile = getProfile(cookies)
20
20
  const sentry = sentryId && `Sentry ID: ${sentryId}`
21
21
  const joinedDescription = [sentry, description, error]
22
- .filter(item => item)
23
- .join(' \u2014 ')
22
+ .filter((item) => item)
23
+ .join(" \u2014 ")
24
24
 
25
25
  const customText = {
26
- widgetType: 'embedded',
27
- formTitle: 'Report+an+Issue',
28
- submitTitle: 'Request+Support',
26
+ widgetType: "embedded",
27
+ formTitle: "Report+an+Issue",
28
+ submitTitle: "Request+Support",
29
29
  submitThanks:
30
- 'Thank+you+for+taking+the+time+to+report+your+case.+A+support+representative+will+be+reviewing+your+request+and+will+send+you+a+personal+response+within+24+to+48+hours.',
31
- screenshot: 'No',
32
- captcha: 'yes',
30
+ "Thank+you+for+taking+the+time+to+report+your+case.+A+support+representative+will+be+reviewing+your+request+and+will+send+you+a+personal+response+within+24+to+48+hours.",
31
+ screenshot: "No",
32
+ captcha: "yes",
33
33
  }
34
34
  const prepopulatedFields = {
35
35
  requester: profile && profile.email,
@@ -43,17 +43,14 @@ function FreshdeskWidget({ subject, error, sentryId, description }) {
43
43
  src="https://s3.amazonaws.com/assets.freshdesk.com/widget/freshwidget.js"
44
44
  />
45
45
  <style type="text/css" media="screen, projection">
46
- {
47
- '@import url(https://s3.amazonaws.com/assets.freshdesk.com/widget/freshwidget.css); '
48
- }
46
+ {"@import url(https://s3.amazonaws.com/assets.freshdesk.com/widget/freshwidget.css); "}
49
47
  </style>
50
48
  <iframe
51
49
  title="Feedback Form"
52
50
  className="freshwidget-embedded-form"
53
51
  id="freshwidget-embedded-form"
54
- src={
55
- config.support.url + buildCustomQuery(customText, prepopulatedFields)
56
- }
52
+ src={config.support.url +
53
+ buildCustomQuery(customText, prepopulatedFields)}
57
54
  scrolling="no"
58
55
  height="500px"
59
56
  width="100%"
@@ -1,5 +1,5 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
3
 
4
4
  const ToastContent = ({ title, body, children }) => (
5
5
  <span>
@@ -1,14 +1,14 @@
1
- import React from 'react'
2
- import { render } from '@testing-library/react'
3
- import { DataTable } from '../data-table'
1
+ import React from "react"
2
+ import { render } from "@testing-library/react"
3
+ import { DataTable } from "../data-table"
4
4
 
5
5
  const tableData = [
6
- { col1: 'text', col2: 50, col3: 'string value' },
7
- { col1: 'more', col2: 75, col3: 'more strings' },
6
+ { col1: "text", col2: 50, col3: "string value" },
7
+ { col1: "more", col2: 75, col3: "more strings" },
8
8
  ]
9
9
 
10
- describe('DataTable component', () => {
11
- it('renders a basic table', () => {
10
+ describe("DataTable component", () => {
11
+ it("renders a basic table", () => {
12
12
  const { asFragment } = render(<DataTable data={tableData}></DataTable>)
13
13
  expect(asFragment()).toMatchSnapshot()
14
14
  })
@@ -1,14 +1,14 @@
1
- import React from 'react'
1
+ import React from "react"
2
2
  import {
3
+ createColumnHelper,
3
4
  flexRender,
4
5
  getCoreRowModel,
5
6
  getSortedRowModel,
6
- useReactTable,
7
- createColumnHelper,
8
7
  SortingState,
9
- } from '@tanstack/react-table'
10
- import styled from '@emotion/styled'
11
- import { format, parseISO, isValid } from 'date-fns'
8
+ useReactTable,
9
+ } from "@tanstack/react-table"
10
+ import styled from "@emotion/styled"
11
+ import { format, isValid, parseISO } from "date-fns"
12
12
 
13
13
  interface DataTableProps {
14
14
  data: any[]
@@ -35,12 +35,12 @@ const TD = styled.td`
35
35
 
36
36
  function CellFormat(props): any {
37
37
  const value = props.getValue()
38
- if (typeof value === 'string' && isValid(parseISO(value))) {
39
- return format(parseISO(value), 'yyyy-MM-dd')
40
- } else if (typeof value === 'string' && /^ds[0-9]{6}$/.exec(value)) {
38
+ if (typeof value === "string" && isValid(parseISO(value))) {
39
+ return format(parseISO(value), "yyyy-MM-dd")
40
+ } else if (typeof value === "string" && /^ds[0-9]{6}$/.exec(value)) {
41
41
  return <a href={`/datasets/${value}`}>{value}</a>
42
42
  } else if (Array.isArray(value)) {
43
- return value.join(',')
43
+ return value.join(",")
44
44
  } else {
45
45
  return value
46
46
  }
@@ -58,12 +58,12 @@ export function DataTable<T>({
58
58
  const columns = React.useMemo(
59
59
  () =>
60
60
  Object.keys(data[0])
61
- .filter(name => !hideColumns.includes(name))
62
- .map(name =>
61
+ .filter((name) => !hideColumns.includes(name))
62
+ .map((name) =>
63
63
  columnHelper.accessor(name as any, {
64
64
  header: name,
65
65
  cell: CellFormat,
66
- }),
66
+ })
67
67
  ),
68
68
  [data, columnHelper, hideColumns],
69
69
  )
@@ -81,26 +81,27 @@ export function DataTable<T>({
81
81
  return (
82
82
  <table>
83
83
  <thead>
84
- {table.getHeaderGroups().map(headerGroup => (
84
+ {table.getHeaderGroups().map((headerGroup) => (
85
85
  <TR key={headerGroup.id}>
86
- {headerGroup.headers.map(header => (
86
+ {headerGroup.headers.map((header) => (
87
87
  <TH key={header.id} colSpan={header.colSpan}>
88
88
  {header.isPlaceholder ? null : (
89
89
  <div
90
90
  {...{
91
91
  className: header.column.getCanSort()
92
- ? 'cursor-pointer select-none'
93
- : '',
92
+ ? "cursor-pointer select-none"
93
+ : "",
94
94
  onClick: header.column.getToggleSortingHandler(),
95
- }}>
95
+ }}
96
+ >
96
97
  {flexRender(
97
98
  header.column.columnDef.header,
98
99
  header.getContext(),
99
100
  )}
100
101
  &nbsp;
101
102
  {{
102
- asc: '',
103
- desc: '',
103
+ asc: "",
104
+ desc: "",
104
105
  }[header.column.getIsSorted() as string] ?? null}
105
106
  </div>
106
107
  )}
@@ -110,9 +111,9 @@ export function DataTable<T>({
110
111
  ))}
111
112
  </thead>
112
113
  <tbody>
113
- {table.getRowModel().rows.map(row => (
114
+ {table.getRowModel().rows.map((row) => (
114
115
  <TR key={row.id}>
115
- {row.getVisibleCells().map(cell => (
116
+ {row.getVisibleCells().map((cell) => (
116
117
  <TD key={cell.id}>
117
118
  {flexRender(cell.column.columnDef.cell, cell.getContext())}
118
119
  </TD>
@@ -50,8 +50,8 @@ export const config: OpenNeuroConfig = {
50
50
  },
51
51
  },
52
52
  analytics: {
53
- trackingIds: globalThis.OpenNeuroConfig.GOOGLE_TRACKING_IDS.split(',').map(
54
- id => {
53
+ trackingIds: globalThis.OpenNeuroConfig.GOOGLE_TRACKING_IDS.split(",").map(
54
+ (id) => {
55
55
  return id.trim() as string
56
56
  },
57
57
  ),
@@ -1,4 +1,4 @@
1
- import { gql } from '@apollo/client'
1
+ import { gql } from "@apollo/client"
2
2
 
3
3
  export const DATASET_COMMENTS = gql`
4
4
  fragment DatasetComments on Dataset {
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React from "react"
2
2
 
3
3
  const DatasetContext = React.createContext(undefined)
4
4
 
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React from "react"
2
2
 
3
3
  // Default comment depth is set here
4
4
  const DatasetQueryContext = React.createContext({
@@ -1,4 +1,4 @@
1
- import { gql } from '@apollo/client'
1
+ import { gql } from "@apollo/client"
2
2
 
3
3
  export const DRAFT_FRAGMENT = gql`
4
4
  fragment DatasetDraft on Dataset {
@@ -1,7 +1,7 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
5
 
6
6
  const CACHE_CLEAR = gql`
7
7
  mutation cacheClear($datasetId: ID!) {
@@ -11,7 +11,7 @@ const CACHE_CLEAR = gql`
11
11
 
12
12
  const CacheClear = ({ datasetId }) => (
13
13
  <Mutation mutation={CACHE_CLEAR}>
14
- {cacheClear => (
14
+ {(cacheClear) => (
15
15
  <span>
16
16
  <button
17
17
  className="btn-admin-blue"
@@ -21,7 +21,8 @@ const CacheClear = ({ datasetId }) => (
21
21
  datasetId,
22
22
  },
23
23
  })
24
- }}>
24
+ }}
25
+ >
25
26
  <i className="fa fa-eraser" /> Delete Dataset Cache
26
27
  </button>
27
28
  </span>
@@ -1,3 +1,3 @@
1
- export const datasetCacheId = datasetId => `Dataset:${datasetId}`
1
+ export const datasetCacheId = (datasetId) => `Dataset:${datasetId}`
2
2
 
3
- export const draftCacheId = draftId => `Draft:${draftId}`
3
+ export const draftCacheId = (draftId) => `Draft:${draftId}`
@@ -1,9 +1,9 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
5
- import { DATASET_COMMENTS } from '../dataset/comments-fragments.js'
6
- import { datasetCacheId } from './cache-id.js'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
+ import { DATASET_COMMENTS } from "../dataset/comments-fragments.js"
6
+ import { datasetCacheId } from "./cache-id.js"
7
7
 
8
8
  const deleteComment = gql`
9
9
  mutation deleteComment($commentId: ID!, $deleteChildren: Boolean) {
@@ -21,7 +21,7 @@ const deleteComment = gql`
21
21
  export const deleteCommentsReducer = (comments, { deletedCommentIds }) => {
22
22
  // Must copy with freezeResults enabled
23
23
  const nextCommentsState = [...comments].filter(
24
- c => !deletedCommentIds.includes(c.id),
24
+ (c) => !deletedCommentIds.includes(c.id),
25
25
  )
26
26
  return nextCommentsState
27
27
  }
@@ -43,13 +43,14 @@ const DeleteComment = ({ datasetId, commentId }) => {
43
43
  id: datasetCacheId(datasetId),
44
44
  fragment: DATASET_COMMENTS,
45
45
  data: {
46
- __typename: 'Dataset',
46
+ __typename: "Dataset",
47
47
  id: datasetId,
48
48
  comments: nextCommentsState,
49
49
  },
50
50
  })
51
- }}>
52
- {deleteComment => (
51
+ }}
52
+ >
53
+ {(deleteComment) => (
53
54
  <a
54
55
  className="delete"
55
56
  onClick={async () => {
@@ -59,7 +60,8 @@ const DeleteComment = ({ datasetId, commentId }) => {
59
60
  deleteChildren: true,
60
61
  },
61
62
  })
62
- }}>
63
+ }}
64
+ >
63
65
  <i className="fa fa-trash" />
64
66
  Delete
65
67
  </a>
@@ -1,7 +1,7 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
5
 
6
6
  export const DELETE_DATASET = gql`
7
7
  mutation deleteDataset($id: ID!, $reason: String, $redirect: String) {
@@ -11,18 +11,18 @@ export const DELETE_DATASET = gql`
11
11
 
12
12
  const DeleteDataset = ({ datasetId, metadata }) => {
13
13
  const [warn, setWarn] = React.useState(false)
14
- const handleClick = deleteDataset => () => {
14
+ const handleClick = (deleteDataset) => () => {
15
15
  if (!warn) setWarn(true)
16
16
  else deleteDataset()
17
17
  }
18
18
 
19
19
  return (
20
20
  <Mutation mutation={DELETE_DATASET}>
21
- {deleteDataset => (
21
+ {(deleteDataset) => (
22
22
  <span>
23
23
  <button
24
24
  className="btn-admin-blue"
25
- style={{ color: warn ? 'red' : null }}
25
+ style={{ color: warn ? "red" : null }}
26
26
  onClick={handleClick(async () => {
27
27
  await deleteDataset({
28
28
  variables: {
@@ -34,9 +34,10 @@ const DeleteDataset = ({ datasetId, metadata }) => {
34
34
  window.location.replace(
35
35
  `${window.location.origin}/dashboard/datasets`,
36
36
  )
37
- })}>
37
+ })}
38
+ >
38
39
  <i className="fa fa-trash" />
39
- {warn ? ' Confirm Delete' : ' Delete Dataset'}
40
+ {warn ? " Confirm Delete" : " Delete Dataset"}
40
41
  </button>
41
42
  </span>
42
43
  )}
@@ -1,9 +1,9 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
5
- import WarnButton from '../../common/forms/warn-button.jsx'
6
- import { datasetCacheId } from './cache-id.js'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
+ import WarnButton from "../../common/forms/warn-button.jsx"
6
+ import { datasetCacheId } from "./cache-id.js"
7
7
 
8
8
  const FOLLOW_DATASET = gql`
9
9
  mutation followDataset($datasetId: ID!) {
@@ -26,18 +26,19 @@ const FollowDataset = ({ datasetId, following }) => (
26
26
  id: datasetCacheId(datasetId),
27
27
  fragment: USER_FOLLOWING,
28
28
  data: {
29
- __typename: 'Dataset',
29
+ __typename: "Dataset",
30
30
  id: datasetId,
31
31
  following: followDataset,
32
32
  },
33
33
  })
34
- }}>
35
- {followDataset => (
34
+ }}
35
+ >
36
+ {(followDataset) => (
36
37
  <WarnButton
37
38
  tooltip="Follow Dataset"
38
- icon={following ? 'fa-tag icon-minus' : 'fa-tag icon-plus'}
39
+ icon={following ? "fa-tag icon-minus" : "fa-tag icon-plus"}
39
40
  warn={false}
40
- action={cb => {
41
+ action={(cb) => {
41
42
  followDataset({ variables: { datasetId } }).then(() => cb())
42
43
  }}
43
44
  />
@@ -1,9 +1,9 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
5
- import { useNavigate } from 'react-router-dom'
6
- import { datasetCacheId } from './cache-id.js'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
+ import { useNavigate } from "react-router-dom"
6
+ import { datasetCacheId } from "./cache-id.js"
7
7
 
8
8
  const PUBLISH_DATASET = gql`
9
9
  mutation publishDataset($datasetId: ID!) {
@@ -23,25 +23,26 @@ const PublishDataset = ({ datasetId }) => {
23
23
  return (
24
24
  <Mutation
25
25
  mutation={PUBLISH_DATASET}
26
- update={cache => {
26
+ update={(cache) => {
27
27
  cache.writeFragment({
28
28
  id: datasetCacheId(datasetId),
29
29
  fragment: DATASET_PUBLISHED,
30
30
  data: {
31
- __typename: 'Dataset',
31
+ __typename: "Dataset",
32
32
  id: datasetId,
33
33
  public: true,
34
34
  },
35
35
  })
36
- }}>
37
- {publishDataset => (
36
+ }}
37
+ >
38
+ {(publishDataset) => (
38
39
  <button
39
40
  className="btn-modal-action"
40
41
  onClick={() =>
41
42
  publishDataset({ variables: { datasetId } }).then(() => {
42
43
  navigate(`/datasets/${datasetId}`)
43
- })
44
- }>
44
+ })}
45
+ >
45
46
  Publish
46
47
  </button>
47
48
  )}
@@ -1,8 +1,8 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
5
- import WarnButton from '../../common/forms/warn-button.jsx'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
+ import WarnButton from "../../common/forms/warn-button.jsx"
6
6
 
7
7
  const REMOVE_PERMISSION = gql`
8
8
  mutation removePermissions($datasetId: ID!, $userId: String!) {
@@ -16,16 +16,16 @@ const REMOVE_PERMISSION = gql`
16
16
  * @param {string} userId
17
17
  */
18
18
  export const userPermissionsFilter = (userPermissions, userId) =>
19
- userPermissions.filter(permission => permission.user.id !== userId)
19
+ userPermissions.filter((permission) => permission.user.id !== userId)
20
20
 
21
21
  const RemovePermissions = ({ datasetId, userId }) => (
22
22
  <Mutation mutation={REMOVE_PERMISSION}>
23
- {removePermissions => (
23
+ {(removePermissions) => (
24
24
  <WarnButton
25
25
  message="Remove Permission"
26
26
  icon="fa-trash"
27
27
  warn={true}
28
- action={async cb => {
28
+ action={async (cb) => {
29
29
  await removePermissions({ variables: { datasetId, userId } })
30
30
  cb()
31
31
  }}
@@ -1,7 +1,7 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
5
 
6
6
  const REVALIDATE = gql`
7
7
  mutation revalidate($datasetId: ID!, $ref: String!) {
@@ -11,7 +11,7 @@ const REVALIDATE = gql`
11
11
 
12
12
  const Revalidate = ({ datasetId, revision }) => (
13
13
  <Mutation mutation={REVALIDATE}>
14
- {revalidate => (
14
+ {(revalidate) => (
15
15
  <span>
16
16
  <button
17
17
  className="btn-admin-blue"
@@ -22,7 +22,8 @@ const Revalidate = ({ datasetId, revision }) => (
22
22
  ref: revision,
23
23
  },
24
24
  })
25
- }}>
25
+ }}
26
+ >
26
27
  <i className="fa fa-random" /> Revalidate Commit
27
28
  </button>
28
29
  </span>
@@ -1,8 +1,8 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql, useMutation } from '@apollo/client'
4
- import { useNavigate } from 'react-router-dom'
5
- import ErrorBoundary from '../../errors/errorBoundary.jsx'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql, useMutation } from "@apollo/client"
4
+ import { useNavigate } from "react-router-dom"
5
+ import ErrorBoundary from "../../errors/errorBoundary.jsx"
6
6
 
7
7
  const CREATE_SNAPSHOT = gql`
8
8
  mutation createSnapshot($datasetId: ID!, $tag: String!, $changes: [String!]) {
@@ -23,8 +23,8 @@ const CreateSnapshotMutation = ({ datasetId, tag, changes }) => {
23
23
  onClick={() =>
24
24
  snapshotDataset({ variables: { datasetId, tag, changes } }).then(() => {
25
25
  navigate(`/datasets/${datasetId}/versions/${tag}`)
26
- })
27
- }>
26
+ })}
27
+ >
28
28
  Create Snapshot
29
29
  </button>
30
30
  )
@@ -1,9 +1,9 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { gql } from '@apollo/client'
4
- import { Mutation } from '@apollo/client/react/components'
5
- import WarnButton from '../../common/forms/warn-button.jsx'
6
- import { datasetCacheId } from './cache-id.js'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { gql } from "@apollo/client"
4
+ import { Mutation } from "@apollo/client/react/components"
5
+ import WarnButton from "../../common/forms/warn-button.jsx"
6
+ import { datasetCacheId } from "./cache-id.js"
7
7
 
8
8
  const STAR_DATASET = gql`
9
9
  mutation starDataset($datasetId: ID!) {
@@ -26,18 +26,19 @@ const StarDataset = ({ datasetId, starred }) => (
26
26
  id: datasetCacheId(datasetId),
27
27
  fragment: USER_STARRED,
28
28
  data: {
29
- __typename: 'Dataset',
29
+ __typename: "Dataset",
30
30
  id: datasetId,
31
31
  starred: starDataset,
32
32
  },
33
33
  })
34
- }}>
35
- {starDataset => (
34
+ }}
35
+ >
36
+ {(starDataset) => (
36
37
  <WarnButton
37
38
  tooltip="Save Dataset"
38
- icon={starred ? 'fa-star icon-minus' : 'fa-star icon-plus'}
39
+ icon={starred ? "fa-star icon-minus" : "fa-star icon-plus"}
39
40
  warn={false}
40
- action={cb => {
41
+ action={(cb) => {
41
42
  starDataset({ variables: { datasetId } }).then(() => cb())
42
43
  }}
43
44
  />