discourse/app
David Taylor e08a0b509d
DEV: Support `@debounce` decorator in native class syntax (#20521)
The implementation previously generated a descriptor with an `initializer()`, and bound the function to the `this` context of the initializer. In native class syntax, the initializer of a descriptor is only called once, with a `this` context of the constructor, not the instance.

This commit updates the implementation so that it generates the bound function on-demand using a getter. This is the same strategy employed by ember's built-in `@action` decorator.

Unfortunately, this use of a getter means that the `@observes` decorator does not support being directly chained to `@debounce`. It throws the error "`observer must be provided a function or an observer definition`". The workaround is to put the observer on its own function, which then calls the debounced function. Given that we're aiming to reduce our usage of `@observes`, we've accepted the need for this workaround rather than spending the time to patch the implementation of `@observes`.
2023-03-03 11:48:58 +00:00
..
assets DEV: Support `@debounce` decorator in native class syntax (#20521) 2023-03-03 11:48:58 +00:00
controllers DEV: Experimental /filter route to filter through topics (#20494) 2023-03-03 09:46:21 +08:00
helpers DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
jobs UX/DEV: Review queue redesign fixes (#20239) 2023-03-02 16:40:53 +01:00
mailers DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
models UX/DEV: Review queue redesign fixes (#20239) 2023-03-02 16:40:53 +01:00
serializers UX/DEV: Review queue redesign fixes (#20239) 2023-03-02 16:40:53 +01:00
services UX: Skip applying link-type watched words to user custom fields (#20465) 2023-03-01 10:43:34 +08:00
views SECURITY: Show only visible tags in metadata 2023-02-23 17:22:20 +01:00