web/app/components/DraggableRow.vue
Yoga Pangestu 0c732e71cf feat: update sidebar and header layout; fix dnd-kit-vue package error
- Fixed import error for `dnd-kit-vue` by installing the package.
- Moved user navigation from sidebar to header, adding a dropdown for account options.
- Added homepage and notification icons to the header.
- Implemented sticky header functionality during scroll.
- Grouped sidebar menu items under a "Master" label for better organization.
- Updated relevant components and package.json to include new dependencies.
2026-07-23 23:43:04 +07:00

32 lines
913 B
Vue

<script setup lang="ts">
import type { Row } from "@tanstack/vue-table"
import type { z } from "zod"
import type { schema } from "./DataTable.vue"
import { FlexRender } from "@tanstack/vue-table"
import { useSortable } from "dnd-kit-vue"
import {
TableCell,
TableRow,
} from '@/components/ui/table'
const props = defineProps<{ row: Row<z.infer<typeof schema>>, index: number }>()
const { elementRef, isDragging } = useSortable({
id: props.row.original.id,
index: props.index,
})
</script>
<template>
<TableRow
:ref="elementRef"
:data-state="row.getIsSelected() && 'selected'"
:data-dragging="isDragging"
class="relative z-0 data-[dragging=true]:z-10 data-[dragging=true]:opacity-80"
>
<TableCell v-for="cell in row.getVisibleCells()" :key="cell.id">
<FlexRender :render="cell.column.columnDef.cell" :props="cell.getContext()" />
</TableCell>
</TableRow>
</template>