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

Support Zag collections #110

Merged

Conversation

selenil
Copy link
Contributor

@selenil selenil commented Dec 9, 2024

Summary by Sourcery

New Features:

  • Add support for parsing and including Zag collections in the context.

Copy link

sourcery-ai bot commented Dec 9, 2024

Reviewer's Guide by Sourcery

This PR adds support for Zag collections by introducing a new parsing mechanism for collection data attributes in the ZagHook JavaScript module. The implementation extends the existing context building functionality to include collection data alongside options and listeners.

Class diagram for ZagHook.js with collection support

classDiagram
    class ZagHook {
        +parseOptions()
        +parseListeners()
        +parseCollection()
        +context()
    }
    note for ZagHook "parseCollection is a new method added to support Zag collections"
    ZagHook : parseCollection() returns collection
    ZagHook : context() includes collection
Loading

File-Level Changes

Change Details Files
Added collection data parsing functionality to the ZagHook context
  • Implemented new parseCollection method to handle collection data attributes
  • Added camelCase key conversion for collection entries
  • Integrated collection data into the context object alongside existing options and listeners
  • Added error handling through the existing try-catch block
priv/static/assets/zag/ZagHook.js

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey @selenil - I've reviewed your changes - here's some feedback:

Overall Comments:

  • Consider removing the debug console.log statement for 'listeners' before finalizing this PR
  • The error handling could be more robust - consider adding proper error reporting/handling mechanisms beyond console.error
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@selenil selenil changed the title WIP: Support Zag collections Support Zag collections Dec 11, 2024
@bluzky
Copy link
Owner

bluzky commented Dec 13, 2024

Hi @selenil could you share the benefit of passing collection as a separated attribute vs passing in option?

@selenil
Copy link
Contributor Author

selenil commented Dec 16, 2024

Hi @selenil could you share the benefit of passing collection as a separated attribute vs passing in option?

I think that for complex collections, where a user may want to convert the label and value of any item, it would be cleaner to parse them separately instead of providing another option.

@bluzky
Copy link
Owner

bluzky commented Dec 17, 2024

Hi @selenil could you share the benefit of passing collection as a separated attribute vs passing in option?

I think that for complex collections, where a user may want to convert the label and value of any item, it would be cleaner to parse them separately instead of providing another option.

Currently, all options are passing via a single attribute instead of multiple attribute. In my opinion, it's not a big deal

@selenil
Copy link
Contributor Author

selenil commented Dec 22, 2024

Currently, all options are passing via a single attribute instead of multiple attribute. In my opinion, it's not a big deal

You're right, it would be better to pass all options through the data-option attribute. We should keep the prepare_collection helper since it doesn't rely on any data attribute.

@bluzky bluzky merged commit b2bde49 into bluzky:feature/accessibility-hook Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants