Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Duplicate in production ( Laravel Vapor ) #100

Open
cloudstudio opened this issue Dec 19, 2022 · 5 comments
Open

Duplicate in production ( Laravel Vapor ) #100

cloudstudio opened this issue Dec 19, 2022 · 5 comments

Comments

@cloudstudio
Copy link

Hello guys! something weird is happening.

Working super super nice in local as allways, when we deploy in production, using laravel vapor + serverless this is what I see:

Captura de pantalla 2022-12-19 a las 11 14 01

As you see is duplicated 3 times, this happend with all commands.

I try creating custom custom provider, or just using default livewire-ui-spotlight.php

Any ideas?

`<?php

return [

/*
|--------------------------------------------------------------------------
| Shortcuts
|--------------------------------------------------------------------------
|
| Define which shortcuts will activate Spotlight CTRL / CMD + key
| The default is CTRL/CMD + K or CTRL/CMD + /
|
 */

'shortcuts' => [
    'k',
    'slash',
],

/*
|--------------------------------------------------------------------------
| Commands
|--------------------------------------------------------------------------
|
| Define which commands you want to make available in Spotlight.
| Alternatively, you can also register commands in your AppServiceProvider
| with the Spotlight::registerCommand(Logout::class); method.
|
 */

'commands' => [
    App\Spotlight\SearchVehicle::class
],

/*
|--------------------------------------------------------------------------
| Include CSS
|--------------------------------------------------------------------------
|
| Spotlight uses TailwindCSS, if you don't use TailwindCSS you will need
| to set this parameter to true. This includes the modern-normalize css.
|
 */
'include_css' => false,

/*
|--------------------------------------------------------------------------
| Include JS
|--------------------------------------------------------------------------
|
| Spotlight will inject the required Javascript in your blade template.
| If you want to bundle the required Javascript you can set this to false,
| call 'npm install fuse.js' or 'yarn add fuse.js',
| then add `require('vendor/livewire-ui/spotlight/resources/js/spotlight');`
| to your script bundler like webpack.
|
 */
'include_js' => true,

];
`

@PhiloNL
Copy link
Contributor

PhiloNL commented Dec 19, 2022

Any chance you are using Laravel Octane?

@cloudstudio
Copy link
Author

Hello @PhiloNL yes! using Laravel Octane, is because of this ?

@PhiloNL
Copy link
Contributor

PhiloNL commented Dec 20, 2022

Yes, the following is creating a memory leak: https://github.com/wire-elements/spotlight/blob/master/src/Spotlight.php#L20

I think changing it to the following will fix it:

    public static function registerCommand(string $command): void
    {
        tap(new $command, function (SpotlightCommand $command) {
            self::$commands[$command->getId()] = $command;
        });
    }

I'll see if I can test this later this week.

@cloudstudio
Copy link
Author

Let me know if I can help testing it, thanks !

@Krato
Copy link

Krato commented Feb 24, 2023

Any update?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants