@@ -11,6 +11,7 @@ import { storage } from '../../storage.ts'
1111
1212interface EditStates {
1313 group : string
14+ folder : string
1415 selected : string [ ]
1516 selectall : boolean
1617 dragging : boolean
@@ -73,8 +74,12 @@ export async function openEditDialog(event: Event) {
7374 const dragging = classNames . some ( ( cl ) => cl . includes ( 'dragging' ) || cl . includes ( 'dropping' ) )
7475 const group = ( container . mini ? linktitle : linkgroup ) ?. dataset . group ?? ''
7576
77+ const domfolder = document . querySelector < HTMLElement > ( '.link-group.in-folder' )
78+ const folder = domfolder ?. dataset ?. folder ?? ''
79+
7680 editStates = {
7781 group,
82+ folder,
7883 selectall,
7984 container,
8085 dragging,
@@ -313,7 +318,7 @@ queueMicrotask(() => {
313318
314319function submitChanges ( event : SubmitEvent ) {
315320 const change = event . submitter ?. id
316- const { container, target, group, selected, selectall } = editStates
321+ const { container, target, group, folder , selected, selectall } = editStates
317322
318323 if ( change === 'edit-apply' ) {
319324 applyLinkChanges ( 'button' )
@@ -338,32 +343,47 @@ function submitChanges(event: SubmitEvent) {
338343 }
339344
340345 if ( change === 'edit-add' ) {
341- if ( target . title ) {
346+ if ( container . folder ) {
342347 quickLinks ( undefined , {
343- addGroups : [ { title : domtitle . value } ] ,
348+ addLinks : [ {
349+ group : folder ,
350+ title : domtitle . value ,
351+ url : domurl . value ,
352+ } ] ,
344353 } )
345- } //
346- else if ( selectall ) {
354+ } else if ( target . title ) {
347355 quickLinks ( undefined , {
348- addFolder : { ids : selected , group : group } ,
356+ addGroups : [ {
357+ title : domtitle . value ,
358+ } ] ,
349359 } )
360+ } else if ( selectall ) {
350361 document . dispatchEvent ( new Event ( 'remove-select-all' ) )
351- } //
352- else if ( container . group ) {
353362 quickLinks ( undefined , {
354- addLinks : [ { group, title : domtitle . value , url : domurl . value } ] ,
363+ addFolder : {
364+ ids : selected ,
365+ group : group ,
366+ } ,
367+ } )
368+ } else if ( container . group ) {
369+ quickLinks ( undefined , {
370+ addLinks : [ {
371+ group,
372+ title : domtitle . value ,
373+ url : domurl . value ,
374+ } ] ,
355375 } )
356376 }
357377 }
358378
359379 if ( change === 'edit-unfolder' ) {
380+ document . dispatchEvent ( new Event ( 'remove-select-all' ) )
360381 quickLinks ( undefined , {
361382 moveOutFolder : {
362383 ids : editStates . selected ,
363384 group : editStates . group ,
364385 } ,
365386 } )
366- document . dispatchEvent ( new Event ( 'remove-select-all' ) )
367387 }
368388
369389 if ( change === 'edit-pin' ) {
@@ -390,13 +410,36 @@ function applyLinkChanges(origin: 'inputs' | 'button') {
390410 }
391411
392412 if ( editStates . target . title ) {
393- quickLinks ( undefined , { groupTitle : { old : domeditlink . dataset . group ?? '' , new : domtitle . value } } )
413+ quickLinks ( undefined , {
414+ groupTitle : {
415+ old : domeditlink . dataset . group ?? '' ,
416+ new : domtitle . value ,
417+ } ,
418+ } )
419+ closeEditDialog ( )
420+ return
421+ }
422+
423+ if ( editStates . container . folder && domurl . value ) {
424+ quickLinks ( undefined , {
425+ addLinks : [ {
426+ group : editStates . folder ,
427+ title : domtitle . value ,
428+ url : domurl . value ,
429+ } ] ,
430+ } )
394431 closeEditDialog ( )
395432 return
396433 }
397434
398435 if ( editStates . container . group && ! editStates . target . link && ! editStates . target . folder ) {
399- quickLinks ( undefined , { addLinks : [ { group : editStates . group , title : domtitle . value , url : domurl . value } ] } )
436+ quickLinks ( undefined , {
437+ addLinks : [ {
438+ group : editStates . group ,
439+ title : domtitle . value ,
440+ url : domurl . value ,
441+ } ] ,
442+ } )
400443 closeEditDialog ( )
401444 return
402445 }
0 commit comments