| | |
| | | .onEnded { _ in |
| | | guard canReorderTag(tagName) else { return } |
| | | dragItem = nil |
| | | persistTagOrderIfAllowed() |
| | | persistTagOrder() |
| | | } |
| | | } |
| | | |
| | |
| | | let hadDragState = tagNavDragModeActive || tagNavDragItem != nil |
| | | guard hadDragState else { return } |
| | | if tagNavDragModeActive && tagNavReorderDidMove { |
| | | persistTagOrderIfAllowed() |
| | | persistTagOrder() |
| | | } |
| | | tagNavDragModeActive = false |
| | | tagNavDragItem = nil |
| | | tagNavReorderDidMove = false |
| | | } |
| | | |
| | | private func persistTagOrderIfAllowed() { |
| | | guard proEntitlement.isUnlocked else { |
| | | showDropWarning(message: tr("pro.tagSorting.previewToast")) |
| | | return |
| | | } |
| | | guard TagEditor.reorderTags(draggedTagNames) else { |
| | | showDropWarning(message: tr("pro.tagSorting.previewToast")) |
| | | return |
| | | } |
| | | private func persistTagOrder() { |
| | | _ = TagEditor.reorderTags(draggedTagNames) |
| | | } |
| | | |
| | | private func cancelTagNavReorderVisualState() { |