mirror of
https://github.com/MarijnDoeve/TijdVoorDeTest.git
synced 2026-07-06 15:40:14 +02:00
88cff7f480
* feat: add Sentry User Feedback widget to backoffice (#178) Install @sentry/browser via AssetMapper and initialize the feedback integration on all backoffice pages. The CDN loader script is moved to an overridable block so backoffice pages use the npm SDK without double-initialising Sentry. Sentry is initialised only when a DSN is configured (SENTRY_DSN env var). When a user is logged in their email is pre-filled in the feedback form via Sentry.setUser(); both name and email remain optional so anonymous submissions are supported by simply leaving those fields empty. * feat: add Spotlight sidecar for local Sentry development testing Add the Spotlight container to compose.override.yaml so the feedback widget and error events can be inspected locally without sending anything to Sentry. The JS SDK switches to spotlight mode automatically when no SENTRY_DSN is configured. * feat: route PHP Sentry events to Spotlight in dev Add a when@dev block to sentry.yaml that initialises the PHP Sentry SDK with a placeholder DSN and forwards all events to the Spotlight sidecar over the internal Docker network (http://spotlight:8969/stream). The JS SDK already uses localhost:8969 via spotlight:true when no real SENTRY_DSN is set, which is correct since the browser cannot reach the internal Docker hostname. * fix: use spotlight_url to route PHP dev errors to Spotlight sidecar * fix: manually mount Sentry feedback widget to work around v10 setupOnce guard Sentry v10's setupOnce() is skipped when the integration name is already in the module-level guard array, so autoInject never mounts the widget. Switching to autoInject: false and calling createWidget() directly is reliable and confirmed working in the browser. Also use the tunnel option to forward JS events to the local Spotlight sidecar when no real DSN is configured, and enable SentryBundle in dev so PHP errors are also routed to Spotlight.
45 lines
2.0 KiB
PHP
45 lines
2.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* Returns the importmap for this application.
|
|
*
|
|
* - "path" is a path inside the asset mapper system. Use the
|
|
* "debug:asset-map" command to see the full list of paths.
|
|
*
|
|
* - "entrypoint" (JavaScript only) set to true for any module that will
|
|
* be used as an "entrypoint" (and passed to the importmap() Twig function).
|
|
*
|
|
* The "importmap:require" command can be used to add new entries to this file.
|
|
*
|
|
* @return array<string, array{ // Import name as key, description of the imported file as value
|
|
* path: string, // Logical, relative or absolute path to the file
|
|
* type?: 'js'|'css'|'json', // Type of the file, defaults to 'js'
|
|
* entrypoint?: bool, // Whether the file is an entrypoint, for 'js' only
|
|
* }|array{
|
|
* version: string, // Version of the remote package
|
|
* package_specifier?: string, // Remote "package-name/path" specifier, defaults to the import name
|
|
* type?: 'js'|'css'|'json',
|
|
* entrypoint?: bool,
|
|
* }>
|
|
*/
|
|
return [
|
|
'quiz' => ['path' => './assets/quiz.js', 'entrypoint' => true],
|
|
'backoffice' => ['path' => './assets/backoffice.js', 'entrypoint' => true],
|
|
'@symfony/stimulus-bundle' => ['path' => './vendor/symfony/stimulus-bundle/assets/dist/loader.js'],
|
|
'bootstrap' => ['version' => '5.3.8'],
|
|
'@popperjs/core' => ['version' => '2.11.8'],
|
|
'bootstrap/dist/css/bootstrap.min.css' => ['version' => '5.3.8', 'type' => 'css'],
|
|
'@hotwired/stimulus' => ['version' => '3.2.2'],
|
|
'@hotwired/turbo' => ['version' => '8.0.23'],
|
|
'bootstrap-icons/font/bootstrap-icons.min.css' => ['version' => '1.13.1', 'type' => 'css'],
|
|
'@sentry/browser' => ['version' => '10.63.0'],
|
|
'@sentry/feedback' => ['version' => '10.63.0'],
|
|
'@sentry/core/browser' => ['version' => '10.63.0'],
|
|
'@sentry/browser-utils' => ['version' => '10.63.0'],
|
|
'@sentry/replay' => ['version' => '10.63.0'],
|
|
'@sentry/replay-canvas' => ['version' => '10.63.0'],
|
|
'@sentry/core' => ['version' => '10.63.0'],
|
|
];
|