Strimoid/Strimoid

View on GitHub
app/Http/ViewComposers/GroupBarComposer.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Strimoid\Http\ViewComposers;

use Illuminate\View\View;

class GroupBarComposer
{
    public function __construct(private readonly \Illuminate\Contracts\Auth\Guard $guard)
    {
    }
    public function compose(View $view): void
    {
        if ($this->guard->check()) {
            $subscriptions = user()->subscribedGroups()
                ->pluck('urlname')
                ->sortBy(null, SORT_NATURAL | SORT_FLAG_CASE);

            $moderatedGroups = user()->moderatedGroups()
                ->pluck('urlname')
                ->sortBy(null, SORT_NATURAL | SORT_FLAG_CASE);

            $observedUsers = user()->followedUsers()
                ->pluck('name')
                ->sortBy(null, SORT_NATURAL | SORT_FLAG_CASE);

            $data = compact('subscriptions', 'moderatedGroups', 'observedUsers');
            $view->with($data);
        }
    }
}