build / build (push) Successful in 5m38s
'Social' in the app menu opens /app: a TemplateResponse whose content area is one full-bleed same-origin iframe onto /client/ (frame-src 'self'). The SPA keeps its own document and CSP carve-out; Nextcloud keeps its chrome — the standard wrap for an SPA that must not inherit the shell's DOM/CSP. Also canonicalizes /client -> /client/ (trailing slash): entered without it, Sapper's router sees an empty path and relative resolution escapes into the app. Brock's direction: it must feel like a normal NC app. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
21 lines
739 B
PHP
21 lines
739 B
PHP
<?php
|
|
/**
|
|
* Nextcloud - GoToSocial
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* The Pinnacle client, inside the normal Nextcloud frame: the content area
|
|
* is one full-bleed same-origin iframe onto the /client/ route. The SPA
|
|
* keeps its own document (and its CSP carve-out); Nextcloud keeps its
|
|
* chrome. $_['clientUrl'] comes from ClientController::page().
|
|
*/
|
|
?>
|
|
<div id="gotosocial-client-frame-wrap"
|
|
style="position:absolute; inset:0; overflow:hidden;">
|
|
<iframe id="gotosocial-client-frame"
|
|
src="<?php p($_['clientUrl']); ?>"
|
|
title="<?php p($l->t('GoToSocial client')); ?>"
|
|
style="width:100%; height:100%; border:0; display:block;"></iframe>
|
|
</div>
|