1- import { App , Notice , Modal , TFolder } from "obsidian" ;
1+ import { App , Notice , Modal , TFolder , TFile } from "obsidian" ;
22import { NewFileLocation } from "../util/enums" ;
33import svgElements from "./svg" ;
44
@@ -9,7 +9,7 @@ export default class deleteActiveNoteModal extends Modal {
99 inputEl : HTMLInputElement ;
1010 inputListener : EventListener ;
1111 createType : string ;
12- deleteMsg : string
12+
1313 constructor ( app : App , mode : NewFileLocation , createType : string ) {
1414 super ( app ) ;
1515 this . createType = createType ;
@@ -23,30 +23,30 @@ export default class deleteActiveNoteModal extends Modal {
2323 this . inputEl . addClasses ( [ "prompt-input" , "inputDelete" ] )
2424
2525 //-Delete message
26- const theRelatedSonsFolder = getActiveFile . parent . children . find ( ( item : any ) => {
26+ const theRelatedSonsFolder = getActiveFile ?. parent ?. children . find ( ( item : any ) => {
27+ //normale note
2728 if ( item instanceof TFolder && item . name == getActiveFile . basename . toUpperCase ( ) ) {
2829 return item
2930 }
31+ // cluster
32+ if ( item instanceof TFolder && getActiveFile ?. basename . endsWith ( "cluster" ) && item . name == getActiveFile . basename ) {
33+ return item
34+ }
3035 } )
31-
36+ const text = document . createElement ( 'div' ) ;
37+ text . addClass ( "delMsg" )
3238 if ( theRelatedSonsFolder ) {
33- //@ts -ignore
34- this . deleteMsg = `<span>Press enter ↵ to delete current <span class="delNoteNameMsg">${ getActiveFile . basename } </span> note</br>with its related [<span class="delNoteNameMsg">${ theRelatedSonsFolder . children . length } </span>] sons in [${ getActiveFile . basename . toUpperCase ( ) } ] folder</br>or ESC to dismiss.</span>`
39+ text . appendChild ( this . createDeleteMsg1 ( getActiveFile , theRelatedSonsFolder ) )
3540 } else {
36- this . deleteMsg = `<span>Press enter ↵ to delete current <span class="delNoteNameMsg"> ${ getActiveFile . basename } </span> note or ESC to dismiss.</span>`
41+ text . appendChild ( this . createDeleteMsg2 ( getActiveFile ) )
3742 }
3843 //-Make modal
3944 this . modalEl . className = "prompt" ;
40- this . modalEl . innerHTML = "" ;
45+
4146 //svg
4247 if ( this . createType == "deleteNote" ) {
4348 this . modalEl . appendChild ( svgElements ( ) . delete ( ) ) ;
4449 }
45- //txt msg
46- const text = document . createElement ( 'div' ) ;
47- text . innerHTML = this . deleteMsg
48- text . addClass ( "delMsg" )
49-
5050
5151 this . modalEl . appendChild ( text ) ;
5252 this . modalEl . appendChild ( this . inputEl ) ;
@@ -65,38 +65,99 @@ export default class deleteActiveNoteModal extends Modal {
6565
6666
6767 //parent folder info
68- const theContainingFolder = getActiveFile . parent . children . length
69- const theContainingFolderPath = getActiveFile . parent . path
68+ const theContainingFolder = getActiveFile ! . parent ! . children . length
69+ const theContainingFolderPath = getActiveFile ! . parent ! . path
7070 //Related Sons Folder
71- const theRelatedSonsFolder = getActiveFile . parent . children . find ( ( item : any ) => {
72- if ( item instanceof TFolder && item . name == getActiveFile . basename . toUpperCase ( ) ) {
71+ const theRelatedSonsFolder = getActiveFile ! . parent ! . children . find ( ( item : any ) => {
72+ // normal note
73+ if ( item instanceof TFolder && item . name == getActiveFile ! . basename . toUpperCase ( ) ) {
74+ return item
75+ }
76+ // cluster
77+ if ( item instanceof TFolder && getActiveFile ?. basename . endsWith ( "cluster" ) && item . name == getActiveFile . basename ) {
7378 return item
7479 }
7580 } )
7681
7782 if ( theRelatedSonsFolder ) {
7883 //delete current active file + delete its Sons
79- await this . app . vault . adapter . remove ( getActiveFile . path )
84+ await this . app . vault . adapter . remove ( getActiveFile ! . path )
8085 await this . app . vault . adapter . rmdir ( theRelatedSonsFolder . path , true )
86+ console . log ( theRelatedSonsFolder )
8187 if ( theContainingFolder == 2 ) {
8288 await this . app . vault . adapter . rmdir ( theContainingFolderPath , true )
8389 }
8490 } else {
8591 //delete current active file
86- await this . app . vault . adapter . remove ( getActiveFile . path )
92+ await this . app . vault . adapter . remove ( getActiveFile ! . path )
8793
8894 }
8995
9096 //delete parent folder of active file if it is empty
9197 if ( theContainingFolder == 1 ) {
9298 await this . app . vault . adapter . rmdir ( theContainingFolderPath , true )
93- console . log ( "dddddddddd" )
94- console . log ( theContainingFolder )
9599 }
96100 this . close ( ) ;
97101 }
98102 }
103+ createDeleteMsg1 ( activeFile : any , theRelatedSonsFolder : any ) {
104+ // Create the container element
105+ const deleteMsgContainer = document . createElement ( 'div' ) ;
106+
107+ // Create and append child elements
108+ const text1 = document . createElement ( 'span' ) ;
109+ text1 . textContent = 'Press enter ↵ to delete current ' ;
110+ deleteMsgContainer . appendChild ( text1 ) ;
111+
112+ const delNoteNameMsg1 = document . createElement ( 'span' ) ;
113+ delNoteNameMsg1 . classList . add ( 'delNoteNameMsg' ) ;
114+ delNoteNameMsg1 . textContent = activeFile . basename ;
115+ deleteMsgContainer . appendChild ( delNoteNameMsg1 ) ;
116+
117+ const text2 = document . createElement ( 'span' ) ;
118+ text2 . textContent = activeFile . basename . endsWith ( "-cluster" ) ? ' cluster' : ' note' ;
119+ deleteMsgContainer . appendChild ( text2 ) ;
120+
121+ const lineBreak = document . createElement ( 'br' ) ;
122+ deleteMsgContainer . appendChild ( lineBreak ) ;
123+
124+ const text3 = document . createElement ( 'span' ) ;
125+ text3 . textContent = 'with its related[' ;
126+ deleteMsgContainer . appendChild ( text3 ) ;
127+
128+ const delNoteNameMsg2 = document . createElement ( 'span' ) ;
129+ delNoteNameMsg2 . classList . add ( 'delNoteNameMsg' ) ;
130+ delNoteNameMsg2 . textContent = `${ theRelatedSonsFolder . children . length } ` ;
131+ deleteMsgContainer . appendChild ( delNoteNameMsg2 ) ;
132+
133+ const text4 = document . createElement ( 'span' ) ;
134+ text4 . textContent = '] sons in [' + activeFile . basename . toUpperCase ( ) + '] folder' ;
135+ deleteMsgContainer . appendChild ( text4 ) ;
136+
137+ return deleteMsgContainer
138+
139+ }
140+ createDeleteMsg2 ( activeFile : any ) {
141+ // Create the container element
142+ const deleteMsgContainer = document . createElement ( 'div' ) ;
143+
144+ // Create and append child elements
145+ const text1 = document . createElement ( 'span' ) ;
146+ text1 . textContent = 'Press enter ↵ to delete current ' ;
147+ deleteMsgContainer . appendChild ( text1 ) ;
148+
149+ const delNoteNameMsg1 = document . createElement ( 'span' ) ;
150+ delNoteNameMsg1 . classList . add ( 'delNoteNameMsg' ) ;
151+ delNoteNameMsg1 . textContent = activeFile . basename ;
152+ deleteMsgContainer . appendChild ( delNoteNameMsg1 ) ;
99153
154+ const text2 = document . createElement ( 'span' ) ;
155+ text2 . textContent = activeFile . basename . endsWith ( "-cluster" ) ? ' cluster' : ' note' ;
156+ deleteMsgContainer . appendChild ( text2 ) ;
157+
158+ return deleteMsgContainer
159+
160+ }
100161 onOpen ( ) {
101162 this . inputEl . focus ( ) ;
102163 this . inputEl . addEventListener ( "keydown" , this . inputListener ) ;
0 commit comments