{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":378169872,"defaultBranch":"2.x","name":"ux-live-component","ownerLogin":"symfony","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-18T14:07:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/143937?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718170929.0","currentOid":""},"activityList":{"items":[{"before":"10e74754df746a7c8999218f8dadefed86c2466b","after":"29c479836bb8f8efe4902ab6c1c5a22ae708394a","ref":"refs/heads/2.x","pushedAt":"2024-06-11T19:25:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] accept live component Content-Type with suffix","shortMessageHtmlLink":"[LiveComponent] accept live component Content-Type with suffix"}},{"before":"4c975aa9787c8ce1e2438dc53158abfa3623734f","after":"10e74754df746a7c8999218f8dadefed86c2466b","ref":"refs/heads/2.x","pushedAt":"2024-06-06T23:40:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Revert #1694 \"[LiveComponent] set LiveArg value to null if empty string\"","shortMessageHtmlLink":"Revert #1694 \"[LiveComponent] set LiveArg value to null if empty string\""}},{"before":"0b400030c71090324db70910592d0bf2f5cb4283","after":"4c975aa9787c8ce1e2438dc53158abfa3623734f","ref":"refs/heads/2.x","pushedAt":"2024-06-01T17:50:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Remove subtree splits check","shortMessageHtmlLink":"Remove subtree splits check"}},{"before":"b0b0ff754e539143582bb049433c7336adcd2bf3","after":"0b400030c71090324db70910592d0bf2f5cb4283","ref":"refs/heads/2.x","pushedAt":"2024-05-21T16:26:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Add missing closing paranthesis","shortMessageHtmlLink":"Add missing closing paranthesis"}},{"before":"3ca7cb6501562384ddf0c12aac0109b40c139114","after":"b0b0ff754e539143582bb049433c7336adcd2bf3","ref":"refs/heads/2.x","pushedAt":"2024-05-17T15:31:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Fix EscaperRuntime deprecation","shortMessageHtmlLink":"[LiveComponent] Fix EscaperRuntime deprecation"}},{"before":"0c2d906aa7edf550090572f511f8bc1974cee853","after":"3ca7cb6501562384ddf0c12aac0109b40c139114","ref":"refs/heads/2.x","pushedAt":"2024-05-08T14:03:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"feat: add support for testing file uploads in actions","shortMessageHtmlLink":"feat: add support for testing file uploads in actions"}},{"before":"6464333c68eb68864dc958b6c5a9c6a093bb6dc3","after":"0c2d906aa7edf550090572f511f8bc1974cee853","ref":"refs/heads/2.x","pushedAt":"2024-04-30T15:31:28.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"minor #1685 [Live] Add signature overload for on and off methods of component (YummYume)\n\nThis PR was squashed before being merged into the 2.x branch.\n\nDiscussion\n----------\n\n[Live] Add signature overload for on and off methods of component\n\n| Q | A\n| ------------- | ---\n| Bug fix? |no\n| New feature? | no\n| Issues |\n| License | MIT\n\nFollowing some feedback in #1676. This PR only affects TypeScript typing.\n\nProvides automatic typing for the `on` and `off` events of a component, depending on the event's name. Also changes the return type allowed from an event listener to allow passing an asynchronous function. This is a pretty common thing to do (the need to use `await`), but TypeScript/linters will often yell at you for doing so if the event listener does not expect a `Promise` to be returned.\n\n(also fixed a typing issue with `NodeJS.Timer` being used instead of `number`)\n\nCommits\n-------\n\n3c17279a [Live] Add signature overload for on and off methods of component","shortMessageHtmlLink":"minor #1685 [Live] Add signature overload for on and off methods of c…"}},{"before":"dc3ba3aa0a4f28d6ebf7853622b8e9b3ef5c2c72","after":"6464333c68eb68864dc958b6c5a9c6a093bb6dc3","ref":"refs/heads/2.x","pushedAt":"2024-04-30T15:29:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Update index.rst","shortMessageHtmlLink":"Update index.rst"}},{"before":"730a278680db567b759a9453466797a7efcddd5a","after":"dc3ba3aa0a4f28d6ebf7853622b8e9b3ef5c2c72","ref":"refs/heads/2.x","pushedAt":"2024-04-25T14:13:50.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"bug #1694 [LiveComponent] set LiveArg value to null if empty string (jannes-io)\n\nThis PR was squashed before being merged into the 2.x branch.\n\nDiscussion\n----------\n\n[LiveComponent] set LiveArg value to null if empty string\n\nChecks the type to see if the argument is nullable and is not a string, if so, and an empty string is provided, the value will be overwritten to null. This should be backwards compatible since before users were manually casting to string \"null\" in this case.\n\n| Q | A\n| ------------- | ---\n| Bug fix? | kinda?\n| New feature? | kinda?\n| Issues | Fix #1691\n| License | MIT\n\nIncludes type information in the `LiveArg` attribute, this type information is then used in the controller subscriber of `LiveAction` to convert empty strings (`\"`\") to `null`, only when `null` is accepted **and** the types does not allow `string`.\n\nCommits\n-------\n\n538cc61f [LiveComponent] set LiveArg value to null if empty string","shortMessageHtmlLink":"bug #1694 [LiveComponent] set LiveArg value to null if empty string (…"}},{"before":"65947f886b3835a504dd86951b5d07ccc4dcb5e1","after":"730a278680db567b759a9453466797a7efcddd5a","ref":"refs/heads/2.x","pushedAt":"2024-04-25T13:54:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Add a note about render:finished event","shortMessageHtmlLink":"[LiveComponent] Add a note about render:finished event"}},{"before":"da0382e262343b4508c88c1b1e12962b57bf0116","after":"65947f886b3835a504dd86951b5d07ccc4dcb5e1","ref":"refs/heads/2.x","pushedAt":"2024-04-23T13:11:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] hide property-info deprecations in Symfony 7.1","shortMessageHtmlLink":"[LiveComponent] hide property-info deprecations in Symfony 7.1"}},{"before":"b4619c85bba55fe0143ce4e77b92ec4351a51e68","after":"da0382e262343b4508c88c1b1e12962b57bf0116","ref":"refs/heads/2.x","pushedAt":"2024-04-19T16:14:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent][TwigComponent] Allow Twig 3.9","shortMessageHtmlLink":"[LiveComponent][TwigComponent] Allow Twig 3.9"}},{"before":"e62e4333745503530bdc40a5f9eb530a54edbe7b","after":"b4619c85bba55fe0143ce4e77b92ec4351a51e68","ref":"refs/heads/2.x","pushedAt":"2024-04-19T06:37:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"-","shortMessageHtmlLink":"-"}},{"before":"3aff6da74c882347d51ad8124fc3d3c52391a4a5","after":"e62e4333745503530bdc40a5f9eb530a54edbe7b","ref":"refs/heads/2.x","pushedAt":"2024-04-18T20:48:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Auto-close PRs on subtree-splits","shortMessageHtmlLink":"Auto-close PRs on subtree-splits"}},{"before":"37135a2d2d3d532b846d828396c3bc5e542730ba","after":"3aff6da74c882347d51ad8124fc3d3c52391a4a5","ref":"refs/heads/2.x","pushedAt":"2024-04-16T14:30:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"feature #1396 [LiveComponent] Alias URL bound props (squrious)\n\nThis PR was squashed before being merged into the 2.x branch.\n\nDiscussion\n----------\n\n[LiveComponent] Alias URL bound props\n\n| Q | A\n| ------------- | ---\n| Bug fix? | no\n| New feature? | yes\n| Issues | N/A\n| License | MIT\n\nFollowing https://github.com/symfony/ux/pull/1230.\n\nAllow custom parameter names for URL bound props, and mapping specification from Twig templates.\n\n## Usage\n\nFrom PHP definition:\n```php\n#[AsLiveComponent()]\nfinal class MyComponent\n{\n // ...\n\n #[LiveProp(writable: true, url: new QueryMapping(alias: 'q'))\n public ?string $search = null;\n}\n```\n\nFrom templates:\n\n```twig\n{{ component('MyComponent', {\n 'data-live-url-mapping-search': {\n 'alias': 'q'\n }\n })\n}}\n{{ component('MyComponent', { 'data-live-url-mapping-search-alias': 'q' }) }}\n```\n\nHTML syntax also works:\n```twig\n\n\n```\n\n## Result\n\nChanging the value of `search` will update the url to `https://my.domain?q=my+search+string`.\n\nMappings provided in Twig templates are merged into those provided in PHP. Thus, query mappings in PHP act as defaults, and we can override them in templates (e.g. for specific page requirements). So a page with:\n\n```twig\n\n\n```\n\nwill update its URL to `http://my.domain?search=foo&q=bar`.\n\nCommits\n-------\n\n828e34e5 [LiveComponent] Alias URL bound props","shortMessageHtmlLink":"feature #1396 [LiveComponent] Alias URL bound props (squrious)"}},{"before":"225ae6ac76801b8152fafb6135960040bcb2e22a","after":"37135a2d2d3d532b846d828396c3bc5e542730ba","ref":"refs/heads/2.x","pushedAt":"2024-04-09T09:34:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"updated parameter order to match order in the constructor","shortMessageHtmlLink":"updated parameter order to match order in the constructor"}},{"before":"12044f2652d26f8b1339c83e4efdeb0870e7355b","after":"225ae6ac76801b8152fafb6135960040bcb2e22a","ref":"refs/heads/2.x","pushedAt":"2024-04-04T14:46:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"chore: typo","shortMessageHtmlLink":"chore: typo"}},{"before":"282ff937d1d4fb0cd2af8d8554803040d0bf1de7","after":"12044f2652d26f8b1339c83e4efdeb0870e7355b","ref":"refs/heads/2.x","pushedAt":"2024-03-25T21:48:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[CI] Freeze Foundry 1.37\n\nTo keep the tests green on the CI, I suggest we stay on Foundry 1.37\n\nSince 1.38, deprecations are triggered to prepare the 2.0, but they make the CI fail on Autocomplete and LiveComponent\n\nWe'll release the constraint when we can handle the migration :)","shortMessageHtmlLink":"[CI] Freeze Foundry 1.37"}},{"before":"c987524e1af6a763c07eb46ac8618f7a9cc17a77","after":"282ff937d1d4fb0cd2af8d8554803040d0bf1de7","ref":"refs/heads/2.x","pushedAt":"2024-03-23T14:51:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Show component name and id in processRender error","shortMessageHtmlLink":"[LiveComponent] Show component name and id in processRender error"}},{"before":"bc044a38923b05fdfa88635e4b990989c41b178e","after":"c987524e1af6a763c07eb46ac8618f7a9cc17a77","ref":"refs/heads/2.x","pushedAt":"2024-03-22T14:59:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Doc] Clarify collection hydration requirements","shortMessageHtmlLink":"[Doc] Clarify collection hydration requirements"}},{"before":"ec441f176b9f4365cfebbff502e9398a691ef314","after":"bc044a38923b05fdfa88635e4b990989c41b178e","ref":"refs/heads/2.x","pushedAt":"2024-03-22T14:51:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Doc] Added a missing reference in Live Component docs","shortMessageHtmlLink":"[Doc] Added a missing reference in Live Component docs"}},{"before":"3c298084c28a2fde6e4dbf2beb5ead38aaded174","after":"ec441f176b9f4365cfebbff502e9398a691ef314","ref":"refs/heads/2.x","pushedAt":"2024-03-21T01:27:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"bug #1631 [LiveComponent] Fix idiomorph dependency (fix #1567) (smnandre)\n\nThis PR was merged into the 2.x branch.\n\nDiscussion\n----------\n\n[LiveComponent] Fix idiomorph dependency (fix #1567)\n\nCurrent idiomorph dependency does not work for some users with npm\n\nNow it's available as a ES module it should fix the problem\n\nThanks `@pcmmf` for the hand\n\nCommits\n-------\n\nb8076f89 [LiveComponent] Fix idiomorph dependency (fix #1567)","shortMessageHtmlLink":"bug #1631 [LiveComponent] Fix idiomorph dependency (fix #1567) (smnan…"}},{"before":"db103729f0d797bc2aca1d2ff0951a18471a3338","after":"3c298084c28a2fde6e4dbf2beb5ead38aaded174","ref":"refs/heads/2.x","pushedAt":"2024-03-21T01:17:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Site][LiveComponent] cs fixes and cleanup","shortMessageHtmlLink":"[Site][LiveComponent] cs fixes and cleanup"}},{"before":"bda7c0b4ced49194be44458d3422f09f65f05d42","after":"db103729f0d797bc2aca1d2ff0951a18471a3338","ref":"refs/heads/2.x","pushedAt":"2024-03-20T19:17:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"bug #1593 [LiveComponent] Throw exception for typed LiveProps as interfaces (smnandre)\n\nThis PR was merged into the 2.x branch.\n\nDiscussion\n----------\n\n[LiveComponent] Throw exception for typed LiveProps as interfaces\n\n| Q | A\n| ------------- | ---\n| Bug fix? | yes\n| New feature? | no\n| Issues | Fix #1590\n| License | MIT\n\nCheck is done just after the hydration extensions are called, to allow userland implementations.\n\nCommits\n-------\n\n5b2e9a6f [LiveComponent] Throw an exception when trying to de/hydrate prop value typed with an interface","shortMessageHtmlLink":"bug #1593 [LiveComponent] Throw exception for typed LiveProps as inte…"}},{"before":"7bbc05afc0c8ed8795389327e848ff2ddcd9d7a5","after":"bda7c0b4ced49194be44458d3422f09f65f05d42","ref":"refs/heads/2.x","pushedAt":"2024-03-20T19:09:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Doc] Fixed the name of an RST directive","shortMessageHtmlLink":"[Doc] Fixed the name of an RST directive"}},{"before":"c827758a274387cefdb336ea0a9590e8604a32a1","after":"7bbc05afc0c8ed8795389327e848ff2ddcd9d7a5","ref":"refs/heads/2.x","pushedAt":"2024-03-06T18:12:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Lazy load LiveComponent","shortMessageHtmlLink":"[LiveComponent] Lazy load LiveComponent"}},{"before":"ba68b1874ee4bd41d934179f91fcfc4b4d7df9aa","after":"c827758a274387cefdb336ea0a9590e8604a32a1","ref":"refs/heads/2.x","pushedAt":"2024-03-06T17:12:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[TwigComponent] Register safe classes in the configurator","shortMessageHtmlLink":"[TwigComponent] Register safe classes in the configurator"}},{"before":"834f2f285032a8e77217e2becdb8564c2d1922e5","after":"ba68b1874ee4bd41d934179f91fcfc4b4d7df9aa","ref":"refs/heads/2.x","pushedAt":"2024-03-05T17:46:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Fix collections hydration with serializer","shortMessageHtmlLink":"[LiveComponent] Fix collections hydration with serializer"}},{"before":"5b179b11339222c6a8a2fcaf33e07f945d34c4f4","after":"834f2f285032a8e77217e2becdb8564c2d1922e5","ref":"refs/heads/2.x","pushedAt":"2024-03-05T16:56:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[LiveComponent] Add modifier option to LiveProp","shortMessageHtmlLink":"[LiveComponent] Add modifier option to LiveProp"}},{"before":"f683b5070e21109dd3fe5b890a6aea366fbeea81","after":"5b179b11339222c6a8a2fcaf33e07f945d34c4f4","ref":"refs/heads/2.x","pushedAt":"2024-03-05T16:51:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Live] Adding an example of a norender model with a button to trigger the render","shortMessageHtmlLink":"[Live] Adding an example of a norender model with a button to trigger…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYpazCgA","startCursor":null,"endCursor":null}},"title":"Activity · symfony/ux-live-component"}