mirror of
https://github.com/flarum/framework.git
synced 2025-06-05 23:44:34 +08:00
feat: frontend Model
extender (#3646)
* feat: reintroduce frontend extenders * chore: used `Routes` extender in bundled extensions * chore: used `PostTypes` extender in bundled extensions * chore: `yarn format` * feat: `Model` frontend extender * chore: naming * chore(review): attributes can be nullable or undefined * chore(review): delay extender implementation * chore(review): unnecessary check * chore(review): stay consistent * chore: merge conflicts * chore: unused import * chore: multiline extenders * feat: add Store extender Signed-off-by: Sami Mazouz <sychocouldy@gmail.com>
This commit is contained in:
@ -1,4 +1,16 @@
|
||||
import Extend from 'flarum/common/extenders';
|
||||
import Post from 'flarum/common/models/Post';
|
||||
import FlagsPage from './components/FlagsPage';
|
||||
import Flag from './models/Flag';
|
||||
|
||||
export default [new Extend.Routes().add('flags', '/flags', FlagsPage)];
|
||||
export default [
|
||||
new Extend.Routes() //
|
||||
.add('flags', '/flags', FlagsPage),
|
||||
|
||||
new Extend.Store() //
|
||||
.add('flags', Flag),
|
||||
|
||||
new Extend.Model(Post) //
|
||||
.hasMany<Flag>('flags')
|
||||
.attribute<boolean>('canFlag'),
|
||||
];
|
||||
|
@ -1,8 +1,5 @@
|
||||
import app from 'flarum/forum/app';
|
||||
import Model from 'flarum/common/Model';
|
||||
|
||||
import Flag from './models/Flag';
|
||||
import FlagsPage from './components/FlagsPage';
|
||||
import FlagListState from './states/FlagListState';
|
||||
import addFlagControl from './addFlagControl';
|
||||
import addFlagsDropdown from './addFlagsDropdown';
|
||||
@ -11,11 +8,6 @@ import addFlagsToPosts from './addFlagsToPosts';
|
||||
export { default as extend } from './extend';
|
||||
|
||||
app.initializers.add('flarum-flags', () => {
|
||||
Post.prototype.flags = Model.hasMany<Flag>('flags');
|
||||
Post.prototype.canFlag = Model.attribute<boolean>('canFlag');
|
||||
|
||||
app.store.models.flags = Flag;
|
||||
|
||||
app.flags = new FlagListState(app);
|
||||
|
||||
addFlagControl();
|
||||
@ -26,6 +18,5 @@ app.initializers.add('flarum-flags', () => {
|
||||
// Expose compat API
|
||||
import flagsCompat from './compat';
|
||||
import { compat } from '@flarum/core/forum';
|
||||
import Post from 'flarum/common/models/Post';
|
||||
|
||||
Object.assign(compat, flagsCompat);
|
||||
|
Reference in New Issue
Block a user