Skip to content

Commit d612e2d

Browse files
madsrasmusseniOvergaard
authored andcommitted
disable duplicate button when nothing is selected
1 parent 6366776 commit d612e2d

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

src/packages/core/tree/entity-actions/duplicate-to/modal/duplicate-to-modal.element.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { UmbDuplicateToModalData, UmbDuplicateToModalValue } from './duplicate-to-modal.token.js';
2-
import { html, customElement, nothing } from '@umbraco-cms/backoffice/external/lit';
2+
import { html, customElement, nothing, state } from '@umbraco-cms/backoffice/external/lit';
33
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
44
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
55

@@ -9,11 +9,17 @@ import type { UmbTreeElement } from '@umbraco-cms/backoffice/tree';
99
const elementName = 'umb-duplicate-to-modal';
1010
@customElement(elementName)
1111
export class UmbDuplicateToModalElement extends UmbModalBaseElement<UmbDuplicateToModalData, UmbDuplicateToModalValue> {
12+
@state()
13+
_destinationUnique?: string | null;
14+
1215
#onTreeSelectionChange(event: UmbSelectionChangeEvent) {
1316
const target = event.target as UmbTreeElement;
1417
const selection = target.getSelection();
15-
if (selection.length === 0) throw new Error('Selection is required');
16-
this.updateValue({ destination: { unique: selection[0] } });
18+
this._destinationUnique = selection[0];
19+
20+
if (this._destinationUnique || this._destinationUnique === null) {
21+
this.updateValue({ destination: { unique: this._destinationUnique } });
22+
}
1723
}
1824

1925
render() {
@@ -43,7 +49,8 @@ export class UmbDuplicateToModalElement extends UmbModalBaseElement<UmbDuplicate
4349
color="positive"
4450
look="primary"
4551
label="Duplicate"
46-
@click=${this._submitModal}></uui-button>
52+
@click=${this._submitModal}
53+
?disabled=${this._destinationUnique === undefined}></uui-button>
4754
`;
4855
}
4956

src/packages/documents/documents/entity-actions/duplicate/modal/duplicate-document-modal.element.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type {
33
UmbDuplicateDocumentModalData,
44
UmbDuplicateDocumentModalValue,
55
} from './duplicate-document-modal.token.js';
6-
import { html, customElement, nothing, css } from '@umbraco-cms/backoffice/external/lit';
6+
import { html, customElement, nothing, css, state } from '@umbraco-cms/backoffice/external/lit';
77
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
88
import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal';
99

@@ -17,11 +17,17 @@ export class UmbDocumentDuplicateToModalElement extends UmbModalBaseElement<
1717
UmbDuplicateDocumentModalData,
1818
UmbDuplicateDocumentModalValue
1919
> {
20+
@state()
21+
_destinationUnique?: string | null;
22+
2023
#onTreeSelectionChange(event: UmbSelectionChangeEvent) {
2124
const target = event.target as UmbTreeElement;
2225
const selection = target.getSelection();
23-
if (selection.length === 0) throw new Error('Selection is required');
24-
this.updateValue({ destination: { unique: selection[0] } });
26+
this._destinationUnique = selection[0];
27+
28+
if (this._destinationUnique || this._destinationUnique === null) {
29+
this.updateValue({ destination: { unique: this._destinationUnique } });
30+
}
2531
}
2632

2733
#onRelateToOriginalChange(event: UUIBooleanInputEvent) {
@@ -72,7 +78,8 @@ export class UmbDocumentDuplicateToModalElement extends UmbModalBaseElement<
7278
color="positive"
7379
look="primary"
7480
label="Duplicate"
75-
@click=${this._submitModal}></uui-button>
81+
@click=${this._submitModal}
82+
?disabled=${this._destinationUnique === undefined}></uui-button>
7683
`;
7784
}
7885

0 commit comments

Comments
 (0)