Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Implement the composite search bar for the mobile search header #1875

Merged
merged 8 commits into from
Oct 11, 2022

Conversation

obulat
Copy link
Contributor

@obulat obulat commented Oct 3, 2022

Fixes

Fixes #1876 by @obulat

Description

This PR implements the new VHeaderMobile component that is used on mobile widths for the search result and single result pages.
It does not use the VSearchBar or VInputField components, copying some code from them instead. Re-using the existing components is difficult because of the different border treatments (in the current component, everything is inside an outer border, and in the existing VSearchBar, some components are outside of the border), and nesting several components and several levels of template refs is difficult to follow. We could extract the common functionality in the future, if that makes the code simpler.

Testing Instructions

Go to 'http://localhost:8443/search/?q=cat&ff_new_header=on' on a narrow screen. The search bar should behave correctly. You should be able to update the search term, clear it, open (a stub of) the VContentSettingsModal.

You can also check out the VHeaderMobile story: https://wordpress.github.io/openverse-frontend/_preview/1875/?path=/story/components-vheader-vheadermobile-vheadermobile--default-story

Checklist

  • My pull request has a descriptive title (not a vague title like Update index.md).
  • My pull request targets the default branch of the repository (main) or a parent feature branch.
  • My commit messages follow best practices.
  • My code follows the established code style of the repository.
  • I added or updated tests for the changes I made (if applicable).
  • I added or updated documentation (if applicable).
  • I tried running the project locally and verified that there are no visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@github-actions
Copy link

github-actions bot commented Oct 3, 2022

Storybook and Tailwind configuration previews: Ready

Storybook: https://wordpress.github.io/openverse-frontend/_preview/1875
Tailwind: https://wordpress.github.io/openverse-frontend/_preview/1875/tailwind

Please note that GitHub pages takes a little time to deploy newly pushed code, if the links above don't work or you see old versions, wait 5 minutes and try again.

You can check the GitHub pages deployment action list to see the current status of the deployments.

@openverse-bot openverse-bot added the 🚦 status: awaiting triage Has not been triaged & therefore, not ready for work label Oct 3, 2022
@github-actions
Copy link

github-actions bot commented Oct 3, 2022

Size Change: +3.5 kB (0%)

Total Size: 819 kB

Filename Size Change
./.nuxt/dist/client/231.js 0 B -272 B (removed) 🏆
./.nuxt/dist/client/231.modern.js 0 B -277 B (removed) 🏆
./.nuxt/dist/client/232.js 0 B -1.85 kB (removed) 🏆
./.nuxt/dist/client/app.js 134 kB +1.83 kB (+1%)
./.nuxt/dist/client/app.modern.js 125 kB +1.46 kB (+1%)
./.nuxt/dist/client/commons/app.js 88.2 kB +11 B (0%)
./.nuxt/dist/client/components/v-back-to-search-results-link.js 537 B -33 B (-6%)
./.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 539 B -34 B (-6%)
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/09090664.js 9.48 kB +17 B (0%)
./.nuxt/dist/client/components/v-search-grid.js 5.45 kB -12 B (0%)
./.nuxt/dist/client/components/v-sources-table.js 15.4 kB +115 B (+1%)
./.nuxt/dist/client/components/v-sources-table.modern.js 15.4 kB +116 B (+1%)
./.nuxt/dist/client/pages/audio/_id.js 4.89 kB -38 B (-1%)
./.nuxt/dist/client/pages/audio/_id.modern.js 4.72 kB -37 B (-1%)
./.nuxt/dist/client/pages/image/_id.js 5.27 kB -36 B (-1%)
./.nuxt/dist/client/pages/image/_id.modern.js 7.22 kB -17 B (0%)
./.nuxt/dist/client/runtime.js 2.67 kB -28 B (-1%)
./.nuxt/dist/client/runtime.modern.js 2.67 kB -28 B (-1%)
./.nuxt/dist/client/vendors/app.js 57.2 kB +60 B (0%)
./.nuxt/dist/client/vendors/app.modern.js 56.5 kB +152 B (0%)
./.nuxt/dist/client/225.js 272 B +272 B (new file) 🆕
./.nuxt/dist/client/225.modern.js 277 B +277 B (new file) 🆕
./.nuxt/dist/client/226.js 1.85 kB +1.85 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./.nuxt/dist/client/commons/app.modern.js 77 kB -9 B (0%)
./.nuxt/dist/client/components/loading-icon.js 744 B -1 B (0%)
./.nuxt/dist/client/components/loading-icon.modern.js 751 B +1 B (0%)
./.nuxt/dist/client/components/table-sort-icon.js 509 B 0 B
./.nuxt/dist/client/components/table-sort-icon.modern.js 513 B 0 B
./.nuxt/dist/client/components/v-all-results-grid.js 2.75 kB +1 B (0%)
./.nuxt/dist/client/components/v-all-results-grid.modern.js 2.73 kB +4 B (0%)
./.nuxt/dist/client/components/v-all-results-grid/pages/search/audio/pages/search/index.js 3.01 kB -4 B (0%)
./.nuxt/dist/client/components/v-all-results-grid/pages/search/audio/pages/search/index.modern.js 2.92 kB +3 B (0%)
./.nuxt/dist/client/components/v-audio-cell.js 357 B 0 B
./.nuxt/dist/client/components/v-audio-cell.modern.js 361 B 0 B
./.nuxt/dist/client/components/v-audio-details.js 1.81 kB -2 B (0%)
./.nuxt/dist/client/components/v-audio-details.modern.js 1.79 kB +1 B (0%)
./.nuxt/dist/client/components/v-audio-track-skeleton.js 1.01 kB +1 B (0%)
./.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 1.02 kB -1 B (0%)
./.nuxt/dist/client/components/v-audio-track.js 5.11 kB -4 B (0%)
./.nuxt/dist/client/components/v-audio-track.modern.js 5.06 kB +3 B (0%)
./.nuxt/dist/client/components/v-bone.js 686 B +1 B (0%)
./.nuxt/dist/client/components/v-bone.modern.js 690 B 0 B
./.nuxt/dist/client/components/v-box-layout.js 1.2 kB +1 B (0%)
./.nuxt/dist/client/components/v-box-layout.modern.js 1.2 kB 0 B
./.nuxt/dist/client/components/v-content-link.js 1.12 kB +2 B (0%)
./.nuxt/dist/client/components/v-content-link.modern.js 1.09 kB -1 B (0%)
./.nuxt/dist/client/components/v-content-page.js 467 B 0 B
./.nuxt/dist/client/components/v-content-page.modern.js 471 B 0 B
./.nuxt/dist/client/components/v-content-report-button.js 778 B -1 B (0%)
./.nuxt/dist/client/components/v-content-report-button.modern.js 784 B 0 B
./.nuxt/dist/client/components/v-content-report-form.js 3.75 kB +3 B (0%)
./.nuxt/dist/client/components/v-content-report-form.modern.js 3.57 kB +2 B (0%)
./.nuxt/dist/client/components/v-content-report-popover.js 4.43 kB 0 B
./.nuxt/dist/client/components/v-content-report-popover.modern.js 4.24 kB +1 B (0%)
./.nuxt/dist/client/components/v-copy-button.js 3.98 kB 0 B
./.nuxt/dist/client/components/v-copy-button.modern.js 3.99 kB +2 B (0%)
./.nuxt/dist/client/components/v-copy-license.js 998 B -1 B (0%)
./.nuxt/dist/client/components/v-copy-license.modern.js 1 kB 0 B
./.nuxt/dist/client/components/v-copy-license/components/v-error-image/components/v-media-reuse/components/v-search-grid/09090664.modern.js 9.45 kB +8 B (0%)
./.nuxt/dist/client/components/v-dmca-notice.js 749 B +1 B (0%)
./.nuxt/dist/client/components/v-dmca-notice.modern.js 752 B 0 B
./.nuxt/dist/client/components/v-error-image.js 1.69 kB -4 B (0%)
./.nuxt/dist/client/components/v-error-image.modern.js 1.68 kB -2 B (0%)
./.nuxt/dist/client/components/v-error-section.js 372 B 0 B
./.nuxt/dist/client/components/v-error-section.modern.js 376 B 0 B
./.nuxt/dist/client/components/v-external-search-form.js 3.11 kB -4 B (0%)
./.nuxt/dist/client/components/v-external-search-form.modern.js 3.09 kB +2 B (0%)
./.nuxt/dist/client/components/v-external-source-list.js 2.57 kB -3 B (0%)
./.nuxt/dist/client/components/v-external-source-list.modern.js 2.54 kB 0 B
./.nuxt/dist/client/components/v-full-layout.js 1.48 kB -2 B (0%)
./.nuxt/dist/client/components/v-full-layout.modern.js 1.48 kB +2 B (0%)
./.nuxt/dist/client/components/v-grid-skeleton.js 1.61 kB +1 B (0%)
./.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.61 kB +2 B (0%)
./.nuxt/dist/client/components/v-image-cell-square.js 1.01 kB -1 B (0%)
./.nuxt/dist/client/components/v-image-cell-square.modern.js 1.02 kB +1 B (0%)
./.nuxt/dist/client/components/v-image-cell.js 1.42 kB -2 B (0%)
./.nuxt/dist/client/components/v-image-cell.modern.js 1.42 kB +1 B (0%)
./.nuxt/dist/client/components/v-image-details.js 1.44 kB +3 B (0%)
./.nuxt/dist/client/components/v-image-details.modern.js 1.43 kB -3 B (0%)
./.nuxt/dist/client/components/v-image-grid.js 2.53 kB +1 B (0%)
./.nuxt/dist/client/components/v-image-grid.modern.js 2.42 kB -1 B (0%)
./.nuxt/dist/client/components/v-license-tab-panel.js 522 B 0 B
./.nuxt/dist/client/components/v-license-tab-panel.modern.js 525 B -1 B (0%)
./.nuxt/dist/client/components/v-load-more.js 788 B 0 B
./.nuxt/dist/client/components/v-load-more.modern.js 683 B 0 B
./.nuxt/dist/client/components/v-media-license.js 800 B +1 B (0%)
./.nuxt/dist/client/components/v-media-license.modern.js 809 B +4 B (0%)
./.nuxt/dist/client/components/v-media-reuse.js 1.62 kB -2 B (0%)
./.nuxt/dist/client/components/v-media-reuse.modern.js 1.62 kB 0 B
./.nuxt/dist/client/components/v-media-tag.js 430 B 0 B
./.nuxt/dist/client/components/v-media-tag.modern.js 434 B 0 B
./.nuxt/dist/client/components/v-no-results.js 2.77 kB -3 B (0%)
./.nuxt/dist/client/components/v-no-results.modern.js 2.74 kB 0 B
./.nuxt/dist/client/components/v-radio.js 1.51 kB +2 B (0%)
./.nuxt/dist/client/components/v-radio.modern.js 1.47 kB +1 B (0%)
./.nuxt/dist/client/components/v-related-audio.js 1.23 kB -4 B (0%)
./.nuxt/dist/client/components/v-related-audio.modern.js 1.23 kB +1 B (0%)
./.nuxt/dist/client/components/v-related-images.js 3.09 kB -1 B (0%)
./.nuxt/dist/client/components/v-related-images.modern.js 2.98 kB +5 B (0%)
./.nuxt/dist/client/components/v-report-desc-form.js 967 B +1 B (0%)
./.nuxt/dist/client/components/v-report-desc-form.modern.js 965 B 0 B
./.nuxt/dist/client/components/v-row-layout.js 1.7 kB 0 B
./.nuxt/dist/client/components/v-row-layout.modern.js 1.7 kB +4 B (0%)
./.nuxt/dist/client/components/v-scroll-button.js 813 B 0 B
./.nuxt/dist/client/components/v-scroll-button.modern.js 819 B 0 B
./.nuxt/dist/client/components/v-search-grid.modern.js 5.41 kB +4 B (0%)
./.nuxt/dist/client/components/v-search-results-title.js 658 B +1 B (0%)
./.nuxt/dist/client/components/v-search-results-title.modern.js 651 B -1 B (0%)
./.nuxt/dist/client/components/v-search-type-radio.js 795 B +2 B (0%)
./.nuxt/dist/client/components/v-search-type-radio.modern.js 771 B +2 B (0%)
./.nuxt/dist/client/components/v-server-timeout.js 299 B 0 B
./.nuxt/dist/client/components/v-server-timeout.modern.js 303 B 0 B
./.nuxt/dist/client/components/v-sketch-fab-viewer.js 997 B +1 B (0%)
./.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 894 B -1 B (0%)
./.nuxt/dist/client/components/v-skip-to-content-container.js 887 B -3 B (0%)
./.nuxt/dist/client/components/v-skip-to-content-container.modern.js 893 B 0 B
./.nuxt/dist/client/components/v-snackbar.js 1.18 kB -2 B (0%)
./.nuxt/dist/client/components/v-snackbar.modern.js 1.19 kB +1 B (0%)
./.nuxt/dist/client/components/v-warning-suppressor.js 298 B 0 B
./.nuxt/dist/client/components/v-warning-suppressor.modern.js 303 B 0 B
./.nuxt/dist/client/pages/about.js 1.06 kB +1 B (0%)
./.nuxt/dist/client/pages/about.modern.js 1.07 kB -1 B (0%)
./.nuxt/dist/client/pages/external-sources.js 1.45 kB -2 B (0%)
./.nuxt/dist/client/pages/external-sources.modern.js 1.45 kB 0 B
./.nuxt/dist/client/pages/feedback.js 1.24 kB -2 B (0%)
./.nuxt/dist/client/pages/feedback.modern.js 1.24 kB -2 B (0%)
./.nuxt/dist/client/pages/index.js 5.05 kB 0 B
./.nuxt/dist/client/pages/index.modern.js 4.91 kB +3 B (0%)
./.nuxt/dist/client/pages/preferences.js 1.21 kB 0 B
./.nuxt/dist/client/pages/preferences.modern.js 1.21 kB -1 B (0%)
./.nuxt/dist/client/pages/search-help.js 1.54 kB 0 B
./.nuxt/dist/client/pages/search-help.modern.js 1.55 kB -1 B (0%)
./.nuxt/dist/client/pages/search.js 2.75 kB -1 B (0%)
./.nuxt/dist/client/pages/search.modern.js 2.6 kB +3 B (0%)
./.nuxt/dist/client/pages/search/audio.js 1.19 kB 0 B
./.nuxt/dist/client/pages/search/audio.modern.js 1.19 kB +2 B (0%)
./.nuxt/dist/client/pages/search/image.js 2.79 kB +3 B (0%)
./.nuxt/dist/client/pages/search/image.modern.js 2.67 kB -3 B (0%)
./.nuxt/dist/client/pages/search/index.js 2.97 kB +3 B (0%)
./.nuxt/dist/client/pages/search/index.modern.js 2.93 kB +1 B (0%)
./.nuxt/dist/client/pages/search/model-3d.js 243 B +1 B (0%)
./.nuxt/dist/client/pages/search/model-3d.modern.js 246 B -1 B (0%)
./.nuxt/dist/client/pages/search/search-page.types.js 266 B 0 B
./.nuxt/dist/client/pages/search/search-page.types.modern.js 270 B 0 B
./.nuxt/dist/client/pages/search/video.js 240 B 0 B
./.nuxt/dist/client/pages/search/video.modern.js 243 B -1 B (0%)
./.nuxt/dist/client/pages/sources.js 1.44 kB -7 B (0%)
./.nuxt/dist/client/pages/sources.modern.js 1.45 kB -4 B (0%)

compressed-size-action

@obulat obulat self-assigned this Oct 3, 2022
@obulat obulat marked this pull request as ready for review October 3, 2022 11:06
@obulat obulat requested a review from a team as a code owner October 3, 2022 11:06
@obulat obulat requested review from zackkrida and dhruvkb October 3, 2022 11:06
@obulat obulat added 🟧 priority: high Stalls work on the project or its dependents 🌟 goal: addition Addition of new feature 🕹 aspect: interface Concerns end-users' experience with the software and removed 🚦 status: awaiting triage Has not been triaged & therefore, not ready for work labels Oct 3, 2022
@obulat obulat force-pushed the composite_search_bar branch 2 times, most recently from e76d32f to d8a479f Compare October 4, 2022 09:26
tsconfig.json Outdated Show resolved Hide resolved
Copy link
Member

@zackkrida zackkrida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very close to lgtm. Two things I noticed (one we can wait for @panchovm) on:

  • The Openverse logo and the back button have different alignments so when you click on the input the text moves to the right slightly.
  • The 'clear' button appears and is active even if there is no text in the input.

@obulat obulat requested a review from zackkrida October 5, 2022 06:02
@obulat obulat mentioned this pull request Oct 5, 2022
7 tasks
@obulat obulat force-pushed the composite_search_bar branch 2 times, most recently from abaf8f3 to 135000e Compare October 6, 2022 11:24
@obulat obulat marked this pull request as draft October 6, 2022 12:54
@obulat obulat marked this pull request as ready for review October 6, 2022 13:59
Copy link
Member

@zackkrida zackkrida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • The changes to the logo/back button jumping look nice 👍 the logo is larger than advised by the mockups but when I test making it smaller locally it looks quite odd. We can review this with @panchovm later in the month.
  • The 'clear' button still appears when there is no search term present. I believe this is fixed in Update desktop searchbar colors #1880 so as long as that continues I'm okay with this
  • A small thing: the back button has no interaction or focus styles. Can this be updated with the universal styles from the button audit you completed too?

@obulat obulat force-pushed the composite_search_bar branch from ca08d36 to 5284e63 Compare October 7, 2022 04:16
obulat added 5 commits October 8, 2022 18:50
Replace internal border with an external ring on searchbar
Show the Clear button only if there is a search term
Darken the input text on hover
@obulat obulat force-pushed the composite_search_bar branch from 350cb69 to edc03c6 Compare October 8, 2022 15:52
@obulat
Copy link
Contributor Author

obulat commented Oct 9, 2022

Changes since the last review:

  • the active search bar border was replaced: now using the ring-pink instead of border-pink (so, it's now external instead of internal)
  • the buttons were refactored to have a full tappable width and height of 48x48px to comply with a11y requirements. The inner colored area is still 32x32px to match the mockups.
  • Hover and focus styles added to the buttons.
  • 'Clear' button is removed when there is no search term.

@zackkrida zackkrida self-requested a review October 10, 2022 18:08
Copy link
Member

@zackkrida zackkrida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I think I see some bugs that aren't related to the contents of this PR, which I will make separate issues for.

@obulat obulat merged commit 8795c64 into main Oct 11, 2022
@obulat obulat deleted the composite_search_bar branch October 11, 2022 03:31
github-actions bot pushed a commit that referenced this pull request Oct 11, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🕹 aspect: interface Concerns end-users' experience with the software 🌟 goal: addition Addition of new feature 🟧 priority: high Stalls work on the project or its dependents
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Component: VHeaderMobile
4 participants