I wanna change default Jetstream components after publishing views (php artisan vendor:publish --tag=jetstream-views
) from resources/views/vendor/jetstream/components for example to resources/views/path/to/jet/comps
You can do this by copying the components from laravel/jetstream and putting them wherever you like within your app.
Then you need to alias the jetstream class with your own version.
What I did was copy all components from
/vendor/laravel/jetstream/src/Http/livewire/
Copied them to
/app/Http/Livewire/
And changed the namespaces in components to
namespace App\Http\Livewire;`
Then open your app/Providers/JetstreamSrviceProvider.php or if you would prefer you can create your own service provider or use AppServiceProvider.php.
Add the following before the class definition but after the namespace definition:
use Illuminate\Foundation\AliasLoader;
Then in the register method add this:
$loader = AliasLoader::getInstance();
$loader->alias('Laravel\Jetstream\Http\Livewire\ApiTokenManager', 'App\Http\Livewire\ApiTokenManager');
$loader->alias('Laravel\Jetstream\Http\Livewire\CreateTeamForm', 'App\Http\Livewire\CreateTeamForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\DeleteTeamForm', 'App\Http\Livewire\DeleteTeamForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\DeleteUserForm', 'App\Http\Livewire\DeleteUserForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\LogoutOtherBrowserSessionsForm', 'App\Http\Livewire\LogoutOtherBrowserSessionsForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\NavigationDropdown', 'App\Http\Livewire\NavigationDropdown');
$loader->alias('Laravel\Jetstream\Http\Livewire\TeamMemberManager', 'App\Http\Livewire\TeamMemberManager');
$loader->alias('Laravel\Jetstream\Http\Livewire\TwoFactorAuthenticationForm', 'App\Http\Livewire\TwoFactorAuthenticationForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\UpdatePasswordForm', 'App\Http\Livewire\UpdatePasswordForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\UpdateProfileInformationForm', 'App\Http\Livewire\UpdateProfileInformationForm');
$loader->alias('Laravel\Jetstream\Http\Livewire\UpdateTeamNameForm', 'App\Http\Livewire\UpdateTeamNameForm');
Then run
composer dump-autoload
You can then open your version of the components and modify the view paths if you prefer or whatever else it is you were looking to do.
I have built a CMS as a package and done exactly this from a package which works well and means we can ship the package with our own views and updated components.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With