From 33924d207ac0f852d2e34598b6f9f520c1d75970 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Thu, 2 Feb 2023 18:14:59 +0100 Subject: [PATCH] Create Grid And Container components --- docs/.vuepress/config.js | 2 +- docs/components/{component.md => grid.md} | 0 src/Component.vue | 8 ----- src/DragContainer.vue | 26 ++++++++++++++++ src/Grid.vue | 36 +++++++++++++++++++++++ src/components.js | 5 ++-- 6 files changed, 66 insertions(+), 11 deletions(-) rename docs/components/{component.md => grid.md} (100%) delete mode 100644 src/Component.vue create mode 100644 src/DragContainer.vue create mode 100644 src/Grid.vue diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index ba76c72..3eee8fc 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -7,7 +7,7 @@ module.exports = { title: 'Components', collapsable: false, children: [ - '/components/component.md', + '/components/grid.md', ] } ] diff --git a/docs/components/component.md b/docs/components/grid.md similarity index 100% rename from docs/components/component.md rename to docs/components/grid.md diff --git a/src/Component.vue b/src/Component.vue deleted file mode 100644 index 214828e..0000000 --- a/src/Component.vue +++ /dev/null @@ -1,8 +0,0 @@ -<template> - <div/> -</template> -<script> -export default { - name: 'Component' -} -</script> \ No newline at end of file diff --git a/src/DragContainer.vue b/src/DragContainer.vue new file mode 100644 index 0000000..b9cb3c2 --- /dev/null +++ b/src/DragContainer.vue @@ -0,0 +1,26 @@ +<template> + <div @dragstart="handleDragStart"> + <slot> + <div id="container"></div> + </slot> + </div> +</template> + +<script> +export default { + name: "DragContainer", + methods: { + handleDragStart(event) { + event.dataTransfer.setData("text", event.target.id); + } + } +} +</script> + +<style scoped> +#container { + background: lightcoral; + width: 100%; + height: 100%; +} +</style> \ No newline at end of file diff --git a/src/Grid.vue b/src/Grid.vue new file mode 100644 index 0000000..4f001d2 --- /dev/null +++ b/src/Grid.vue @@ -0,0 +1,36 @@ +<template> + <div @dragover.prevent @drop.prevent=""> + <slot name="highlight"> + <div id="highlight"></div> + </slot> + </div> +</template> + +<script> +export default { + name: 'Grid', + props: { + rows: { + type: Number, + required: true + }, + cols: { + type: Number, + required: true + } + }, + methods: { + handleDrop(event) { + let data = event.dataTransfer.getData("text"); + event.target.appendChild(document.getElementById(data)); + } + } +} +</script> + +<style scoped> +#highlight { + background: darkgrey; + border: grey dashed 2px; +} +</style> \ No newline at end of file diff --git a/src/components.js b/src/components.js index ab5df40..60479b9 100644 --- a/src/components.js +++ b/src/components.js @@ -1,3 +1,4 @@ -import Component from "./Component.vue"; +import DragContainer from "./DragContainer.vue"; +import Grid from "./Grid.vue"; -export default {Component}; +export default {DragContainer, Grid}; -- GitLab