mirror of
https://github.com/element-hq/matrix-authentication-service.git
synced 2026-08-14 13:30:10 +00:00
Instead of injecting configuration through inline <script> tags setting window globals, server-rendered templates now carry the configuration as data attributes on the entrypoint mount node, validated client-side with a valibot schema over element.dataset. This removes all inline scripts from the templates, which is friendlier to CSP, and gives the frontend runtime-validated, typed configuration. The DOM read and the wiring now happen in the entrypoints themselves: main.tsx parses the mount node dataset, owns the QueryClient, and injects the basepath and GraphQL endpoint into the router and request layer instead of those being module-scope singletons.
28 lines
919 B
HTML
28 lines
919 B
HTML
{#
|
|
Copyright 2025, 2026 Element Creations Ltd.
|
|
Copyright 2024, 2025 New Vector Ltd.
|
|
Copyright 2023, 2024 The Matrix.org Foundation C.I.C.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE files in the repository root for full details.
|
|
-#}
|
|
|
|
{# Must be kept in sync with frontend/index.html #}
|
|
{% set _ = translator(lang) %}
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="{{ lang }}">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>{{ _("app.name") }}</title>
|
|
{{ include_asset('src/entrypoints/main.tsx') | indent(4) | safe }}
|
|
{# Pre-load the locale data for the current language #}
|
|
{{ include_asset('locales/' ~ lang ~ '.json') | indent(4) | safe }}
|
|
</head>
|
|
|
|
<body>
|
|
<div id="root" data-root="{{ app_config.root }}" data-graphql-endpoint="{{ app_config.graphqlEndpoint }}"></div>
|
|
</body>
|
|
</html>
|