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): Add transition properties #18297

Merged
merged 1 commit into from
Sep 25, 2023
Merged

fix(VDataTable): Add transition properties #18297

merged 1 commit into from
Sep 25, 2023

Conversation

RCRalph
Copy link
Contributor

@RCRalph RCRalph commented Sep 20, 2023

Description

Resolves #18295

Added transition properties to VTable.sass file into .v-table class. That's because VDataTable is an extension of VTable and adding transition properties to its files would conflict with VTable transitions and would not work, which I've tested.

Markup:

Below an example I've used before, but this time using VDataTable from documentation:

<template>
  <v-app>
    <v-container>
      <v-card>
        <v-card-title>Table with theme</v-card-title>
        <v-data-table
          v-model:items-per-page="itemsPerPage"
          :headers="headers"
          :items="desserts"
          item-value="name"
          class="elevation-1"
        ></v-data-table>

        <v-card-actions>
          <v-btn @click="toggleTheme">Toggle theme</v-btn>
        </v-card-actions>
      </v-card>
    </v-container>
  </v-app>
</template>

<script setup>
  import { useTheme } from 'vuetify'
  const theme = useTheme()

  function toggleTheme() {
    theme.global.name.value =
      theme.global.name.value == 'light' ? 'dark' : 'light'
  }
</script>

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

<style>
  .v-table > .v-table__wrapper > table > tbody > tr > td,
  .v-table > .v-table__wrapper > table > tbody > tr > th,
  .v-table > .v-table__wrapper > table > thead > tr > td,
  .v-table > .v-table__wrapper > table > thead > tr > th,
  .v-table > .v-table__wrapper > table > tfoot > tr > td,
  .v-table > .v-table__wrapper > table > tfoot > tr > th {
    transition-duration: 0.28s !important;
    transition-property: box-shadow, opacity, background, height !important;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
  }
</style>

@MajesticPotatoe MajesticPotatoe added T: bug Functionality that does not work as intended/expected C: VDataTable VDatatable labs labels Sep 20, 2023
@johnleider johnleider added this to the v3.3.x milestone Sep 25, 2023
@johnleider johnleider merged commit 0b552bb into vuetifyjs:master Sep 25, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: VDataTable VDatatable labs T: bug Functionality that does not work as intended/expected
Projects
None yet
3 participants