@@ -36,20 +36,24 @@ window.addEventListener("mouseup", () => {
3636} ) ;
3737
3838const didClickWindow = ( element ) => {
39+ return ! ! findParentOfClass ( element , "draggable" ) ;
40+ } ;
41+
42+ const findParentOfClass = ( element , classname ) => {
3943 if ( ! element ) {
40- return false ;
44+ return null ;
4145 }
4246
4347 if ( ! element . parentElement ) {
44- return false ;
48+ return null ;
4549 }
4650
4751 const classList = element . classList ;
48- if ( ! classList . contains ( "draggable" ) ) {
49- return didClickWindow ( element . parentElement ) ;
52+ if ( ! classList . contains ( classname ) ) {
53+ return findParentOfClass ( element . parentElement , classname ) ;
5054 }
5155
52- return true ;
56+ return element ;
5357} ;
5458
5559const getSanePositions = ( ) => {
@@ -129,12 +133,27 @@ window.addEventListener("mousedown", desktopClickHandler);
129133
130134// Doubleclick
131135
132- const desktopDoubleclickHandler = ( ) => { } ;
136+ const desktopDoubleclickHandler = ( event ) => {
137+ const target = event . target ;
138+
139+ if ( ! target ) {
140+ return ;
141+ }
142+
143+ const parent = findParentOfClass ( target , "icon" ) ;
144+ const configItem = DESKTOP_CONFIG [ parent . id ] ;
145+
146+ if ( ! configItem ) {
147+ return ;
148+ }
149+
150+ configItem ?. clickHandler ( ) ;
151+ } ;
133152
134- document . addEventListener ( "load" , ( ) => {
153+ window . addEventListener ( "load" , ( ) => {
135154 const desktopIcons = document . querySelectorAll ( ".desktop > .icon" ) ;
136155
137156 desktopIcons . forEach ( ( icon ) => {
138- console . log ( icon ) ;
157+ icon . addEventListener ( "dblclick" , desktopDoubleclickHandler ) ;
139158 } ) ;
140159} ) ;
0 commit comments