Newer
Older
vmk-ui-kit / src / vue / components / GnTableHeader.js
/**
 * GnTableHeader - Table header cell with optional sorting.
 */

import { defineComponent, h } from "vue";

export default defineComponent({
	name: "GnTableHeader",
	props: {
		sortable: { type: Boolean, default: false },
		sort: { type: String, default: "none" }
	},
	emits: ["sort"],
	setup(props, { slots, emit }) {
		return () => h("th", {
			"data-sortable": props.sortable ? "" : null,
			"aria-sort": props.sortable ? props.sort : null,
			style: props.sortable ? { cursor: "pointer" } : null,
			onClick: () => props.sortable && emit("sort", props.sort === "asc" ? "desc" : "asc")
		}, slots.default?.());
	}
});