fix(nextcloud): NULL parent_id on cross-source-root child folders + spinner
The previous fix NULLed parent_id only for folders within the SourceRoot being deleted, but folder rows under a *different* SourceRoot whose path nests inside this one (e.g. 'Leóns 1st Year' at .../Taco and Muli - 2024 onward/Leóns 1st Year) still pointed into our delete set. folders_parent_id_fkey kept tripping. Widen the UPDATE to NULL parent_id for any folder whose parent_id is in folder_ids, regardless of source_root_id. UI: trash button on a Nextcloud library now swaps to a spinning Loader2 while the delete is in flight (only the row being deleted — others stay as trash icons but disabled). Title updates to flag that a cascade through every photo + folder can take a few seconds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1594,9 +1594,17 @@ function NextcloudIntegrationCard() {
|
||||
variant="ghost"
|
||||
disabled={removeRoot.isPending}
|
||||
onClick={() => removeRoot.mutate(r.id)}
|
||||
title="Remove this library"
|
||||
title={
|
||||
removeRoot.isPending && removeRoot.variables === r.id
|
||||
? 'Removing — cascades through every photo + folder, may take a few seconds'
|
||||
: 'Remove this library'
|
||||
}
|
||||
>
|
||||
<Trash2 className="h-3 w-3" />
|
||||
{removeRoot.isPending && removeRoot.variables === r.id ? (
|
||||
<Loader2 className="h-3 w-3 animate-spin" />
|
||||
) : (
|
||||
<Trash2 className="h-3 w-3" />
|
||||
)}
|
||||
</Button>
|
||||
</li>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user