forked from MapComplete/MapComplete
		
	Fix: fix broken delete button
This commit is contained in:
		
							parent
							
								
									ad1470ecbc
								
							
						
					
					
						commit
						b2a937f4d8
					
				
					 2 changed files with 8 additions and 5 deletions
				
			
		| 
						 | 
					@ -29,6 +29,9 @@ export class And extends TagsFilter {
 | 
				
			||||||
        and: ReadonlyArray<FlatTag | (Or & OptimizedTag)>
 | 
					        and: ReadonlyArray<FlatTag | (Or & OptimizedTag)>
 | 
				
			||||||
    ): TagsFilterClosed & OptimizedTag
 | 
					    ): TagsFilterClosed & OptimizedTag
 | 
				
			||||||
    public static construct(and: ReadonlyArray<TagsFilter>): TagsFilter {
 | 
					    public static construct(and: ReadonlyArray<TagsFilter>): TagsFilter {
 | 
				
			||||||
 | 
					        if (and === undefined) {
 | 
				
			||||||
 | 
					            return undefined
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        if (and.length === 1) {
 | 
					        if (and.length === 1) {
 | 
				
			||||||
            return and[0]
 | 
					            return and[0]
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,6 @@
 | 
				
			||||||
  import { UIEventSource } from "../../../Logic/UIEventSource"
 | 
					  import { UIEventSource } from "../../../Logic/UIEventSource"
 | 
				
			||||||
  import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
 | 
					  import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
 | 
				
			||||||
  import { TagUtils } from "../../../Logic/Tags/TagUtils"
 | 
					  import { TagUtils } from "../../../Logic/Tags/TagUtils"
 | 
				
			||||||
  import type { UploadableTag } from "../../../Logic/Tags/TagUtils"
 | 
					 | 
				
			||||||
  import OsmChangeAction from "../../../Logic/Osm/Actions/OsmChangeAction"
 | 
					  import OsmChangeAction from "../../../Logic/Osm/Actions/OsmChangeAction"
 | 
				
			||||||
  import DeleteAction from "../../../Logic/Osm/Actions/DeleteAction"
 | 
					  import DeleteAction from "../../../Logic/Osm/Actions/DeleteAction"
 | 
				
			||||||
  import ChangeTagAction from "../../../Logic/Osm/Actions/ChangeTagAction"
 | 
					  import ChangeTagAction from "../../../Logic/Osm/Actions/ChangeTagAction"
 | 
				
			||||||
| 
						 | 
					@ -22,6 +21,7 @@
 | 
				
			||||||
  import Trash from "@babeard/svelte-heroicons/mini/Trash"
 | 
					  import Trash from "@babeard/svelte-heroicons/mini/Trash"
 | 
				
			||||||
  import Invalid from "../../../assets/svg/Invalid.svelte"
 | 
					  import Invalid from "../../../assets/svg/Invalid.svelte"
 | 
				
			||||||
  import { And } from "../../../Logic/Tags/And"
 | 
					  import { And } from "../../../Logic/Tags/And"
 | 
				
			||||||
 | 
					  import type { UploadableTag } from "../../../Logic/Tags/TagTypes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  export let state: SpecialVisualizationState
 | 
					  export let state: SpecialVisualizationState
 | 
				
			||||||
  export let deleteConfig: DeleteConfig
 | 
					  export let deleteConfig: DeleteConfig
 | 
				
			||||||
| 
						 | 
					@ -46,9 +46,9 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const t = Translations.t.delete
 | 
					  const t = Translations.t.delete
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let selectedTags: UploadableTag
 | 
					  let selectedTags: UploadableTag[]
 | 
				
			||||||
  let changedProperties = undefined
 | 
					  let changedProperties = undefined
 | 
				
			||||||
  $: changedProperties = TagUtils.changeAsProperties(selectedTags?.asChange(tags?.data ?? {}) ?? [])
 | 
					  $: changedProperties = TagUtils.changeAsProperties(And.construct(selectedTags)?.asChange(tags?.data ?? {}) ?? [])
 | 
				
			||||||
  let isHardDelete = undefined
 | 
					  let isHardDelete = undefined
 | 
				
			||||||
  $: isHardDelete = changedProperties[DeleteConfig.deleteReasonKey] !== undefined
 | 
					  $: isHardDelete = changedProperties[DeleteConfig.deleteReasonKey] !== undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,7 @@
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    currentState = "applying"
 | 
					    currentState = "applying"
 | 
				
			||||||
    let actionToTake: OsmChangeAction
 | 
					    let actionToTake: OsmChangeAction
 | 
				
			||||||
    const changedProperties = TagUtils.changeAsProperties(selectedTags.asChange(tags?.data ?? {}))
 | 
					    const changedProperties = TagUtils.changeAsProperties(And.construct(selectedTags)?.asChange(tags?.data ?? {}))
 | 
				
			||||||
    const deleteReason = changedProperties[DeleteConfig.deleteReasonKey]
 | 
					    const deleteReason = changedProperties[DeleteConfig.deleteReasonKey]
 | 
				
			||||||
    if (deleteReason) {
 | 
					    if (deleteReason) {
 | 
				
			||||||
      let softDeletionTags: UploadableTag
 | 
					      let softDeletionTags: UploadableTag
 | 
				
			||||||
| 
						 | 
					@ -81,7 +81,7 @@
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      // no _delete_reason is given, which implies that this is _not_ a deletion but merely a retagging via a nonDeleteMapping
 | 
					      // no _delete_reason is given, which implies that this is _not_ a deletion but merely a retagging via a nonDeleteMapping
 | 
				
			||||||
      actionToTake = new ChangeTagAction(featureId, selectedTags, tags.data, {
 | 
					      actionToTake = new ChangeTagAction(featureId, new And(selectedTags), tags.data, {
 | 
				
			||||||
        theme: state?.theme?.id ?? "unkown",
 | 
					        theme: state?.theme?.id ?? "unkown",
 | 
				
			||||||
        changeType: "special-delete",
 | 
					        changeType: "special-delete",
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue