Skip to content

Usage

ts
import { ref, h, type Ref } from 'vue'
import { nanoid } from 'nanoid'

import { GridDragResize } from '@/lib/components/GridDragResize'
import type { GridDragResizeItemProps } from '@/lib/components/GridDragResize/types'

import ComponentA from '@/demo/components/ComponentA.vue'
import ComponentB from '@/demo/components/ComponentB.vue'

// Display children
const children: Ref<GridDragResizeProps['children']> = ref([
  {
    columnStart: 1,
    columns: 1,
    rowStart: 1,
    rows: 1,
    render: () => h(ComponentA),
    // Keep some data
    data: {
      // ...
    }
  },
  {
    columnStart: 2,
    columnEnd: 4,
    rowStart: 2,
    rowEnd: 4,
    render: () => h(ComponentB)
    className: 'demo-item'
  },
  {
    columnStart: 4,
    columns: 1,
    rowStart: 4,
    rows: 1,
    render: () => h('div', [h('span', '...')])
    tagName: 'section'
  }
])
html
<template>
  <GridDragResize
    :column-size="50"
    :row-size="50"
    :gap="10"
    v-model:children="candidate"
  ></GridDragResize>
</template>