diff --git a/assets/controllers/search-controller.js b/assets/controllers/search-controller.js deleted file mode 100644 index 18de806..0000000 --- a/assets/controllers/search-controller.js +++ /dev/null @@ -1,18 +0,0 @@ -import { Controller } from '@hotwired/stimulus'; -import { getComponent } from '@symfony/ux-live-component'; - -export default class extends Controller { - async initialize() { - this.component = await getComponent(this.element); - - this.component.on('render:finished', (component) => { - const url = new URL(window.location); - if (component.valueStore.data.query) { - url.searchParams.set("query", component.valueStore.data.query); - } else { - url.searchParams.delete("query"); - } - window.history.pushState({}, "", url); - }); - } -} diff --git a/composer.json b/composer.json index f4e4fad..77d324f 100644 --- a/composer.json +++ b/composer.json @@ -35,12 +35,13 @@ "symfony/property-info": "7.0.*", "symfony/runtime": "7.0.*", "symfony/security-bundle": "7.0.*", + "symfony/serializer": "7.0.*", "symfony/string": "7.0.*", "symfony/twig-bundle": "7.0.*", "symfony/ux-chartjs": "*", - "symfony/ux-live-component": "^2.13.3", + "symfony/ux-live-component": "^2.x-dev@dev", "symfony/ux-turbo": "^2.13.2", - "symfony/ux-twig-component": "^2.13.3", + "symfony/ux-twig-component": "^2.x-dev@dev", "symfony/validator": "7.0.*", "symfony/web-link": "7.0.*", "symfony/yaml": "7.0.*", diff --git a/composer.lock b/composer.lock index b5ef0a5..eaf2bcf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "306eb98e3b5a2cf1c2236b402e4c26d1", + "content-hash": "bbd917421ba8e8ff970f884f3894523e", "packages": [ { "name": "composer/semver", @@ -7033,16 +7033,16 @@ }, { "name": "symfony/serializer", - "version": "v7.0.1", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff" + "reference": "dd7d7612f9ae288889caba4bdff79424ce4ffdf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", - "reference": "9c8f67c1444adf6dbcf90fb76da5b2f5c43af0ff", + "url": "https://api.github.com/repos/symfony/serializer/zipball/dd7d7612f9ae288889caba4bdff79424ce4ffdf0", + "reference": "dd7d7612f9ae288889caba4bdff79424ce4ffdf0", "shasum": "" }, "require": { @@ -7108,7 +7108,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.0.1" + "source": "https://github.com/symfony/serializer/tree/v7.0.2" }, "funding": [ { @@ -7124,7 +7124,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T15:10:06+00:00" + "time": "2023-12-29T15:37:40+00:00" }, { "name": "symfony/service-contracts", @@ -7871,22 +7871,21 @@ }, { "name": "symfony/ux-live-component", - "version": "v2.13.3", + "version": "2.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/ux-live-component.git", - "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a" + "reference": "5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/34626e96324c0c414342bcfe60554c2c8f1d331a", - "reference": "34626e96324c0c414342bcfe60554c2c8f1d331a", + "url": "https://api.github.com/repos/symfony/ux-live-component/zipball/5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac", + "reference": "5dd6eb19a8fdb4b8d96483ad2857ed8e5bf6a0ac", "shasum": "" }, "require": { "php": ">=8.1", "symfony/property-access": "^5.4.5|^6.0|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0", "symfony/ux-twig-component": "^2.8", "twig/twig": "^2.14.7|^3.0.4" }, @@ -7908,11 +7907,13 @@ "symfony/phpunit-bridge": "^6.0|^7.0", "symfony/property-info": "^5.4|^6.0|^7.0", "symfony/security-csrf": "^5.4|^6.0|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0", "symfony/twig-bundle": "^5.4|^6.0|^7.0", "symfony/validator": "^5.4|^6.0|^7.0", "zenstruck/browser": "^1.2.0", "zenstruck/foundry": "^1.33" }, + "default-branch": true, "type": "symfony-bundle", "extra": { "thanks": { @@ -7943,7 +7944,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-live-component/tree/v2.13.3" + "source": "https://github.com/symfony/ux-live-component/tree/2.x" }, "funding": [ { @@ -7959,7 +7960,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T20:21:20+00:00" + "time": "2024-01-03T17:17:56+00:00" }, { "name": "symfony/ux-turbo", @@ -8059,16 +8060,16 @@ }, { "name": "symfony/ux-twig-component", - "version": "v2.13.3", + "version": "2.x-dev", "source": { "type": "git", "url": "https://github.com/symfony/ux-twig-component.git", - "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662" + "reference": "5b79dd822f061769d1ba6788c98cf653058b78f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/d2f452990c94b261a926a7f0ee6ad5928b0a0662", - "reference": "d2f452990c94b261a926a7f0ee6ad5928b0a0662", + "url": "https://api.github.com/repos/symfony/ux-twig-component/zipball/5b79dd822f061769d1ba6788c98cf653058b78f7", + "reference": "5b79dd822f061769d1ba6788c98cf653058b78f7", "shasum": "" }, "require": { @@ -8093,6 +8094,7 @@ "symfony/twig-bundle": "^5.4|^6.0|^7.0", "symfony/webpack-encore-bundle": "^1.15" }, + "default-branch": true, "type": "symfony-bundle", "extra": { "thanks": { @@ -8123,7 +8125,7 @@ "twig" ], "support": { - "source": "https://github.com/symfony/ux-twig-component/tree/v2.13.3" + "source": "https://github.com/symfony/ux-twig-component/tree/2.x" }, "funding": [ { @@ -8139,7 +8141,7 @@ "type": "tidelift" } ], - "time": "2023-12-01T20:15:57+00:00" + "time": "2023-12-27T08:30:03+00:00" }, { "name": "symfony/validator", @@ -9906,7 +9908,10 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "symfony/ux-live-component": 20, + "symfony/ux-twig-component": 20 + }, "prefer-stable": true, "prefer-lowest": false, "platform": { diff --git a/src/Twig/Components/SearchComponent.php b/src/Twig/Components/SearchComponent.php index 6372969..819fa61 100644 --- a/src/Twig/Components/SearchComponent.php +++ b/src/Twig/Components/SearchComponent.php @@ -14,7 +14,7 @@ final class SearchComponent { use DefaultActionTrait; - #[LiveProp(writable: true)] + #[LiveProp(writable: true, url: true)] public string $query; public function __construct( diff --git a/templates/components/search.html.twig b/templates/components/search.html.twig index e354700..f0c1be3 100644 --- a/templates/components/search.html.twig +++ b/templates/components/search.html.twig @@ -1,4 +1,4 @@ -