@@ -22,6 +22,7 @@ import MoveToOverlay from './moveToOverlay';
2222import CustomDropdown from '../../../component/customdropdown/customdropdown' ;
2323import ErrorManager from '../../../manager/errorManager' ;
2424import useKeyPress from '../../../util/useKeyPress' ;
25+ import AlertManager from '../../../manager/alertManager' ;
2526
2627const { dialog } = require ( 'electron' ) . remote ;
2728
@@ -303,15 +304,25 @@ export default function SubAssetEditor({ id, assetType, dpWorld }) {
303304
304305 const deleteClick = assetid => {
305306 if ( assetType !== 'datapack' ) {
306- const asset = profile . getSubAssetFromID ( assetType , assetid ) ;
307- profile
308- . deleteSubAsset ( assetType , asset )
309- . then ( ( ) => {
310- updateProgressStates ( ) ;
311- } )
312- . catch ( e => {
313- ToastManager . createToast ( 'Unable to delete' , ErrorManager . makeReadable ( e , 'subasset' ) ) ;
314- } ) ;
307+ const del = ( ) => {
308+ const asset = profile . getSubAssetFromID ( assetType , assetid ) ;
309+ profile
310+ . deleteSubAsset ( assetType , asset )
311+ . then ( ( ) => {
312+ // hacky fix
313+ setTimeout ( ( ) => {
314+ updateProgressStates ( ) ;
315+ } , 100 ) ;
316+ } )
317+ . catch ( e => {
318+ ToastManager . createToast ( 'Unable to delete' , ErrorManager . makeReadable ( e , 'subasset' ) ) ;
319+ } ) ;
320+ } ;
321+ if ( assetType === 'world' ) {
322+ AlertManager . alert ( 'are you sure?' , '' , del , 'delete' , 'cancel' ) ;
323+ } else {
324+ del ( ) ;
325+ }
315326 } else {
316327 const asset = dpWorld . datapacks . find ( dp => dp . id === assetid ) ;
317328 dpWorld . deleteDatapack ( profile , asset ) ;
@@ -458,6 +469,22 @@ export default function SubAssetEditor({ id, assetType, dpWorld }) {
458469 } )
459470 . map ( asset => {
460471 if ( displayState === 'assetsList' ) {
472+ if ( ! asset . name ) {
473+ return (
474+ < AssetCard
475+ progressState = { progressState }
476+ key = "undefinedasset"
477+ compact
478+ asset = { {
479+ id : asset . id ,
480+ name : 'Undefined Asset' ,
481+ version : { displayName : 'Something has gone wrong - please delete' }
482+ } }
483+ showDelete
484+ deleteClick = { deleteClick }
485+ />
486+ ) ;
487+ }
461488 if ( asset . name . toLowerCase ( ) . includes ( liveSearchTerm . toLowerCase ( ) ) ) {
462489 return (
463490 < AssetCard
0 commit comments