FIX: HouseAdsChooser `onChange` handling
Having an action named the same as an argument is no longer possible in a classic component. Move the logic to the parent instead.
Followup to 7685ebf396
			
			
This commit is contained in:
		
							parent
							
								
									00298bf01a
								
							
						
					
					
						commit
						11730caf74
					
				|  | @ -22,11 +22,6 @@ export default class HouseAdsChooser extends MultiSelectComponent { | |||
|       .filter(Boolean); | ||||
|   } | ||||
| 
 | ||||
|   // TODO: kept for legacy, remove when Discourse is 2.5
 | ||||
|   mutateValues(values) { | ||||
|     this.set("settingValue", values.join(this.tokenSeparator)); | ||||
|   } | ||||
| 
 | ||||
|   computeValues() { | ||||
|     return this.settingValue.split(this.tokenSeparator).filter(Boolean); | ||||
|   } | ||||
|  | @ -35,10 +30,4 @@ export default class HouseAdsChooser extends MultiSelectComponent { | |||
|   get content() { | ||||
|     return makeArray(this.choices); | ||||
|   } | ||||
| 
 | ||||
|   @action | ||||
|   onChange(value) { | ||||
|     const settingValue = makeArray(value).join(this.tokenSeparator); | ||||
|     this.onChange?.(settingValue); | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| {{house-ads-chooser | ||||
|   settingValue=this.adValue | ||||
|   choices=this.adNames | ||||
|   onChange=(action (mut this.adValue)) | ||||
|   onChange=this.changeAdValue | ||||
| }} | ||||
| <div class="setting-controls"> | ||||
|   {{#if this.changed}} | ||||
|  |  | |||
|  | @ -1,8 +1,16 @@ | |||
| import { action } from "@ember/object"; | ||||
| import { mapBy } from "@ember/object/computed"; | ||||
| import { classNames } from "@ember-decorators/component"; | ||||
| import { makeArray } from "discourse-common/lib/helpers"; | ||||
| import HouseAdsSetting from "discourse/plugins/discourse-adplugin/discourse/components/house-ads-setting"; | ||||
| 
 | ||||
| @classNames("house-ads-setting house-ads-list-setting") | ||||
| export default class HouseAdsListSetting extends HouseAdsSetting { | ||||
|   @mapBy("allAds", "name") adNames; | ||||
| 
 | ||||
|   @action | ||||
|   changeAdValue(value) { | ||||
|     const settingValue = makeArray(value).join("|"); | ||||
|     this.set("adValue", settingValue); | ||||
|   } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue