Add missing Asset\Image focalPoints - #1010
Conversation
|
4d7b860 to
4d7d597
Compare
|
There was a problem hiding this comment.
Pull request overview
Adds focal-point coordinates to GraphQL assets while also regenerating Studio frontend artifacts.
Changes:
- Adds
focalPoints { x, y }to the asset GraphQL schema. - Resolves coordinates from image custom settings.
- Replaces and duplicates generated Studio builds.
Reviewed changes
Copilot reviewed 24 out of 46 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/GraphQL/Resolver/AssetType.php |
Adds focal-point resolver. |
src/GraphQL/AssetType/AssetType.php |
Adds focal-point GraphQL type and field. |
src/Resources/public/studio/build/785fd5b2-5311-4070-9fc4-81949c904ac6/manifest.json |
Removes old build manifest. |
src/Resources/public/studio/build/785fd5b2-5311-4070-9fc4-81949c904ac6/entrypoints.json |
Removes old entrypoints. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/remoteEntry.js.LICENSE.txt |
Adds generated license notices. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/main.9c3ad8a2.js.LICENSE.txt |
Adds generated license notice. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/840.4693a4bb.js.LICENSE.txt |
Adds dependency licenses. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/696.3b1d6da3.js.LICENSE.txt |
Adds generated license notice. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/696.3b1d6da3.js |
Adds generated Studio chunk. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_plugins.c4cf01bd.js.LICENSE.txt |
Adds plugin chunk license. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_plugins.c4cf01bd.js |
Adds generated plugin chunk. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_default_export.87553f32.js.LICENSE.txt |
Adds SDK chunk license. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/async/__federation_expose_default_export.87553f32.js |
Adds generated SDK chunk. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/static/js/109.62a4c31b.js.LICENSE.txt |
Adds React license notices. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/mf-stats.json |
Updates build public path. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/mf-manifest.json |
Updates federation public path. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/manifest.json |
Adds generated asset manifest. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/main.html |
Adds generated HTML entry. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/exposeRemote.js |
Registers generated remote. |
src/Resources/public/studio/build/5d604bbc-722b-4b24-b942-e40c1502ce64/entrypoints.json |
Adds conflicting build entrypoints. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/remoteEntry.js.LICENSE.txt |
Adds generated license notices. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/main.9c3ad8a2.js.LICENSE.txt |
Adds generated license notice. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/840.b584be96.js.LICENSE.txt |
Adds dependency licenses. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js.LICENSE.txt |
Adds generated license notice. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js |
Adds generated Studio chunk. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_plugins.85a68c1a.js.LICENSE.txt |
Adds plugin chunk license. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js.LICENSE.txt |
Adds SDK chunk license. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js |
Adds generated SDK chunk. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/109.62a4c31b.js.LICENSE.txt |
Adds React license notices. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/mf-stats.json |
Adds federation build statistics. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/mf-manifest.json |
Adds federation manifest. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/manifest.json |
Adds generated asset manifest. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/main.html |
Updates generated HTML paths. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/exposeRemote.js |
Updates remote bundle path. |
src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/entrypoints.json |
Adds generated entrypoints. |
Files not reviewed (3)
- src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/499.4aead98c.js: Generated file
- src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_default_export.062d3a0b.js: Generated file
- src/Resources/public/studio/build/04ab6b52-dfd5-4e8c-9d1e-8e789ac66855/static/js/async/__federation_expose_plugins.85a68c1a.js: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
4883d20 to
ba87899
Compare
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Returning an array of nulls made graphql-php's default field resolver
resolve every subfield on its own, so the response contained
{x: null, y: null} instead of null. Cast the custom settings to float
to match the declared Float fields and cover the resolver with tests.
5c8e127 to
29b126a
Compare
|



Adds a new
focalPointsfield to the GraphQLAsset\Imagetype, exposing the image's focal point asxandycoordinates.The values are resolved from the asset's custom settings (
focalPointX/focalPointY) via the newresolveFocalPointsresolver. The field resolves tonullfor non-image assets and for images without a focal point: returning an array of nulls would make graphql-php's default field resolver resolve every subfield on its own, so the response would containfocalPoints: {x: null, y: null}instead offocalPoints: null. The coordinates are cast to float to match the declaredFloatfields.Covered by
tests/GraphQL/Resolver/AssetTypeFocalPointsTest.php.Retargeted from
2026.2to2026.x, since this is a new field rather than a bug fix.