* FIx broken post/discussion soft delete
Before the Model typescript rewrite, `pushAttributes` supported including relationship objects, which is hacky but incorrect behavior. With the rewrite, this functionality was broken.
This PR deprecates the functionality, adds a deprecated BC layer with a debug warning, and removes instances of incorrect usage.
* Update js/src/common/Model.ts
Co-authored-by: David Wheatley <hi@davwheat.dev>
* Update js/src/common/Model.ts
Co-authored-by: David Wheatley <hi@davwheat.dev>
* chore: format
Co-authored-by: David Wheatley <hi@davwheat.dev>
We need to specify a unique key for each modal so that the modals are fully destroyed and recreated. For instance, this fixes the signup modal being empty with OAuth register flows.
Fixes https://discuss.flarum.org/d/29596-make-tag-hero-visible/8.
If a user has just switched from one tag to another, they want to see the entire new discussion list, and information about which tag that discussion list corresponds to. There's no good reason to not display the hero header when switching tags.
If there are no search sources, HTML for the Search component won't be rendered, so trying to attach listeners to it will likely error.
In this PR, we don't attach such listeners/logic if there are no sources. We also stop asserting that sources is defined to help avoid other similar issues in the future.
* fix: breaking change in search component's public api
* fix: add setter
* feat: add deprecation warning helper
This reduces bundle size as a result of deprecation warning in our JS, as well as maintaining a consistent format across warnings.
* feat: fire deprecation warning on usage of `Search.state`
* chore: use consistent deprecation warning across core
* fix: `/pull` not `/issue`
* chore: format
* fix: replace throw with debug warning to fix breaking change
* Add link back to PR in warning
* fix: add missing `return null` for `!allowUnregistered` code path
* Clean up message -- move more info to PR comment
* Add setTimeout to delay call debug warning call until after `app.forum` is defined
* Add backticks around data type
Fixes https://github.com/flarum/core/issues/3169#issuecomment-979470794
- Restore wrapping `scope.render` results in a table cell tag. This was accidentially introduced in 924815b6e1, and caused the issue linked above
- Rename the `SettingDropdown` attr `key` to `setting` in order to avoid naming clashes with Mithril vnode keys. `key` still works, but is deprecated.
https://github.com/flarum/core/pull/3176 accidentially stopped adding a `key` attribute to wrappers of non-vnode inputs. This resulted in "all or no vnodes must have keys" errors.