Skip to content

Commit 4f4140e

Browse files
committed
Structure field: improve disabled UI
1 parent 29828f9 commit 4f4140e

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

panel/src/components/Drawers/Elements/Fields.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<template>
22
<k-fieldset
33
v-if="hasFields"
4+
:disabled="disabled"
45
:fields="fields"
56
:value="value"
67
class="k-drawer-fields"
@@ -13,6 +14,7 @@
1314
<script>
1415
export const props = {
1516
props: {
17+
disabled: Boolean,
1618
empty: {
1719
type: String,
1820
default: () => window.panel.t("drawer.fields.empty")

panel/src/components/Drawers/FormDrawer.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
</template>
1414

1515
<k-drawer-fields
16+
:disabled="disabled"
1617
:fields="fields"
1718
:value="value"
1819
@input="$emit('input', $event)"

panel/src/components/Drawers/StructureDrawer.vue

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@submit="$emit('submit', $event)"
1010
@tab="$emit('tab', $event)"
1111
>
12-
<template #options>
12+
<template v-if="!disabled" #options>
1313
<k-button
1414
:disabled="!prev"
1515
class="k-drawer-option"
@@ -47,6 +47,18 @@ export const props = {
4747
*/
4848
export default {
4949
mixins: [Drawer, FieldsProps, props],
50-
emits: ["cancel", "crumb", "input", "next", "prev", "remove", "submit", "tab"]
50+
emits: [
51+
"cancel",
52+
"crumb",
53+
"input",
54+
"next",
55+
"prev",
56+
"remove",
57+
"submit",
58+
"tab"
59+
],
60+
mounted() {
61+
console.log("Disabled in drawer?", this.disabled);
62+
}
5163
};
5264
</script>

panel/src/components/Forms/Field/StructureField.vue

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ export default {
352352
navigate(item, step) {
353353
const index = this.findIndex(item);
354354
355-
if (this.disabled === true || index === -1) {
355+
if (index === -1) {
356356
return;
357357
}
358358
@@ -369,14 +369,15 @@ export default {
369369
open(item, field, replace = false) {
370370
const index = this.findIndex(item);
371371
372-
if (this.disabled === true || index === -1) {
372+
if (index === -1) {
373373
return false;
374374
}
375375
376376
this.$panel.drawer.open({
377377
component: "k-structure-drawer",
378378
id: this.id,
379379
props: {
380+
disabled: this.disabled,
380381
icon: this.icon ?? "list-bullet",
381382
next: this.items[index + 1],
382383
prev: this.items[index - 1],
@@ -556,12 +557,20 @@ export default {
556557
</script>
557558
558559
<style>
559-
.k-structure-field:not([data-disabled="true"]) td.k-table-column {
560+
.k-structure-field td.k-table-column {
560561
cursor: pointer;
561562
}
562563
.k-structure-field .k-table + footer {
563564
display: flex;
564565
justify-content: center;
565566
margin-top: var(--spacing-3);
566567
}
568+
569+
/* Allow interaction with disabled structure field to open the drawer */
570+
.k-structure-field[data-disabled="true"] {
571+
cursor: initial;
572+
}
573+
.k-structure-field[data-disabled="true"] * {
574+
pointer-events: initial;
575+
}
567576
</style>

0 commit comments

Comments
 (0)