Skip to content

Commit 04aa2f4

Browse files
committed
Fix broken new links in folders (victrme#613)
1 parent 93856fc commit 04aa2f4

File tree

4 files changed

+59
-24
lines changed

4 files changed

+59
-24
lines changed

src/scripts/features/links/edit.ts

Lines changed: 55 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { storage } from '../../storage.ts'
1111

1212
interface 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

314319
function 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
}

src/scripts/features/links/folders.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ async function closeFolder() {
9292
}
9393
}
9494

95-
async function changeToTab() {
95+
function changeToTab() {
9696
domlinkblocks.classList.toggle('with-groups', data.linkgroups.on)
97-
await initblocks(data)
97+
initblocks(data)
9898
}
9999

100100
function show() {

src/scripts/features/links/index.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,6 @@ export async function linksUpdate(update: LinksUpdate) {
446446
}
447447

448448
function linkSubmission(args: SubmitLink | SubmitFolder, data: Sync): Sync {
449-
const folderid = domlinkblocks.dataset.folderid
450449
const type = args.type
451450
let newlinks: Link[] = []
452451

@@ -471,19 +470,14 @@ function linkSubmission(args: SubmitLink | SubmitFolder, data: Sync): Sync {
471470

472471
// Adds parent if missing from link validation
473472
for (const link of newlinks) {
474-
const addsFromFolder = folderid && !link.folder
475473
const noParents = link.parent === undefined
476474
const { selected, synced } = data.linkgroups
477475

478-
if (addsFromFolder) {
479-
link.parent = folderid
480-
} //
481-
else if (noParents && synced.includes(selected)) {
476+
if (noParents && synced.includes(selected)) {
482477
link.parent = ''
483478
data.linkgroups.selected = ''
484479
initGroups(data)
485-
} //
486-
else if (noParents) {
480+
} else if (noParents) {
487481
link.parent = selected
488482
}
489483

src/scripts/storage.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,6 @@ async function localGet(keys?: string | string[]): Promise<Local> {
259259
}
260260
}
261261

262-
console.log(result)
263-
264262
return result as unknown as Local
265263
}
266264
}

0 commit comments

Comments
 (0)