@@ -10,9 +10,7 @@ import { UmbModalBaseElement, umbOpenModal } from '@umbraco-cms/backoffice/modal
1010import { createExtensionApiByAlias } from '@umbraco-cms/backoffice/extension-registry' ;
1111import type { UmbItemRepository } from '@umbraco-cms/backoffice/repository' ;
1212
13- const elementName = 'umb-restore-from-recycle-bin-modal' ;
14-
15- @customElement ( elementName )
13+ @customElement ( 'umb-restore-from-recycle-bin-modal' )
1614export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement <
1715 UmbRestoreFromRecycleBinModalData ,
1816 UmbRestoreFromRecycleBinModalValue
@@ -21,10 +19,13 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
2119 private _isAutomaticRestore = false ;
2220
2321 @state ( )
24- private _restoreItem ?: any ;
22+ private _destinationItem ?: any ;
2523
2624 @state ( )
27- private _destinationItem ?: any ;
25+ private _destinationItemName ?: string ;
26+
27+ @state ( )
28+ private _restoreItemName ?: string ;
2829
2930 #recycleBinRepository?: UmbRecycleBinRepository ;
3031
@@ -34,7 +35,16 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
3435 super . firstUpdated ( _changedProperties ) ;
3536 if ( ! this . data ?. unique ) throw new Error ( 'Cannot restore an item without a unique identifier.' ) ;
3637
37- this . _restoreItem = await this . #requestItem( this . data . unique ) ;
38+ const restoreItem = await this . #requestItem( this . data . unique ) ;
39+
40+ if ( this . data . itemDataResolver ) {
41+ const resolver = new this . data . itemDataResolver ( this ) ;
42+ resolver . setData ( restoreItem ) ;
43+ this . _restoreItemName = await resolver . getName ( ) ;
44+ } else {
45+ this . _restoreItemName = restoreItem . name ;
46+ }
47+
3848 const unique = await this . #requestAutomaticRestoreDestination( ) ;
3949
4050 if ( unique !== undefined ) {
@@ -47,9 +57,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
4757 // TODO: handle ROOT lookup. Currently, we can't look up the root in the item repository.
4858 // This is a temp solution to show something in the UI.
4959 if ( unique === null ) {
50- this . _destinationItem = {
51- name : 'ROOT' ,
52- } ;
60+ this . _destinationItemName = 'Root' ;
5361
5462 this . #setDestinationValue( {
5563 unique : null ,
@@ -61,6 +69,14 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
6169 this . _destinationItem = await this . #requestItem( unique ) ;
6270 if ( ! this . _destinationItem ) throw new Error ( 'Cant find destination item.' ) ;
6371
72+ if ( this . data ?. itemDataResolver ) {
73+ const resolver = new this . data . itemDataResolver ( this ) ;
74+ resolver . setData ( this . _destinationItem ) ;
75+ this . _destinationItemName = await resolver . getName ( ) ;
76+ } else {
77+ this . _destinationItemName = this . _destinationItem . name ;
78+ }
79+
6480 this . #setDestinationValue( {
6581 unique : this . _destinationItem . unique ,
6682 entityType : this . _destinationItem . entityType ,
@@ -138,7 +154,7 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
138154 <umb- body- layout headline= "Restore" >
139155 <uui- box>
140156 ${ this . _isAutomaticRestore
141- ? html ` Restore ${ this . _restoreItem ?. name } to ${ this . _destinationItem ?. name } `
157+ ? html ` Restore ${ this . _restoreItemName } to ${ this . _destinationItemName } `
142158 : this . #renderCustomSelectDestination( ) }
143159 </ uui- box>
144160 ${ this . #renderActions( ) }
@@ -151,8 +167,8 @@ export class UmbRestoreFromRecycleBinModalElement extends UmbModalBaseElement<
151167 <h4> Cannot automatically restore this item .</ h4>
152168 <p> There is no location where this item can be automatically restored . You can select a new location below .</ p>
153169 <h5> Restore to : </ h5>
154- ${ this . _destinationItem
155- ? html `<uui- ref- node name= ${ this . _destinationItem . name } >
170+ ${ this . _destinationItem && this . _destinationItemName
171+ ? html `<uui- ref- node name= ${ this . _destinationItemName } >
156172 <uui- action- bar slot= "actions" >
157173 <uui- butto n @click = ${ ( ) => ( this . _destinationItem = undefined ) } label= "Remove"
158174 > ${ this . localize . term ( 'general_remove' ) } </ uui- butto n
@@ -186,6 +202,6 @@ export default UmbRestoreFromRecycleBinModalElement;
186202
187203declare global {
188204 interface HTMLElementTagNameMap {
189- [ elementName ] : UmbRestoreFromRecycleBinModalElement ;
205+ [ 'umb-restore-from-recycle-bin-modal' ] : UmbRestoreFromRecycleBinModalElement ;
190206 }
191207}
0 commit comments