Skip to content

Commit 8d30bd5

Browse files
authored
Enable starting Stimulus app yourself (#253)
2 parents 94b9ccc + 363a70f commit 8d30bd5

File tree

17 files changed

+113
-14
lines changed

17 files changed

+113
-14
lines changed

docs/getting-started.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,81 @@ Now, it's your turn!
6060
<figure><img src=".gitbook/assets/admin-dashboard.png" alt="Admin dashboard overview"></figure>
6161
6262
</div>
63+
64+
### Using AssetMapper
65+
66+
To prevent duplicate Ajax calls, disable the auto-initialized Stimulus app and Symfony UX stylesheets from the `sylius/bootstrap-admin-ui` package, so you can take control of Stimulus initialization in your own code.
67+
68+
#### Disabling Stimulus app & Symfony UX stylesheets from third party package
69+
70+
First, you need to disable the Stimulus App started by the `sylius/bootstrap-admin-ui` package.
71+
72+
{% tabs %}
73+
{% tab title="YAML" %}
74+
{% code lineNumbers="true" %}
75+
```yaml
76+
# config/packages/sylius_bootstrap_admin_ui.yaml
77+
# ...
78+
sylius_twig_hooks:
79+
hooks:
80+
# ...
81+
# Disabling Symfony UX stylesheets
82+
'sylius_admin.base#stylesheets':
83+
symfony_ux:
84+
enabled: false
85+
86+
# Disabling Stimulus App
87+
'sylius_admin.base#javascripts':
88+
symfony_ux:
89+
enabled: false
90+
```
91+
{% endcode %}
92+
{% endtab %}
93+
94+
{% tab title="PHP" %}
95+
{% code title="config/packages/sylius_bootstrap_admin_ui.php" lineNumbers="true" %}
96+
```php
97+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
98+
99+
return static function (ContainerConfigurator $containerConfigurator): void {
100+
// ...
101+
102+
$containerConfigurator->extension('sylius_twig_hooks', [
103+
'hooks' => [
104+
'sylius_admin.base#stylesheets' => [
105+
// Disabling Symfony UX stylesheets
106+
'symfony_ux' => [
107+
'enabled' => false,
108+
],
109+
],
110+
111+
'sylius_admin.base#javascripts' => [
112+
// Disabling Stimulus App
113+
'symfony_ux' => [
114+
'enabled' => false,
115+
],
116+
],
117+
],
118+
]);
119+
};
120+
```
121+
{% endcode %}
122+
{% endtab %}
123+
{% endtabs %}
124+
125+
#### Starting Stimulus App
126+
127+
```js
128+
// assets/bootstrap.js
129+
import { startStimulusApp } from '@symfony/stimulus-bundle';
130+
131+
const app = startStimulusApp();
132+
// register any custom, 3rd party controllers here
133+
// app.register('some_controller_name', SomeImportedController);
134+
```
135+
136+
```js
137+
// assets/app.js
138+
import './bootstrap.js';
139+
// ...
140+
```

src/BootstrapAdminUi/assets/entrypoint.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
import './styles/main.scss';
1111

12-
import './app';
13-
1412
import './scripts/bulk-delete';
1513
import './scripts/check-all';
1614
import './scripts/menu-search';
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,10 @@
88
*/
99

1010
import {startStimulusApp} from '@symfony/stimulus-bridge';
11-
import LiveController from '@symfony/ux-live-component';
12-
import '@symfony/ux-live-component/styles/live.css';
1311

1412
// Registers Stimulus controllers from controllers.json and in the controllers/ directory
15-
export const app = startStimulusApp(require.context(
13+
export const symfony_ux = startStimulusApp(require.context(
1614
'@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
1715
true,
1816
/\.[jt]sx?$/
1917
));
20-
21-
app.register('live', LiveController);

src/BootstrapAdminUi/config/app/twig_hooks/layout.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,23 @@
2121
'template' => '@SyliusBootstrapAdminUi/shared/layout/title.html.twig',
2222
],
2323
],
24+
2425
'sylius_admin.base#stylesheets' => [
2526
'styles' => [
2627
'template' => '@SyliusBootstrapAdminUi/shared/layout/stylesheets.html.twig',
2728
],
29+
'symfony_ux' => [
30+
'template' => '@SyliusBootstrapAdminUi/shared/layout/symfony_ux_styles.html.twig',
31+
],
2832
],
33+
2934
'sylius_admin.base#javascripts' => [
3035
'javascripts' => [
3136
'template' => '@SyliusBootstrapAdminUi/shared/layout/javascripts.html.twig',
3237
],
38+
'symfony_ux' => [
39+
'template' => '@SyliusBootstrapAdminUi/shared/layout/symfony_ux_scripts.html.twig',
40+
],
3341
],
3442
],
3543
]);

src/BootstrapAdminUi/public/app.css

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/BootstrapAdminUi/public/app.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/BootstrapAdminUi/public/app.js.LICENSE.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,3 @@
1414
*
1515
* Date: 2023-08-28T13:37Z
1616
*/
17-
18-
/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */
19-
20-
/*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) */

src/BootstrapAdminUi/public/app.rtl.css

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/BootstrapAdminUi/public/entrypoints.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@
88
"js": [
99
"./app.js"
1010
]
11+
},
12+
"symfony_ux": {
13+
"css": [
14+
"./symfony_ux.css",
15+
"./symfony_ux.rtl.css"
16+
],
17+
"js": [
18+
"./symfony_ux.js"
19+
]
1120
}
1221
}
1322
}

src/BootstrapAdminUi/public/manifest.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"bundles/SyliusBootstrapAdminUi/app.css": "./app.css",
33
"bundles/SyliusBootstrapAdminUi/app.js": "./app.js",
4+
"bundles/SyliusBootstrapAdminUi/symfony_ux.css": "./symfony_ux.css",
5+
"bundles/SyliusBootstrapAdminUi/symfony_ux.js": "./symfony_ux.js",
46
"bundles/SyliusBootstrapAdminUi/fonts/fa-solid-900.svg": "./fonts/fa-solid-900.7a8b4f130182d19a2d7c67d80c090397.svg",
57
"bundles/SyliusBootstrapAdminUi/fonts/Inter-VariableFont_slnt,wght.ttf": "./fonts/Inter-VariableFont_slnt,wght.853e0197.ttf",
68
"bundles/SyliusBootstrapAdminUi/fonts/fa-brands-400.svg": "./fonts/fa-brands-400.2f517e09eb2ca6650ff5bec5a95157ab.svg",

0 commit comments

Comments
 (0)