2424use Symfony \Component \Routing \Attribute \Route ;
2525
2626#[Route('/demos/live-component ' )]
27- class LiveComponentDemoController extends AbstractController
27+ class LiveDemoController extends AbstractController
2828{
2929 #[Route('/ ' , name: 'app_demo_live_component ' )]
3030 public function __invoke (): Response
3131 {
3232 return $ this ->redirectToRoute ('app_demos ' );
3333 }
3434
35- #[Route('/auto-validating-form ' , name: 'app_demo_live_component_auto_validating_form ' )]
36- public function demoAutoValidatingForm (LiveDemoRepository $ liveDemoRepository ): Response
37- {
38- return $ this ->render ('demos/live_component/auto_validating_form.html.twig ' , [
39- 'demo ' => $ liveDemoRepository ->find ('auto-validating-form ' ),
40- ]);
41- }
42-
4335 #[Route('/form-collection-type/{id} ' , name: 'app_demo_live_component_form_collection_type ' , defaults: ['id ' => null ])]
4436 public function demoFormCollectionType (LiveDemoRepository $ liveDemoRepository , Request $ request , TodoListRepository $ todoListRepository , ?TodoList $ todoList = null ): Response
4537 {
@@ -66,14 +58,6 @@ public function demoFormCollectionType(LiveDemoRepository $liveDemoRepository, R
6658 ]);
6759 }
6860
69- #[Route('/dependent-form-fields ' , name: 'app_demo_live_component_dependent_form_fields ' )]
70- public function demoDependentFormFields (LiveDemoRepository $ liveDemoRepository ): Response
71- {
72- return $ this ->render ('demos/live_component/dependent_form_fields.html.twig ' , [
73- 'demo ' => $ liveDemoRepository ->find ('dependent-form-fields ' ),
74- ]);
75- }
76-
7761 #[Route('/voting ' , name: 'app_demo_live_component_voting ' )]
7862 public function demoVoting (LiveDemoRepository $ liveDemoRepository , FoodRepository $ foodRepository ): Response
7963 {
@@ -97,14 +81,6 @@ public function inlineEdit(LiveDemoRepository $liveDemoRepository, FoodRepositor
9781 ]);
9882 }
9983
100- #[Route('/chartjs ' , name: 'app_demo_live_component_chartjs ' )]
101- public function chartJs (LiveDemoRepository $ liveDemoRepository ): Response
102- {
103- return $ this ->render ('demos/live_component/chartjs.html.twig ' , parameters: [
104- 'demo ' => $ liveDemoRepository ->find ('chartjs ' ),
105- ]);
106- }
107-
10884 #[Route('/invoice/{id} ' , name: 'app_demo_live_component_invoice ' , defaults: ['id ' => null ])]
10985 public function invoice (LiveDemoRepository $ liveDemoRepository , ?Invoice $ invoice = null ): Response
11086 {
@@ -116,35 +92,20 @@ public function invoice(LiveDemoRepository $liveDemoRepository, ?Invoice $invoic
11692 ]);
11793 }
11894
95+ #[Route('/{demo} ' , name: 'app_demo_live_component_demo ' )]
96+ #[Route('/auto-validating-form ' , name: 'app_demo_live_component_auto_validating_form ' )]
97+ #[Route('/chartjs ' , name: 'app_demo_live_component_chartjs ' )]
98+ #[Route('/dependent-form-fields ' , name: 'app_demo_live_component_dependent_form_fields ' )]
11999 #[Route('/infinite-scroll ' , name: 'app_demo_live_component_infinite_scroll ' )]
120- public function infiniteScroll (LiveDemoRepository $ liveDemoRepository ): Response
121- {
122- return $ this ->render ('demos/live_component/infinite_scroll.html.twig ' , parameters: [
123- 'demo ' => $ liveDemoRepository ->find ('infinite-scroll ' ),
124- ]);
125- }
126-
127100 #[Route('/infinite-scroll-2 ' , name: 'app_demo_live_component_infinite_scroll_2 ' )]
128- public function infiniteScroll2 (LiveDemoRepository $ liveDemoRepository ): Response
129- {
130- return $ this ->render ('demos/live_component/infinite_scroll_2.html.twig ' , parameters: [
131- 'demo ' => $ liveDemoRepository ->find ('infinite-scroll-2 ' ),
132- ]);
133- }
134-
135101 #[Route('/product-form ' , name: 'app_demo_live_component_product_form ' )]
136- public function productForm (LiveDemoRepository $ liveDemoRepository ): Response
137- {
138- return $ this ->render ('demos/live_component/product_form.html.twig ' , parameters: [
139- 'demo ' => $ liveDemoRepository ->find ('product-form ' ),
140- ]);
141- }
142-
143102 #[Route('/upload ' , name: 'app_demo_live_component_upload ' )]
144- public function uploadFiles (LiveDemoRepository $ liveDemoRepository ): Response
145- {
146- return $ this ->render ('demos/live_component/upload.html.twig ' , parameters: [
147- 'demo ' => $ liveDemoRepository ->find ('upload ' ),
148- ]);
103+ public function demo (
104+ LiveDemoRepository $ liveDemoRepository ,
105+ string $ demo ,
106+ ): Response {
107+ $ demo = $ liveDemoRepository ->find ($ demo );
108+
109+ return $ this ->render ($ demo ->getTemplate (), ['demo ' => $ demo ]);
149110 }
150111}
0 commit comments