@openneuro/app 4.20.5 → 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.
- package/__mocks__/fileMock.js +1 -1
- package/package.json +5 -5
- package/pluralize-esm.js +204 -211
- package/src/@types/custom.d.ts +3 -3
- package/src/@types/react.d.ts +3 -4
- package/src/client.jsx +17 -16
- package/src/scripts/__mocks__/config.ts +6 -6
- package/src/scripts/__utils__/mock-app-shell.tsx +9 -8
- package/src/scripts/apm.js +6 -6
- package/src/scripts/app.tsx +7 -7
- package/src/scripts/authentication/__tests__/profile.spec.js +10 -10
- package/src/scripts/authentication/admin-user.jsx +2 -2
- package/src/scripts/authentication/logged-in.jsx +2 -2
- package/src/scripts/authentication/logged-out.jsx +2 -2
- package/src/scripts/authentication/loginCheck.js +2 -2
- package/src/scripts/authentication/loginUrls.ts +1 -1
- package/src/scripts/authentication/profile.ts +7 -7
- package/src/scripts/authentication/regular-user.tsx +3 -3
- package/src/scripts/authentication/signOut.ts +2 -2
- package/src/scripts/authentication/withProfile.jsx +6 -6
- package/src/scripts/common/block-navigation.jsx +3 -4
- package/src/scripts/common/containers/__tests__/header.spec.tsx +16 -16
- package/src/scripts/common/containers/footer.tsx +3 -3
- package/src/scripts/common/containers/header.tsx +30 -30
- package/src/scripts/common/forms/__tests__/warn-button.spec.jsx +6 -6
- package/src/scripts/common/forms/warn-button.jsx +21 -17
- package/src/scripts/common/partials/block-navigation.jsx +3 -4
- package/src/scripts/common/partials/freshdesk-widget.jsx +17 -20
- package/src/scripts/common/partials/toast-content.jsx +2 -2
- package/src/scripts/components/__tests__/data-table.spec.tsx +7 -7
- package/src/scripts/components/data-table.tsx +23 -22
- package/src/scripts/config.ts +2 -2
- package/src/scripts/datalad/dataset/comments-fragments.js +1 -1
- package/src/scripts/datalad/dataset/dataset-context.js +1 -1
- package/src/scripts/datalad/dataset/dataset-query-context.js +1 -1
- package/src/scripts/datalad/dataset/dataset-query-fragments.js +1 -1
- package/src/scripts/datalad/mutations/cache-clear.jsx +7 -6
- package/src/scripts/datalad/mutations/cache-id.js +2 -2
- package/src/scripts/datalad/mutations/delete-comment.jsx +13 -11
- package/src/scripts/datalad/mutations/delete.jsx +10 -9
- package/src/scripts/datalad/mutations/follow.jsx +12 -11
- package/src/scripts/datalad/mutations/publish.jsx +13 -12
- package/src/scripts/datalad/mutations/remove-permissions.jsx +8 -8
- package/src/scripts/datalad/mutations/revalidate.jsx +7 -6
- package/src/scripts/datalad/mutations/snapshot.tsx +7 -7
- package/src/scripts/datalad/mutations/star.jsx +12 -11
- package/src/scripts/datalad/mutations/submit-metadata.jsx +14 -12
- package/src/scripts/datalad/mutations/update-permissions.jsx +14 -13
- package/src/scripts/datalad/mutations/update-ref.jsx +7 -6
- package/src/scripts/datalad/routes/dataset-redirect.tsx +49 -49
- package/src/scripts/datalad/subscriptions/__tests__/files-subscription.spec.jsx +32 -32
- package/src/scripts/datalad/subscriptions/files-subscription.jsx +16 -16
- package/src/scripts/datalad/subscriptions/useDatasetDeletedSubscription.jsx +4 -4
- package/src/scripts/datalad/subscriptions/useDraftSubscription.js +4 -4
- package/src/scripts/datalad/subscriptions/usePermissionsSubscription.js +4 -4
- package/src/scripts/datalad/subscriptions/useSnapshotsUpdatedSubscriptions.js +3 -3
- package/src/scripts/dataset/__tests__/__snapshots__/snapshot-container.spec.tsx.snap +2 -2
- package/src/scripts/dataset/__tests__/snapshot-container.spec.tsx +12 -12
- package/src/scripts/dataset/comments/__tests__/comment.spec.jsx +21 -21
- package/src/scripts/dataset/comments/__tests__/comments.spec.jsx +10 -10
- package/src/scripts/dataset/comments/block-style-controls.jsx +15 -15
- package/src/scripts/dataset/comments/comment-editor.jsx +31 -31
- package/src/scripts/dataset/comments/comment.jsx +50 -50
- package/src/scripts/dataset/comments/comments.jsx +24 -22
- package/src/scripts/dataset/comments/inline-style-controls.jsx +9 -9
- package/src/scripts/dataset/comments/style-button.jsx +8 -9
- package/src/scripts/dataset/common/follow-toggles.tsx +3 -3
- package/src/scripts/dataset/dataset-query-context.js +1 -1
- package/src/scripts/dataset/dataset-query.jsx +34 -31
- package/src/scripts/dataset/dataset-routes.jsx +5 -5
- package/src/scripts/dataset/download/__tests__/download-command-line.spec.jsx +13 -13
- package/src/scripts/dataset/download/__tests__/download-link.spec.jsx +10 -10
- package/src/scripts/dataset/download/__tests__/download-native.spec.js +7 -7
- package/src/scripts/dataset/download/__tests__/shell-example.spec.jsx +5 -5
- package/src/scripts/dataset/download/download-command-line.jsx +9 -7
- package/src/scripts/dataset/download/download-datalad.jsx +22 -20
- package/src/scripts/dataset/download/download-derivative-datalad.tsx +2 -2
- package/src/scripts/dataset/download/download-derivative-s3.tsx +2 -2
- package/src/scripts/dataset/download/download-link.jsx +6 -6
- package/src/scripts/dataset/download/download-native.js +20 -19
- package/src/scripts/dataset/download/download-query.js +2 -3
- package/src/scripts/dataset/download/download-s3.jsx +8 -8
- package/src/scripts/dataset/download/download-script.tsx +23 -20
- package/src/scripts/dataset/download/native-file-toast.jsx +13 -11
- package/src/scripts/dataset/download/shell-example.jsx +1 -1
- package/src/scripts/dataset/download/track-download.js +5 -5
- package/src/scripts/dataset/draft-container.tsx +104 -102
- package/src/scripts/dataset/draft-snapshot-routes.tsx +3 -3
- package/src/scripts/dataset/files/__tests__/file-tree-unloaded-directory.spec.jsx +23 -23
- package/src/scripts/dataset/files/__tests__/file-tree.spec.jsx +57 -58
- package/src/scripts/dataset/files/__tests__/file-viewer-type.spec.jsx +6 -6
- package/src/scripts/dataset/files/__tests__/file.spec.jsx +15 -15
- package/src/scripts/dataset/files/file-display.jsx +11 -11
- package/src/scripts/dataset/files/file-tree-unloaded-directory.jsx +10 -10
- package/src/scripts/dataset/files/file-tree.tsx +27 -27
- package/src/scripts/dataset/files/file-view.jsx +4 -4
- package/src/scripts/dataset/files/file-viewer-type.jsx +21 -21
- package/src/scripts/dataset/files/file.tsx +85 -80
- package/src/scripts/dataset/files/files.tsx +41 -40
- package/src/scripts/dataset/files/index.tsx +2 -2
- package/src/scripts/dataset/files/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -24
- package/src/scripts/dataset/files/viewers/__tests__/file-viewer-json.spec.jsx +9 -9
- package/src/scripts/dataset/files/viewers/__tests__/parse-tabular.spec.js +8 -8
- package/src/scripts/dataset/files/viewers/file-viewer-csv.jsx +5 -5
- package/src/scripts/dataset/files/viewers/file-viewer-html.jsx +3 -3
- package/src/scripts/dataset/files/viewers/file-viewer-json.jsx +4 -4
- package/src/scripts/dataset/files/viewers/file-viewer-nifti.tsx +4 -4
- package/src/scripts/dataset/files/viewers/file-viewer-table.tsx +3 -3
- package/src/scripts/dataset/files/viewers/file-viewer-text.jsx +3 -3
- package/src/scripts/dataset/files/viewers/file-viewer-tsv.jsx +5 -5
- package/src/scripts/dataset/files/viewers/parse-tabular.js +4 -4
- package/src/scripts/dataset/fragments/__tests__/cancel-button.spec.tsx +5 -5
- package/src/scripts/dataset/fragments/__tests__/dataset-alert-draft.spec.tsx +9 -9
- package/src/scripts/dataset/fragments/__tests__/dataset-citation.spec.jsx +10 -10
- package/src/scripts/dataset/fragments/__tests__/doi-link.spec.tsx +29 -29
- package/src/scripts/dataset/fragments/__tests__/edit-button.spec.tsx +5 -5
- package/src/scripts/dataset/fragments/__tests__/edit-list.spec.jsx +13 -13
- package/src/scripts/dataset/fragments/__tests__/save-button.spec.tsx +5 -5
- package/src/scripts/dataset/fragments/__tests__/select-input.spec.tsx +26 -26
- package/src/scripts/dataset/fragments/cancel-button.tsx +2 -2
- package/src/scripts/dataset/fragments/comments-fragments.js +1 -1
- package/src/scripts/dataset/fragments/copyable-tooltip.jsx +14 -13
- package/src/scripts/dataset/fragments/dataset-alert-draft.tsx +17 -13
- package/src/scripts/dataset/fragments/dataset-alert-version.tsx +5 -4
- package/src/scripts/dataset/fragments/dataset-citation.jsx +23 -21
- package/src/scripts/dataset/fragments/dataset-history.jsx +12 -12
- package/src/scripts/dataset/fragments/dataset-reviewers.ts +1 -1
- package/src/scripts/dataset/fragments/doi-link.tsx +6 -6
- package/src/scripts/dataset/fragments/edit-button.tsx +2 -2
- package/src/scripts/dataset/fragments/edit-description-field.jsx +23 -21
- package/src/scripts/dataset/fragments/edit-description-list.jsx +8 -8
- package/src/scripts/dataset/fragments/edit-list.jsx +8 -8
- package/src/scripts/dataset/fragments/number-input.tsx +36 -35
- package/src/scripts/dataset/fragments/save-button.tsx +2 -2
- package/src/scripts/dataset/fragments/select-input.tsx +87 -86
- package/src/scripts/dataset/fragments/text-array-input.tsx +38 -37
- package/src/scripts/dataset/fragments/text-input.tsx +79 -78
- package/src/scripts/dataset/mutations/__tests__/cache-id.spec.js +5 -5
- package/src/scripts/dataset/mutations/__tests__/delete-file.spec.jsx +85 -83
- package/src/scripts/dataset/mutations/__tests__/delete.spec.jsx +8 -8
- package/src/scripts/dataset/mutations/__tests__/deprecate-snapshot.spec.tsx +17 -17
- package/src/scripts/dataset/mutations/__tests__/deprecate-version.spec.tsx +19 -19
- package/src/scripts/dataset/mutations/__tests__/description.spec.jsx +51 -51
- package/src/scripts/dataset/mutations/__tests__/remove-permissions.spec.tsx +9 -9
- package/src/scripts/dataset/mutations/__tests__/update-permissions.spec.jsx +7 -7
- package/src/scripts/dataset/mutations/admin-exports.jsx +13 -12
- package/src/scripts/dataset/mutations/cache-clear.jsx +6 -6
- package/src/scripts/dataset/mutations/cache-id.js +2 -2
- package/src/scripts/dataset/mutations/comment.jsx +25 -23
- package/src/scripts/dataset/mutations/create-anonymous-reviewer.tsx +36 -30
- package/src/scripts/dataset/mutations/dataset-relations.tsx +28 -29
- package/src/scripts/dataset/mutations/delete-anonymous-reviewer.tsx +7 -8
- package/src/scripts/dataset/mutations/delete-comment.jsx +14 -12
- package/src/scripts/dataset/mutations/delete-dataset-form.jsx +20 -22
- package/src/scripts/dataset/mutations/delete-file.jsx +8 -8
- package/src/scripts/dataset/mutations/delete.jsx +10 -9
- package/src/scripts/dataset/mutations/deprecate-version.tsx +5 -6
- package/src/scripts/dataset/mutations/description.jsx +21 -20
- package/src/scripts/dataset/mutations/flag-annex-object.jsx +10 -9
- package/src/scripts/dataset/mutations/follow.tsx +15 -14
- package/src/scripts/dataset/mutations/import-dataset.tsx +5 -5
- package/src/scripts/dataset/mutations/metadata-form.jsx +94 -97
- package/src/scripts/dataset/mutations/publish.jsx +13 -13
- package/src/scripts/dataset/mutations/readme.jsx +12 -11
- package/src/scripts/dataset/mutations/remove-annex-object.jsx +10 -9
- package/src/scripts/dataset/mutations/remove-permissions.tsx +5 -6
- package/src/scripts/dataset/mutations/revalidate.jsx +7 -7
- package/src/scripts/dataset/mutations/snapshot.tsx +8 -8
- package/src/scripts/dataset/mutations/star.tsx +14 -13
- package/src/scripts/dataset/mutations/submit-metadata.jsx +12 -11
- package/src/scripts/dataset/mutations/undo-deprecate-version.tsx +5 -6
- package/src/scripts/dataset/mutations/update-file.jsx +6 -6
- package/src/scripts/dataset/mutations/update-permissions.tsx +9 -9
- package/src/scripts/dataset/mutations/update-ref.jsx +7 -7
- package/src/scripts/dataset/routes/__tests__/deprecate-snapshot-page.spec.tsx +5 -5
- package/src/scripts/dataset/routes/add-metadata.jsx +19 -20
- package/src/scripts/dataset/routes/admin-datalad.jsx +7 -7
- package/src/scripts/dataset/routes/dataset-default.tsx +12 -10
- package/src/scripts/dataset/routes/delete-page.tsx +12 -12
- package/src/scripts/dataset/routes/deprecate-snapshot-page.tsx +8 -8
- package/src/scripts/dataset/routes/derivatives.tsx +10 -10
- package/src/scripts/dataset/routes/download-dataset.tsx +20 -20
- package/src/scripts/dataset/routes/manage-anonymous-reviewers.tsx +37 -35
- package/src/scripts/dataset/routes/manage-permissions.jsx +22 -22
- package/src/scripts/dataset/routes/publish.jsx +32 -30
- package/src/scripts/dataset/routes/snapshot-default.tsx +7 -7
- package/src/scripts/dataset/routes/snapshot.tsx +44 -43
- package/src/scripts/dataset/routes/styles/dataset-page-border.tsx +3 -3
- package/src/scripts/dataset/routes/styles/dataset-page-tab-container.tsx +3 -3
- package/src/scripts/dataset/routes/styles/header-row.tsx +3 -3
- package/src/scripts/dataset/routes/tab-routes-draft.tsx +12 -12
- package/src/scripts/dataset/routes/tab-routes-snapshot.tsx +8 -8
- package/src/scripts/dataset/snapshot-container.tsx +78 -86
- package/src/scripts/errors/403page.tsx +11 -11
- package/src/scripts/errors/404page.tsx +12 -12
- package/src/scripts/errors/errorBoundary.jsx +13 -12
- package/src/scripts/errors/errorRoute.jsx +6 -6
- package/src/scripts/errors/freshdesk-widget.jsx +17 -20
- package/src/scripts/errors/freshdeskInterface.jsx +9 -9
- package/src/scripts/errors/orcid/email.jsx +3 -3
- package/src/scripts/errors/orcid/family.jsx +4 -4
- package/src/scripts/errors/orcid/general.jsx +1 -1
- package/src/scripts/errors/orcid/given.jsx +4 -4
- package/src/scripts/fixtures/dataset-query.ts +119 -119
- package/src/scripts/fixtures/mock-app-wrapper.tsx +4 -4
- package/src/scripts/index.tsx +9 -9
- package/src/scripts/pages/admin/admin.jsx +5 -5
- package/src/scripts/pages/admin/flagged-files.jsx +33 -31
- package/src/scripts/pages/admin/user-fragment.ts +1 -1
- package/src/scripts/pages/admin/user-tools.tsx +13 -11
- package/src/scripts/pages/admin/users.jsx +38 -39
- package/src/scripts/pages/api.jsx +20 -19
- package/src/scripts/pages/citation-page.tsx +4 -4
- package/src/scripts/pages/faq/faq.tsx +2 -2
- package/src/scripts/pages/front-page/aggregate-queries/aggregate-counts-container.tsx +6 -5
- package/src/scripts/pages/front-page/aggregate-queries/use-participant-count.ts +2 -2
- package/src/scripts/pages/front-page/aggregate-queries/use-publicDatasets-count.ts +2 -2
- package/src/scripts/pages/front-page/front-page-content.ts +42 -42
- package/src/scripts/pages/front-page/front-page.tsx +18 -14
- package/src/scripts/pages/front-page-comp.tsx +3 -3
- package/src/scripts/pages/import-dataset.tsx +10 -10
- package/src/scripts/pages/metadata/dataset-metadata.tsx +15 -14
- package/src/scripts/pages/pet-redirect.tsx +2 -2
- package/src/scripts/queries/dataset.ts +3 -3
- package/src/scripts/resources/__tests__/kibana.spec.js +9 -9
- package/src/scripts/resources/kibana.js +3 -3
- package/src/scripts/resources/strings.js +2 -2
- package/src/scripts/routes.tsx +14 -14
- package/src/scripts/search/__helpers__/search-render.tsx +3 -3
- package/src/scripts/search/__tests__/search-container.spec.tsx +22 -22
- package/src/scripts/search/__tests__/search-params-ctx.spec.tsx +20 -20
- package/src/scripts/search/es-query-builders.ts +21 -5
- package/src/scripts/search/filters-block-container.tsx +14 -16
- package/src/scripts/search/initial-search-params.tsx +45 -45
- package/src/scripts/search/inputs/__tests__/sort-by-select.spec.tsx +23 -23
- package/src/scripts/search/inputs/admin-allDatasets-toggle.tsx +12 -12
- package/src/scripts/search/inputs/age-range-input.tsx +9 -8
- package/src/scripts/search/inputs/author-input.tsx +14 -11
- package/src/scripts/search/inputs/date-radios.tsx +8 -7
- package/src/scripts/search/inputs/diagnosis-select.tsx +6 -6
- package/src/scripts/search/inputs/index.ts +33 -33
- package/src/scripts/search/inputs/keyword-input.tsx +13 -13
- package/src/scripts/search/inputs/modality-select.tsx +33 -30
- package/src/scripts/search/inputs/pet/bodyParts_input.tsx +18 -16
- package/src/scripts/search/inputs/pet/scannerManufacturersModelNames_input.tsx +18 -16
- package/src/scripts/search/inputs/pet/scannerManufacturers_input.tsx +18 -16
- package/src/scripts/search/inputs/pet/tracerNames_input.tsx +16 -15
- package/src/scripts/search/inputs/pet/tracerRadionuclides_input.tsx +18 -16
- package/src/scripts/search/inputs/section-select.tsx +6 -6
- package/src/scripts/search/inputs/sex-radios.tsx +6 -6
- package/src/scripts/search/inputs/show-datasets-radios.tsx +31 -29
- package/src/scripts/search/inputs/sort-by-select.tsx +10 -11
- package/src/scripts/search/inputs/species-select.tsx +6 -6
- package/src/scripts/search/inputs/study-domain-input.tsx +18 -16
- package/src/scripts/search/inputs/subject-count-range-input.tsx +8 -7
- package/src/scripts/search/inputs/task-input.tsx +18 -16
- package/src/scripts/search/search-container.tsx +83 -85
- package/src/scripts/search/search-params-ctx.tsx +40 -38
- package/src/scripts/search/search-routes.tsx +4 -4
- package/src/scripts/search/use-search-results.tsx +125 -99
- package/src/scripts/styles/media.tsx +3 -3
- package/src/scripts/styles/support-modal.jsx +2 -2
- package/src/scripts/sw.ts +12 -11
- package/src/scripts/test-utils.js +4 -4
- package/src/scripts/uploader/add-path-to-files.js +7 -7
- package/src/scripts/uploader/file-select.tsx +3 -3
- package/src/scripts/uploader/file-upload.js +13 -12
- package/src/scripts/uploader/input.jsx +8 -7
- package/src/scripts/uploader/upload-button.jsx +3 -3
- package/src/scripts/uploader/upload-disclaimer-input.tsx +66 -66
- package/src/scripts/uploader/upload-disclaimer.jsx +6 -5
- package/src/scripts/uploader/upload-file-status.jsx +4 -4
- package/src/scripts/uploader/upload-issues.jsx +32 -29
- package/src/scripts/uploader/upload-metadata.jsx +18 -17
- package/src/scripts/uploader/upload-mutation.js +17 -20
- package/src/scripts/uploader/upload-progress-button.jsx +5 -4
- package/src/scripts/uploader/upload-progress.jsx +3 -3
- package/src/scripts/uploader/upload-rename.jsx +6 -5
- package/src/scripts/uploader/upload-resume.jsx +26 -24
- package/src/scripts/uploader/upload-select.jsx +10 -9
- package/src/scripts/uploader/upload-status.jsx +5 -5
- package/src/scripts/uploader/upload-step.jsx +9 -9
- package/src/scripts/uploader/uploader-context.js +1 -1
- package/src/scripts/uploader/uploader-location.js +1 -1
- package/src/scripts/uploader/uploader-modal.jsx +8 -7
- package/src/scripts/uploader/uploader-setup-routes.jsx +10 -10
- package/src/scripts/uploader/uploader-status-routes.jsx +6 -6
- package/src/scripts/uploader/uploader-view.jsx +4 -4
- package/src/scripts/uploader/uploader.jsx +50 -48
- package/src/scripts/users/username.tsx +3 -3
- package/src/scripts/utils/__tests__/csv.spec.ts +16 -16
- package/src/scripts/utils/__tests__/date.spec.js +4 -4
- package/src/scripts/utils/__tests__/json-ld.spec.js +12 -12
- package/src/scripts/utils/__tests__/newid.spec.js +9 -9
- package/src/scripts/utils/__tests__/userNotify.spec.js +10 -10
- package/src/scripts/utils/analytics.tsx +3 -3
- package/src/scripts/utils/cookies.js +1 -1
- package/src/scripts/utils/csv.ts +13 -15
- package/src/scripts/utils/datalad.js +1 -1
- package/src/scripts/utils/dataset-url.js +2 -2
- package/src/scripts/utils/date.js +2 -2
- package/src/scripts/utils/global-polyfill.ts +2 -2
- package/src/scripts/utils/gtag.js +6 -6
- package/src/scripts/utils/json-ld.js +13 -13
- package/src/scripts/utils/newid.js +1 -1
- package/src/scripts/utils/user-login-modal-ctx.tsx +4 -4
- package/src/scripts/utils/userNotify.js +2 -2
- package/src/scripts/validation/validation-panel.jsx +3 -3
- package/src/scripts/validation/validation-results.issues.issue.jsx +9 -9
- package/src/scripts/validation/validation-results.issues.jsx +19 -17
- package/src/scripts/validation/validation-results.jsx +10 -10
- package/src/scripts/validation/validation-status.jsx +19 -17
- package/src/scripts/validation/validation.jsx +5 -5
- package/src/scripts/workers/schema.ts +2 -2
- package/src/scripts/workers/schema.worker.ts +4 -4
- package/src/scripts/workers/validate.ts +2 -2
- package/src/scripts/workers/validate.worker.ts +7 -5
- package/vite.config.js +17 -17
- package/src/dist/assets/activity-icon.9ab0c828.png +0 -0
- package/src/dist/assets/bids.da8810b3.jpg +0 -0
- package/src/dist/assets/brand_mark.28e7645d.png +0 -0
- package/src/dist/assets/close-button.21e700a6.png +0 -0
- package/src/dist/assets/cube-get.39ed5636.png +0 -0
- package/src/dist/assets/cube-share.9b558c29.png +0 -0
- package/src/dist/assets/cube-use.ccf2ddc5.png +0 -0
- package/src/dist/assets/datalad.a35b15b8.jpg +0 -0
- package/src/dist/assets/eeg.1dc1dc54.jpg +0 -0
- package/src/dist/assets/email-header.1cb8bf76.png +0 -0
- package/src/dist/assets/ieeg.f91deb0a.jpg +0 -0
- package/src/dist/assets/index.3db805fb.js +0 -23127
- package/src/dist/assets/index.3db805fb.js.map +0 -1
- package/src/dist/assets/index.5eb79d2c.css +0 -1
- package/src/dist/assets/ljaf.567e9566.png +0 -0
- package/src/dist/assets/logo_app.8c986cf9.png +0 -0
- package/src/dist/assets/logo_cube.5224b745.png +0 -0
- package/src/dist/assets/logo_data.3e1d5743.png +0 -0
- package/src/dist/assets/logo_users.a84a265a.png +0 -0
- package/src/dist/assets/meg.1e1928f8.jpg +0 -0
- package/src/dist/assets/mri.b01e4f42.jpg +0 -0
- package/src/dist/assets/nih-bi-logo.80d76e1d.png +0 -0
- package/src/dist/assets/nih-stanford.2a7c496e.jpg +0 -0
- package/src/dist/assets/nih.78a64d38.png +0 -0
- package/src/dist/assets/nimh.0ec775d8.png +0 -0
- package/src/dist/assets/nru-logo.f3097dc5.png +0 -0
- package/src/dist/assets/nsf.eee1d3f7.png +0 -0
- package/src/dist/assets/nsf.f87e96e7.png +0 -0
- package/src/dist/assets/on-dark-horz.e1f213d0.svg +0 -1
- package/src/dist/assets/on-dark.12f4e2ce.svg +0 -1
- package/src/dist/assets/on-light-horz.23ff22c3.svg +0 -1
- package/src/dist/assets/on-light.50592f7f.svg +0 -1
- package/src/dist/assets/pet-scan.21d98a3d.jpg +0 -0
- package/src/dist/assets/revicons.4ca02b8a.ttf +0 -0
- package/src/dist/assets/revicons.9e4d4c68.eot +0 -0
- package/src/dist/assets/revicons.f7b9c306.woff +0 -0
- package/src/dist/assets/sqm-logo.9cd0cca5.png +0 -0
- package/src/dist/assets/squishymedia.fa3c5919.png +0 -0
- package/src/dist/assets/stanford.5f245936.png +0 -0
- package/src/dist/index.html +0 -25
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { screen } from
|
|
3
|
-
import { searchRender } from
|
|
4
|
-
import SortBySelect from
|
|
5
|
-
import initialSearchParams from
|
|
1
|
+
import React from "react"
|
|
2
|
+
import { screen } from "@testing-library/react"
|
|
3
|
+
import { searchRender } from "../../__helpers__/search-render"
|
|
4
|
+
import SortBySelect from "../sort-by-select"
|
|
5
|
+
import initialSearchParams from "../../initial-search-params"
|
|
6
6
|
|
|
7
7
|
const providerProps = {
|
|
8
8
|
value: { searchParams: { ...initialSearchParams } },
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
describe(
|
|
12
|
-
it(
|
|
11
|
+
describe("SortBySelect component", () => {
|
|
12
|
+
it("displays Newest when parameters are set to default", () => {
|
|
13
13
|
searchRender(<SortBySelect variables={{ query: { bool: {} } }} />, {
|
|
14
14
|
providerProps,
|
|
15
15
|
})
|
|
16
|
-
expect(screen.getByText(
|
|
17
|
-
|
|
16
|
+
expect(screen.getByText("SORT BY:").closest("div")).toHaveTextContent(
|
|
17
|
+
"SORT BY: Newest",
|
|
18
18
|
)
|
|
19
19
|
})
|
|
20
|
-
it(
|
|
20
|
+
it("displays Newest when parameters are set to default and modality has changed", () => {
|
|
21
21
|
searchRender(
|
|
22
22
|
<SortBySelect
|
|
23
23
|
variables={{
|
|
@@ -26,8 +26,8 @@ describe('SortBySelect component', () => {
|
|
|
26
26
|
filter: [
|
|
27
27
|
{
|
|
28
28
|
match: {
|
|
29
|
-
|
|
30
|
-
query:
|
|
29
|
+
"latestSnapshot.summary.modalities": {
|
|
30
|
+
query: "MRI",
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
},
|
|
@@ -40,20 +40,20 @@ describe('SortBySelect component', () => {
|
|
|
40
40
|
providerProps,
|
|
41
41
|
},
|
|
42
42
|
)
|
|
43
|
-
expect(screen.getByText(
|
|
44
|
-
|
|
43
|
+
expect(screen.getByText("SORT BY:").closest("div")).toHaveTextContent(
|
|
44
|
+
"SORT BY: Newest",
|
|
45
45
|
)
|
|
46
46
|
})
|
|
47
|
-
it(
|
|
47
|
+
it("displays Relevance when any non-modality parameters are set away from default", () => {
|
|
48
48
|
searchRender(
|
|
49
|
-
<SortBySelect variables={{ query: { bool: { species:
|
|
49
|
+
<SortBySelect variables={{ query: { bool: { species: "Human" } } }} />,
|
|
50
50
|
{ providerProps },
|
|
51
51
|
)
|
|
52
|
-
expect(screen.getByText(
|
|
53
|
-
|
|
52
|
+
expect(screen.getByText("SORT BY:").closest("div")).toHaveTextContent(
|
|
53
|
+
"SORT BY: Relevance",
|
|
54
54
|
)
|
|
55
55
|
})
|
|
56
|
-
it(
|
|
56
|
+
it("displays Relevance with age of participants set", () => {
|
|
57
57
|
searchRender(
|
|
58
58
|
<SortBySelect
|
|
59
59
|
variables={{
|
|
@@ -62,10 +62,10 @@ describe('SortBySelect component', () => {
|
|
|
62
62
|
filter: [
|
|
63
63
|
{
|
|
64
64
|
range: {
|
|
65
|
-
|
|
65
|
+
"latestSnapshot.summary.subjectMetadata.age": {
|
|
66
66
|
gte: 10,
|
|
67
67
|
lte: 100,
|
|
68
|
-
relation:
|
|
68
|
+
relation: "INTERSECTS",
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
71
|
},
|
|
@@ -76,8 +76,8 @@ describe('SortBySelect component', () => {
|
|
|
76
76
|
/>,
|
|
77
77
|
{ providerProps },
|
|
78
78
|
)
|
|
79
|
-
expect(screen.getByText(
|
|
80
|
-
|
|
79
|
+
expect(screen.getByText("SORT BY:").closest("div")).toHaveTextContent(
|
|
80
|
+
"SORT BY: Relevance",
|
|
81
81
|
)
|
|
82
82
|
})
|
|
83
83
|
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import { SearchParamsCtx } from
|
|
3
|
-
import { Button } from
|
|
4
|
-
import styled from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import { SearchParamsCtx } from "../search-params-ctx"
|
|
3
|
+
import { Button } from "@openneuro/components/button"
|
|
4
|
+
import styled from "@emotion/styled"
|
|
5
5
|
|
|
6
6
|
const StyledButton = styled(Button)`
|
|
7
7
|
width: auto;
|
|
@@ -25,21 +25,21 @@ const TaskInput: FC = () => {
|
|
|
25
25
|
} = useContext(SearchParamsCtx)
|
|
26
26
|
|
|
27
27
|
const toggleSearchAllDatasets = () =>
|
|
28
|
-
setSearchParams(prevState => ({
|
|
28
|
+
setSearchParams((prevState) => ({
|
|
29
29
|
...prevState,
|
|
30
30
|
searchAllDatasets: !prevState.searchAllDatasets,
|
|
31
31
|
}))
|
|
32
32
|
|
|
33
33
|
return (
|
|
34
34
|
<StyledButton
|
|
35
|
-
className={searchAllDatasets ?
|
|
35
|
+
className={searchAllDatasets ? "active toggle-btn" : "toggle-btn"}
|
|
36
36
|
onClick={toggleSearchAllDatasets}
|
|
37
|
-
icon={searchAllDatasets ?
|
|
38
|
-
label={
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
icon={searchAllDatasets ? "fas fa-check-square" : "far fa-square"}
|
|
38
|
+
label={searchAllDatasets
|
|
39
|
+
? "Admin: Searching All Datasets"
|
|
40
|
+
: "Admin: Search All Datasets"}
|
|
41
|
+
>
|
|
42
|
+
</StyledButton>
|
|
43
43
|
)
|
|
44
44
|
}
|
|
45
45
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import { SearchParamsCtx } from
|
|
3
|
-
import initialSearchParams from
|
|
4
|
-
import { FacetRange } from
|
|
5
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import { SearchParamsCtx } from "../search-params-ctx"
|
|
3
|
+
import initialSearchParams from "../initial-search-params"
|
|
4
|
+
import { FacetRange } from "@openneuro/components/facets"
|
|
5
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
6
6
|
|
|
7
7
|
const AgeRangeInput: FC = () => {
|
|
8
8
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
9
9
|
|
|
10
10
|
const ageRange = searchParams.ageRange
|
|
11
|
-
const setAgeRange = ageRange =>
|
|
12
|
-
setSearchParams(prevState => ({
|
|
11
|
+
const setAgeRange = (ageRange) =>
|
|
12
|
+
setSearchParams((prevState) => ({
|
|
13
13
|
...prevState,
|
|
14
14
|
ageRange,
|
|
15
15
|
}))
|
|
@@ -26,7 +26,8 @@ const AgeRangeInput: FC = () => {
|
|
|
26
26
|
<AccordionTab
|
|
27
27
|
accordionStyle="plain"
|
|
28
28
|
label="Age of Participants"
|
|
29
|
-
startOpen={false}
|
|
29
|
+
startOpen={false}
|
|
30
|
+
>
|
|
30
31
|
<FacetRange
|
|
31
32
|
min={min}
|
|
32
33
|
max={max}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import useState from
|
|
3
|
-
import {
|
|
4
|
-
import { FacetSearch } from
|
|
5
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import useState from "react-usestateref"
|
|
3
|
+
import { removeFilterItem, SearchParamsCtx } from "../search-params-ctx"
|
|
4
|
+
import { FacetSearch } from "@openneuro/components/facets"
|
|
5
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
6
6
|
|
|
7
7
|
const AuthorInput: FC = () => {
|
|
8
8
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
9
9
|
const authors = searchParams.authors
|
|
10
10
|
|
|
11
|
-
const [newAuthor, setNewAuthor, newAuthorRef] = useState(
|
|
11
|
+
const [newAuthor, setNewAuthor, newAuthorRef] = useState("")
|
|
12
12
|
|
|
13
13
|
const addAuthor = () => {
|
|
14
|
-
setSearchParams(prevState => ({
|
|
14
|
+
setSearchParams((prevState) => ({
|
|
15
15
|
...prevState,
|
|
16
16
|
authors: [...authors, newAuthorRef.current],
|
|
17
17
|
}))
|
|
18
|
-
setNewAuthor(
|
|
18
|
+
setNewAuthor("")
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
return (
|
|
@@ -24,7 +24,8 @@ const AuthorInput: FC = () => {
|
|
|
24
24
|
accordionStyle="plain"
|
|
25
25
|
label="Authors / PI"
|
|
26
26
|
className="search-facet"
|
|
27
|
-
startOpen={false}
|
|
27
|
+
startOpen={false}
|
|
28
|
+
>
|
|
28
29
|
<FacetSearch
|
|
29
30
|
type="text"
|
|
30
31
|
placeholder="Enter Name(s) to Search"
|
|
@@ -42,11 +43,13 @@ const AuthorInput: FC = () => {
|
|
|
42
43
|
removeFilterItem={removeFilterItem(setSearchParams)}
|
|
43
44
|
helpText={
|
|
44
45
|
<>
|
|
45
|
-
Results on multiple inputs will include all datasets that have
|
|
46
|
+
Results on multiple inputs will include all datasets that have
|
|
47
|
+
{" "}
|
|
46
48
|
<b>ANY</b> of the entered names
|
|
47
49
|
</>
|
|
48
50
|
}
|
|
49
|
-
/>
|
|
51
|
+
/>
|
|
52
|
+
{" "}
|
|
50
53
|
</AccordionTab>
|
|
51
54
|
</AccordionWrap>
|
|
52
55
|
)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import { SearchParamsCtx } from
|
|
3
|
-
import { FacetRadio } from
|
|
4
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import { SearchParamsCtx } from "../search-params-ctx"
|
|
3
|
+
import { FacetRadio } from "@openneuro/components/facets"
|
|
4
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
5
5
|
|
|
6
6
|
const DateRadios: FC = () => {
|
|
7
7
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
8
8
|
|
|
9
9
|
const { date_available, date_selected } = searchParams
|
|
10
|
-
const setDate = date_selected =>
|
|
11
|
-
setSearchParams(prevState => ({
|
|
10
|
+
const setDate = (date_selected) =>
|
|
11
|
+
setSearchParams((prevState) => ({
|
|
12
12
|
...prevState,
|
|
13
13
|
date_selected,
|
|
14
14
|
}))
|
|
@@ -18,7 +18,8 @@ const DateRadios: FC = () => {
|
|
|
18
18
|
<AccordionTab
|
|
19
19
|
startOpen={false}
|
|
20
20
|
label="Publication Date"
|
|
21
|
-
accordionStyle="plain"
|
|
21
|
+
accordionStyle="plain"
|
|
22
|
+
>
|
|
22
23
|
<FacetRadio
|
|
23
24
|
selected={date_selected}
|
|
24
25
|
setSelected={setDate}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import { SearchParamsCtx } from
|
|
3
|
-
import { FacetSelect } from
|
|
4
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import { SearchParamsCtx } from "../search-params-ctx"
|
|
3
|
+
import { FacetSelect } from "@openneuro/components/facets"
|
|
4
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
5
5
|
|
|
6
6
|
const DiagnosisSelect: FC = () => {
|
|
7
7
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
8
8
|
|
|
9
9
|
const { diagnosis_available, diagnosis_selected } = searchParams
|
|
10
|
-
const setDiagnosis = diagnosis_selected =>
|
|
11
|
-
setSearchParams(prevState => ({
|
|
10
|
+
const setDiagnosis = (diagnosis_selected) =>
|
|
11
|
+
setSearchParams((prevState) => ({
|
|
12
12
|
...prevState,
|
|
13
13
|
diagnosis_selected,
|
|
14
14
|
}))
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import KeywordInput from
|
|
2
|
-
import AllDatasetsToggle from
|
|
3
|
-
import ModalitySelect from
|
|
4
|
-
import ShowDatasetRadios from
|
|
5
|
-
import AgeRangeInput from
|
|
6
|
-
import SubjectCountRangeInput from
|
|
7
|
-
import DiagnosisSelect from
|
|
8
|
-
import TaskInput from
|
|
9
|
-
import AuthorInput from
|
|
10
|
-
import SexRadios from
|
|
11
|
-
import DateRadios from
|
|
12
|
-
import SpeciesSelect from
|
|
13
|
-
import SectionSelect from
|
|
14
|
-
import StudyDomainInput from
|
|
15
|
-
import BodyPartsInput from
|
|
16
|
-
import ScannerManufacturers from
|
|
17
|
-
import ScannerManufacturersModelNames from
|
|
18
|
-
import TracerNames from
|
|
19
|
-
import TracerRadionuclides from
|
|
20
|
-
import SortBySelect from
|
|
1
|
+
import KeywordInput from "./keyword-input"
|
|
2
|
+
import AllDatasetsToggle from "./admin-allDatasets-toggle"
|
|
3
|
+
import ModalitySelect from "./modality-select"
|
|
4
|
+
import ShowDatasetRadios from "./show-datasets-radios"
|
|
5
|
+
import AgeRangeInput from "./age-range-input"
|
|
6
|
+
import SubjectCountRangeInput from "./subject-count-range-input"
|
|
7
|
+
import DiagnosisSelect from "./diagnosis-select"
|
|
8
|
+
import TaskInput from "./task-input"
|
|
9
|
+
import AuthorInput from "./author-input"
|
|
10
|
+
import SexRadios from "./sex-radios"
|
|
11
|
+
import DateRadios from "./date-radios"
|
|
12
|
+
import SpeciesSelect from "./species-select"
|
|
13
|
+
import SectionSelect from "./section-select"
|
|
14
|
+
import StudyDomainInput from "./study-domain-input"
|
|
15
|
+
import BodyPartsInput from "./pet/bodyParts_input"
|
|
16
|
+
import ScannerManufacturers from "./pet/scannerManufacturers_input"
|
|
17
|
+
import ScannerManufacturersModelNames from "./pet/scannerManufacturersModelNames_input"
|
|
18
|
+
import TracerNames from "./pet/tracerNames_input"
|
|
19
|
+
import TracerRadionuclides from "./pet/tracerRadionuclides_input"
|
|
20
|
+
import SortBySelect from "./sort-by-select"
|
|
21
21
|
|
|
22
22
|
export {
|
|
23
|
-
KeywordInput,
|
|
24
|
-
AllDatasetsToggle,
|
|
25
|
-
ModalitySelect,
|
|
26
|
-
ShowDatasetRadios,
|
|
27
23
|
AgeRangeInput,
|
|
28
|
-
|
|
29
|
-
DiagnosisSelect,
|
|
30
|
-
TaskInput,
|
|
24
|
+
AllDatasetsToggle,
|
|
31
25
|
AuthorInput,
|
|
32
|
-
SexRadios,
|
|
33
|
-
DateRadios,
|
|
34
|
-
SpeciesSelect,
|
|
35
|
-
SectionSelect,
|
|
36
|
-
StudyDomainInput,
|
|
37
26
|
BodyPartsInput,
|
|
27
|
+
DateRadios,
|
|
28
|
+
DiagnosisSelect,
|
|
29
|
+
KeywordInput,
|
|
30
|
+
ModalitySelect,
|
|
38
31
|
ScannerManufacturers,
|
|
39
32
|
ScannerManufacturersModelNames,
|
|
33
|
+
SectionSelect,
|
|
34
|
+
SexRadios,
|
|
35
|
+
ShowDatasetRadios,
|
|
36
|
+
SortBySelect,
|
|
37
|
+
SpeciesSelect,
|
|
38
|
+
StudyDomainInput,
|
|
39
|
+
SubjectCountRangeInput,
|
|
40
|
+
TaskInput,
|
|
40
41
|
TracerNames,
|
|
41
42
|
TracerRadionuclides,
|
|
42
|
-
SortBySelect,
|
|
43
43
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import useState from
|
|
3
|
-
import {
|
|
4
|
-
import { TermSearch } from
|
|
5
|
-
import { Icon } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import useState from "react-usestateref"
|
|
3
|
+
import { removeFilterItem, SearchParamsCtx } from "../search-params-ctx"
|
|
4
|
+
import { TermSearch } from "@openneuro/components/input"
|
|
5
|
+
import { Icon } from "@openneuro/components/icon"
|
|
6
6
|
|
|
7
7
|
const KeywordInput: FC = () => {
|
|
8
8
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
9
9
|
const keywords = searchParams.keywords
|
|
10
10
|
|
|
11
|
-
const [newKeyword, setNewKeyword, newKeywordRef] = useState(
|
|
11
|
+
const [newKeyword, setNewKeyword, newKeywordRef] = useState("")
|
|
12
12
|
|
|
13
13
|
const addKeyword = () => {
|
|
14
|
-
setSearchParams(prevState => ({
|
|
14
|
+
setSearchParams((prevState) => ({
|
|
15
15
|
...prevState,
|
|
16
16
|
keywords: [...keywords, newKeywordRef.current],
|
|
17
17
|
}))
|
|
18
|
-
setNewKeyword(
|
|
18
|
+
setNewKeyword("")
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
return (
|
|
@@ -39,11 +39,11 @@ const KeywordInput: FC = () => {
|
|
|
39
39
|
removeFilterItem={removeFilterItem(setSearchParams)}
|
|
40
40
|
tipContent={
|
|
41
41
|
<span>
|
|
42
|
-
Each time the{
|
|
43
|
-
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />
|
|
44
|
-
clicked, it will add a search filter. Multiple words in a
|
|
45
|
-
will return results containing any or all words. For advanced
|
|
46
|
-
filters use the{
|
|
42
|
+
Each time the{" "}
|
|
43
|
+
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />{" "}
|
|
44
|
+
button is clicked, it will add a search filter. Multiple words in a
|
|
45
|
+
filter will return results containing any or all words. For advanced
|
|
46
|
+
filters use the{" "}
|
|
47
47
|
<a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html#simple-query-string-syntax">
|
|
48
48
|
simple query string syntax
|
|
49
49
|
</a>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import { useNavigate } from
|
|
3
|
-
import { SearchParamsCtx } from
|
|
4
|
-
import {
|
|
5
|
-
import { FacetSelect } from
|
|
6
|
-
import { AccordionTab, AccordionWrap } from
|
|
7
|
-
import initialSearchParams from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import { useNavigate } from "react-router-dom"
|
|
3
|
+
import { SearchParamsCtx } from "../search-params-ctx"
|
|
4
|
+
import { flattenedModalities, SearchParams } from "../initial-search-params"
|
|
5
|
+
import { FacetSelect } from "@openneuro/components/facets"
|
|
6
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
7
|
+
import initialSearchParams from "../initial-search-params"
|
|
8
8
|
|
|
9
9
|
interface ModalitySelectProps {
|
|
10
10
|
inHeader?: boolean
|
|
@@ -34,7 +34,7 @@ const ModalitySelect: FC<ModalitySelectProps> = ({
|
|
|
34
34
|
modality_selected,
|
|
35
35
|
}),
|
|
36
36
|
)
|
|
37
|
-
const modality_selected_path = flattenedModalities.find(modality => {
|
|
37
|
+
const modality_selected_path = flattenedModalities.find((modality) => {
|
|
38
38
|
return modality.label === modality_selected
|
|
39
39
|
})?.portalPath
|
|
40
40
|
navigate(modality_selected_path)
|
|
@@ -42,29 +42,32 @@ const ModalitySelect: FC<ModalitySelectProps> = ({
|
|
|
42
42
|
|
|
43
43
|
return (
|
|
44
44
|
<>
|
|
45
|
-
{portalStyles
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
selected={modality_selected}
|
|
50
|
-
setSelected={setModality}
|
|
51
|
-
items={modality_available}
|
|
52
|
-
/>
|
|
53
|
-
) : (
|
|
54
|
-
<AccordionWrap className="modality-facet facet-accordion">
|
|
55
|
-
<AccordionTab
|
|
56
|
-
accordionStyle="plain"
|
|
45
|
+
{portalStyles
|
|
46
|
+
? (
|
|
47
|
+
<FacetSelect
|
|
48
|
+
className="modality-facet facet-open"
|
|
57
49
|
label={label}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
50
|
+
selected={modality_selected}
|
|
51
|
+
setSelected={setModality}
|
|
52
|
+
items={modality_available}
|
|
53
|
+
/>
|
|
54
|
+
)
|
|
55
|
+
: (
|
|
56
|
+
<AccordionWrap className="modality-facet facet-accordion">
|
|
57
|
+
<AccordionTab
|
|
58
|
+
accordionStyle="plain"
|
|
59
|
+
label={label}
|
|
60
|
+
startOpen={portalStyles ? startOpen : false}
|
|
61
|
+
dropdown={dropdown}
|
|
62
|
+
>
|
|
63
|
+
<FacetSelect
|
|
64
|
+
selected={modality_selected}
|
|
65
|
+
setSelected={setModality}
|
|
66
|
+
items={modality_available}
|
|
67
|
+
/>
|
|
68
|
+
</AccordionTab>
|
|
69
|
+
</AccordionWrap>
|
|
70
|
+
)}
|
|
68
71
|
</>
|
|
69
72
|
)
|
|
70
73
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import useState from
|
|
3
|
-
import {
|
|
4
|
-
import { FacetSearch } from
|
|
5
|
-
import { Icon } from
|
|
6
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import useState from "react-usestateref"
|
|
3
|
+
import { removeFilterItem, SearchParamsCtx } from "../../search-params-ctx"
|
|
4
|
+
import { FacetSearch } from "@openneuro/components/facets"
|
|
5
|
+
import { Icon } from "@openneuro/components/icon"
|
|
6
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
7
7
|
|
|
8
8
|
const BodyPartsInput: FC = () => {
|
|
9
9
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
10
10
|
const bodyParts = searchParams.bodyParts
|
|
11
11
|
|
|
12
|
-
const [newInput, setNewInput, newInputRef] = useState(
|
|
12
|
+
const [newInput, setNewInput, newInputRef] = useState("")
|
|
13
13
|
|
|
14
14
|
const addBodyPart = () => {
|
|
15
|
-
setSearchParams(prevState => ({
|
|
15
|
+
setSearchParams((prevState) => ({
|
|
16
16
|
...prevState,
|
|
17
17
|
bodyParts: [...bodyParts, newInputRef.current],
|
|
18
18
|
}))
|
|
19
|
-
setNewInput(
|
|
19
|
+
setNewInput("")
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
return (
|
|
@@ -25,7 +25,8 @@ const BodyPartsInput: FC = () => {
|
|
|
25
25
|
accordionStyle="plain"
|
|
26
26
|
label="Target"
|
|
27
27
|
className="search-facet"
|
|
28
|
-
startOpen={false}
|
|
28
|
+
startOpen={false}
|
|
29
|
+
>
|
|
29
30
|
<FacetSearch
|
|
30
31
|
type="text"
|
|
31
32
|
placeholder="Enter Target(s) to Search"
|
|
@@ -43,18 +44,19 @@ const BodyPartsInput: FC = () => {
|
|
|
43
44
|
removeFilterItem={removeFilterItem(setSearchParams)}
|
|
44
45
|
helpText={
|
|
45
46
|
<span>
|
|
46
|
-
Each time the{
|
|
47
|
-
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />
|
|
48
|
-
clicked, it will add a search filter. Multiple words in
|
|
49
|
-
will return results containing any or all words. For
|
|
50
|
-
filters use the{
|
|
47
|
+
Each time the{" "}
|
|
48
|
+
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />{" "}
|
|
49
|
+
button is clicked, it will add a search filter. Multiple words in
|
|
50
|
+
a filter will return results containing any or all words. For
|
|
51
|
+
advanced filters use the{" "}
|
|
51
52
|
<a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html#simple-query-string-syntax">
|
|
52
53
|
simple query string syntax
|
|
53
54
|
</a>
|
|
54
55
|
.
|
|
55
56
|
</span>
|
|
56
57
|
}
|
|
57
|
-
/>
|
|
58
|
+
/>
|
|
59
|
+
{" "}
|
|
58
60
|
</AccordionTab>
|
|
59
61
|
</AccordionWrap>
|
|
60
62
|
)
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import React, { FC, useContext } from
|
|
2
|
-
import useState from
|
|
3
|
-
import {
|
|
4
|
-
import { FacetSearch } from
|
|
5
|
-
import { Icon } from
|
|
6
|
-
import { AccordionTab, AccordionWrap } from
|
|
1
|
+
import React, { FC, useContext } from "react"
|
|
2
|
+
import useState from "react-usestateref"
|
|
3
|
+
import { removeFilterItem, SearchParamsCtx } from "../../search-params-ctx"
|
|
4
|
+
import { FacetSearch } from "@openneuro/components/facets"
|
|
5
|
+
import { Icon } from "@openneuro/components/icon"
|
|
6
|
+
import { AccordionTab, AccordionWrap } from "@openneuro/components/accordion"
|
|
7
7
|
|
|
8
8
|
const ScannerManufacturersModelNamesInput: FC = () => {
|
|
9
9
|
const { searchParams, setSearchParams } = useContext(SearchParamsCtx)
|
|
10
10
|
const scannerManufacturersModelNames =
|
|
11
11
|
searchParams.scannerManufacturersModelNames
|
|
12
12
|
|
|
13
|
-
const [newInput, setNewInput, newInputRef] = useState(
|
|
13
|
+
const [newInput, setNewInput, newInputRef] = useState("")
|
|
14
14
|
|
|
15
15
|
const addScannerManufacturersModelName = () => {
|
|
16
|
-
setSearchParams(prevState => ({
|
|
16
|
+
setSearchParams((prevState) => ({
|
|
17
17
|
...prevState,
|
|
18
18
|
scannerManufacturersModelNames: [
|
|
19
19
|
...scannerManufacturersModelNames,
|
|
20
20
|
newInputRef.current,
|
|
21
21
|
],
|
|
22
22
|
}))
|
|
23
|
-
setNewInput(
|
|
23
|
+
setNewInput("")
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
return (
|
|
@@ -29,7 +29,8 @@ const ScannerManufacturersModelNamesInput: FC = () => {
|
|
|
29
29
|
accordionStyle="plain"
|
|
30
30
|
label="Scanner Model"
|
|
31
31
|
className="search-facet"
|
|
32
|
-
startOpen={false}
|
|
32
|
+
startOpen={false}
|
|
33
|
+
>
|
|
33
34
|
<FacetSearch
|
|
34
35
|
type="text"
|
|
35
36
|
placeholder="Enter Scanner Model(s) to Search"
|
|
@@ -47,18 +48,19 @@ const ScannerManufacturersModelNamesInput: FC = () => {
|
|
|
47
48
|
removeFilterItem={removeFilterItem(setSearchParams)}
|
|
48
49
|
helpText={
|
|
49
50
|
<span>
|
|
50
|
-
Each time the{
|
|
51
|
-
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />
|
|
52
|
-
clicked, it will add a search filter. Multiple words in
|
|
53
|
-
will return results containing any or all words. For
|
|
54
|
-
filters use the{
|
|
51
|
+
Each time the{" "}
|
|
52
|
+
<Icon icon="fas fa-plus" label="plus" iconOnly={true} />{" "}
|
|
53
|
+
button is clicked, it will add a search filter. Multiple words in
|
|
54
|
+
a filter will return results containing any or all words. For
|
|
55
|
+
advanced filters use the{" "}
|
|
55
56
|
<a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-simple-query-string-query.html#simple-query-string-syntax">
|
|
56
57
|
simple query string syntax
|
|
57
58
|
</a>
|
|
58
59
|
.
|
|
59
60
|
</span>
|
|
60
61
|
}
|
|
61
|
-
/>
|
|
62
|
+
/>
|
|
63
|
+
{" "}
|
|
62
64
|
</AccordionTab>
|
|
63
65
|
</AccordionWrap>
|
|
64
66
|
)
|