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

fix(VDataTable): support groupBy when sorting is disabled #20047

Merged
merged 3 commits into from
Jul 10, 2024

Conversation

lzl0304
Copy link
Contributor

@lzl0304 lzl0304 commented Jun 23, 2024

Description

fixes #20046

Markup:

<template>
  <v-data-table
    :group-by="groupBy"
    :headers="headers"
    :items="desserts"
    item-value="name"
    disable-sort
  />
</template>

<script>
  export default {
    data () {
      return {
        groupBy: [
          {
            key: 'group',
            order: 'desc',
          },
        ],
        headers: [
          { title: 'Dessert (100g serving)', key: 'name' },
          { title: 'Calories', key: 'calories' },
          { title: 'Fat (g)', key: 'fat' },
          { title: 'Carbs (g)', key: 'carbs' },
          { title: 'Protein (g)', key: 'protein' },
          { title: 'Iron (%)', key: 'iron' },
          { title: 'Group', key: 'group' },
        ],
        desserts: [
          {
            name: 'Frozen Yogurt',
            calories: 159,
            fat: 6.0,
            carbs: 24,
            protein: 4.0,
            iron: '1%',
            gluten: false,
            group: 1,
          },
          {
            name: 'Ice cream sandwich',
            calories: 237,
            fat: 9.0,
            carbs: 37,
            protein: 4.3,
            iron: '1%',
            gluten: false,
            group: 1,
          },
          {
            name: 'Eclair',
            calories: 262,
            fat: 16.0,
            carbs: 23,
            protein: 6.0,
            iron: '7%',
            gluten: true,
            group: 2,
          },
          {
            name: 'Cupcake',
            calories: 305,
            fat: 3.7,
            carbs: 67,
            protein: 4.3,
            iron: '8%',
            gluten: true,
            group: 2,
          },
          {
            name: 'Gingerbread',
            calories: 356,
            fat: 16.0,
            carbs: 49,
            protein: 3.9,
            iron: '16%',
            gluten: true,
            group: 2,
          },
          {
            name: 'Jelly bean',
            calories: 375,
            fat: 0.0,
            carbs: 94,
            protein: 0.0,
            iron: '0%',
            gluten: false,
            group: 2,
          },
          {
            name: 'Lollipop',
            calories: 392,
            fat: 0.2,
            carbs: 98,
            protein: 0,
            iron: '2%',
            gluten: false,
            group: 3,
          },
          {
            name: 'Honeycomb',
            calories: 408,
            fat: 3.2,
            carbs: 87,
            protein: 6.5,
            iron: '45%',
            gluten: true,
            group: 3,
          },
          {
            name: 'Donut',
            calories: 452,
            fat: 25.0,
            carbs: 51,
            protein: 4.9,
            iron: '22%',
            gluten: true,
            group: 4,
          },
          {
            name: 'KitKat',
            calories: 518,
            fat: 26.0,
            carbs: 65,
            protein: 7,
            iron: '6%',
            gluten: true,
            group: 4,
          },
        ],
      }
    },
  }
</script>

@SystemKeeper
Copy link

I don’t think the condition is correct now, it should depend on group by, see the original fix for vuetify2 #13027

@lzl0304 lzl0304 marked this pull request as draft June 24, 2024 08:18
@lzl0304
Copy link
Contributor Author

lzl0304 commented Jun 24, 2024

I don’t think the condition is correct now, it should depend on group by, see the original fix for vuetify2 #13027

Thank you for the reminder. You are right. I oversimplified the issue. I will also try to restore the unit tests simultaneously.

@cjhudson101
Copy link
Contributor

Just tested this change to see if it fixed an issue where sort-by overrides the group by order. This change does restore group by sort by to respect each other properly! Yay!!!

@lzl0304 lzl0304 force-pushed the fix-20046 branch 2 times, most recently from a390916 to ad8e1f0 Compare July 5, 2024 06:55
Copy link

@chudson-incomm chudson-incomm left a comment

Choose a reason for hiding this comment

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

Interesting way to check expected values from items array against nth child value in an anonymous function like that. When we do e2e tests we actually just use a constant and check the first/last value after sorting. May have to steal that syntax and write some component tests in our cypress test suite.

This looks good to me.

johnleider
johnleider previously approved these changes Jul 10, 2024
@johnleider johnleider added this to the v3.6.x milestone Jul 10, 2024
@johnleider johnleider added T: bug Functionality that does not work as intended/expected C: VDataTable VDatatable C: VDataTableServer C: VDataTableVirtual labels Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: VDataTable VDatatable C: VDataTableServer C: VDataTableVirtual T: bug Functionality that does not work as intended/expected
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug Report][3.6.10] VDataTable: GroupBy sort is not possible when sorting is disabled
5 participants