From 78005cebfbd3a43651c938034654c45805d81e05 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Mon, 13 Feb 2023 14:31:42 +0100 Subject: [PATCH] Enable grid disablement --- example/src/App.vue | 36 ++++++++++++++++++++++++++++++++++++ src/DragGrid.vue | 10 ++++++++-- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/example/src/App.vue b/example/src/App.vue index 451cba0..9eb3485 100644 --- a/example/src/App.vue +++ b/example/src/App.vue @@ -248,6 +248,41 @@ import NumberCounter from "./components/NumberCounter.vue"; </template> </drag-grid> </div> + + <div class="ttt-container"> + <div> + <h2>Example 6: Disabled grid</h2> + <p> + This uses the same data as the tic tac toe but is completely disabled. + Notice how the items still move if the tic tac toe grid above is + changed. Uncheck the checkbox to enable: + </p> + + <label> + <input type="checkbox" v-model="gridDisabled" /> + Grid disabled? + </label> + + <drag-grid + v-model="ticTacToe1" + :cols="3" + :rows="3" + :disabled="gridDisabled" + class="tic-tac-toe" + context="ticTacToe" + :validate-element="randomKey" + > + <template #item="item"> + <CircularCard> + {{ item.key.startsWith("a") ? "X" : "O" }} + </CircularCard> + </template> + </drag-grid> + </div> + <div> + <h2>Example 7: Disabled fields and items with props</h2> + </div> + </div> </div> </template> @@ -419,6 +454,7 @@ export default { x: 4, y: 2, }, + gridDisabled: true, }; }, computed: { diff --git a/src/DragGrid.vue b/src/DragGrid.vue index 02a4145..44b5e40 100644 --- a/src/DragGrid.vue +++ b/src/DragGrid.vue @@ -1,7 +1,7 @@ <template> <div - @dragover.prevent="handleDragOver" - @drop.prevent="handleDrop" + @dragover.prevent="disabled ? undefined : handleDragOver($event)" + @drop.prevent="disabled ? undefined : handleDrop($event)" class="grid" > <div class="highlight-container" ref="highlightContainer"> @@ -20,6 +20,7 @@ :data="getObject('data', item)" :context="context" :grid-id="gridId" + :disabled="disabled" > <slot v-bind="transformItem(item)" :raw-item="item" name="item"> <dl> @@ -86,6 +87,11 @@ export default { required: false, default: false, }, + disabled: { + type: Boolean, + required: false, + default: false, + }, }, methods: { positionAllowed(x, y, key) { -- GitLab