js(__DIR__.'/js/dist/forum.js') ->css(__DIR__.'/less/forum.less') ->route('/following', 'following'), new Extend\Locales(__DIR__.'/locale'), (new Extend\View) ->namespace('flarum-subscriptions', __DIR__.'/views'), (new Extend\Notification()) ->type(NewPostBlueprint::class, BasicDiscussionSerializer::class, ['alert', 'email']), (new Extend\ApiSerializer(DiscussionSerializer::class)) ->attribute('subscription', function (DiscussionSerializer $serializer, Discussion $discussion) { if ($state = $discussion->state) { return $state->subscription; } }), (new Extend\User()) ->registerPreference('followAfterReply', 'boolval', false), (new Extend\Event()) ->listen(Saving::class, Listener\SaveSubscriptionToDatabase::class) ->listen(Posted::class, Listener\SendNotificationWhenReplyIsPosted::class) ->listen(Hidden::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class) ->listen(Restored::class, Listener\RestoreNotificationWhenPostIsRestored::class) ->listen(Deleted::class, Listener\DeleteNotificationWhenPostIsHiddenOrDeleted::class) ->listen(Posted::class, Listener\FollowAfterReply::class), (new Extend\Filter(DiscussionFilterer::class)) ->addFilter(SubscriptionFilterGambit::class) ->addFilterMutator(HideIgnoredFromAllDiscussionsPage::class), (new Extend\SimpleFlarumSearch(DiscussionSearcher::class)) ->addGambit(SubscriptionFilterGambit::class), ];