diff --git a/src/components/Table/Table.vue b/src/components/Table/Table.vue index f3e030e..a87f9c6 100644 --- a/src/components/Table/Table.vue +++ b/src/components/Table/Table.vue @@ -6,13 +6,9 @@ diff --git a/src/components/Table/TableRow.vue b/src/components/Table/TableRow.vue index 25120fc..74df263 100644 --- a/src/components/Table/TableRow.vue +++ b/src/components/Table/TableRow.vue @@ -1,7 +1,11 @@ diff --git a/src/components/Table/composables/tableRowClasses.ts b/src/components/Table/composables/tableRowClasses.ts new file mode 100644 index 0000000..7097cef --- /dev/null +++ b/src/components/Table/composables/tableRowClasses.ts @@ -0,0 +1,26 @@ +import { computed, inject } from 'vue' +import type { Ref } from 'vue' +import classNames from 'classnames' + +const baseClasses = 'bg-white dark:bg-gray-800 [&:not(:last-child)]:border-b [&:not(:last-child)]:dark:border-gray-700' +const stripedClasses = 'odd:bg-white even:bg-gray-50 odd:dark:bg-gray-800 even:dark:bg-gray-700 bg-white dark:border-gray-700 dark:bg-gray-800' +const hoverableClasses = 'hover:bg-gray-50 dark:hover:bg-gray-600' + +export function useTableRowClasses(): { tableRowClasses: Ref } { + const isStriped = inject('striped') + const isHoverable = inject('hoverable') + + const tableRowClasses = computed(() => { + return classNames( + baseClasses, + { + [stripedClasses]: isStriped, + [hoverableClasses]: isHoverable, + }, + ) + }) + + return { + tableRowClasses, + } +}