Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added empty state messages in breadcrumb selectors (Header) #4101

Merged
merged 5 commits into from
Jan 8, 2025

Conversation

ShailRT
Copy link
Contributor

@ShailRT ShailRT commented Dec 29, 2024

Description

This PR fixes #4099 and displays a message when there are no items in breadcrumb selector.

Database selector:

  • When there are no databases, it display a "No Databases configured" text in the dropdown.
  • We display a peristent link to "Connect a database".

Schema selector:

  • When there are no schemas, we display a "No Schemas configured" text in the dropdown.

Table selector:

  • When there are no tables, we display a "No Tables configured" text in the dropdown.

Screenshot

Before (No Database):
398389865-1d8d416d-e331-480c-92c6-34ed7a657e16

After (No Database):
no-db-math

Before (No Schema):
398389967-efec7e2c-9951-4936-8f56-524370165a11

After (No Schema):
no-schema-math

Before (No Table/Exploration):
no-table-no-message

After (No Table/Exploration):
notable-math

Checklist

  • My pull request has a descriptive title (not a vague title like Update index.md).
  • My pull request targets the develop branch of the repository
  • My commit messages follow best practices.
  • My code follows the established code style of the repository.
  • I added 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.

@seancolsen seancolsen added the pr-status: review A PR awaiting review label Jan 3, 2025
@seancolsen seancolsen assigned seancolsen and unassigned pavish Jan 7, 2025
- Improve structure
- Make the "no results" message i18n friendly
Copy link
Contributor

@seancolsen seancolsen left a comment

Choose a reason for hiding this comment

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

Well this ended up being more involved that I would have predicted. Due to the way that BreadcrumbSelector is abstracted, it's actually not straightforward to just stick some UI in there like "No Databases configured" and do it in an i18n-friendly way. This PR had {`No ${categoryName} configured`} in the Svelte template. Sorry, but we can't do that because all our UI strings need to be run through translation. And we need to translate entire sentences at a time in order to properly deal with all the complexities of different languages.

In fe552ce I heavily refactored this code to improve the structure and to make the no-results messages i18n friendly. You can see where the no-results messages are set if you look at the code modified in DatabaseSelector, SchemaSelector, and EntitySelector. This is much cleaner.

I also removed the "Connect Database" button from inside the dropdown. It would have been more work to implement, and I don't think we need it there.

Even though I've pushed quite a lot of changes here, I'm going to go ahead and merge this myself without an additional review since we're pressed for time. There are quite a lot of subtly different UI states to test here. I could spend 30 minutes producing for review screenshots, but this is a corner that I'm going to cut.

@pavish you might like to glace over the changes here. And try out the result post-merge.

@seancolsen seancolsen enabled auto-merge January 8, 2025 22:22
@seancolsen seancolsen added this pull request to the merge queue Jan 8, 2025
Merged via the queue into mathesar-foundation:develop with commit d24943b Jan 8, 2025
70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-status: review A PR awaiting review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add empty state messages in breadcrumb selectors
4 participants