Skip to content

feat(web-core): create useCollection composable #8447

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

Merged
merged 5 commits into from
Apr 14, 2025

Conversation

ByScripts
Copy link
Contributor

@ByScripts ByScripts commented Mar 21, 2025

Description

New composable allowing to manage a collection of items, handling filtering, flags and additional properties.

Example

const { items: users, useSubset } = useCollection(userRecords, {
  identifier: user => user.id,
  flags: ['selected'],
  properties: (user) => ({
    isAdmin: computed(() => user.groups.includes['admin'])
  })
})

const { items: admins, useFlag } = useSubset(user => user.properties.isAdmin)

const { toggleAll: toggleAdminsSelection } = useFlag('selected')

Checklist

  • Commit
    • Title follows commit conventions
    • Reference the relevant issue (Fixes #007, See xoa-support#42, See https://...)
    • If bug fix, add Introduced by
  • Changelog
    • If visible by XOA users, add changelog entry
    • Update "Packages to release" in CHANGELOG.unreleased.md
  • PR
    • If UI changes, add screenshots
    • If not finished or not tested, open as Draft

Review process

This 2-passes review process aims to:

  • develop skills of junior reviewers
  • limit the workload for senior reviewers
  • limit the number of unnecessary changes by the author
  1. The author creates a PR.
  2. Review process:
    1. The author assigns the junior reviewer.
    2. The junior reviewer conducts their review:
      • Resolves their comments if they are addressed.
      • Adds comments if necessary or approves the PR.
    3. The junior reviewer assigns the senior reviewer.
    4. The senior reviewer conducts their review:
      • If there are no unresolved comments on the PR → merge.
      • Otherwise, we continue with 3.
  3. The author responds to comments and/or makes corrections, and we go back to 2.

Notes:

  1. The author can request a review at any time, even if the PR is still a Draft.
  2. In theory, there should not be more than one reviewer at a time.
  3. The author should not make any changes:
    • When a reviewer is assigned.
    • Between the junior and senior reviews.

@ByScripts ByScripts requested a review from OlivierFL March 21, 2025 23:43
@ByScripts ByScripts self-assigned this Mar 21, 2025
@ByScripts ByScripts force-pushed the web-core/use-collection branch from c711c08 to d3e8cc3 Compare April 9, 2025 09:31
@ByScripts ByScripts marked this pull request as ready for review April 9, 2025 09:36
@ByScripts ByScripts force-pushed the web-core/use-collection branch from d3e8cc3 to 092bb47 Compare April 9, 2025 14:59
@ByScripts ByScripts force-pushed the web-core/use-collection branch from 092bb47 to 37ac50a Compare April 9, 2025 15:40
@ByScripts ByScripts force-pushed the web-core/use-collection branch 2 times, most recently from f85355b to bc9edbc Compare April 14, 2025 15:20
@ByScripts ByScripts force-pushed the web-core/use-collection branch from bc9edbc to 0af83c3 Compare April 14, 2025 15:24
@OlivierFL OlivierFL merged commit 06d62e9 into master Apr 14, 2025
1 check passed
@OlivierFL OlivierFL deleted the web-core/use-collection branch April 14, 2025 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants