From bf27793b4463f830a5e9afa3c6c6a60931e4bb9f Mon Sep 17 00:00:00 2001 From: officer Date: Wed, 19 Aug 2026 10:11:47 +0000 Subject: [PATCH] put the settings in the panel header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They were floating buttons over the top-right of the iframe, which was wrong twice: they sit on top of Gitea's own controls, and an overlay on an application that fills its whole panel is invisible until you already know it is there. Reported as "I have no access to settings when the iframe is loaded", which is exactly right. The header is the platform's own furniture — always present, never competing with the content underneath — and it is where photos and jellyfin put theirs. It also names where you are, so /gitea/connection reads as "Gitea — connection" rather than looking like the frame failed to load. --- web/GiteaFrame.tsx | 21 ++------------------- web/GiteaViewHeader.tsx | 41 +++++++++++++++++++++++++++++++++++++++++ web/panels.ts | 13 ++++++++++++- 3 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 web/GiteaViewHeader.tsx diff --git a/web/GiteaFrame.tsx b/web/GiteaFrame.tsx index 3d120e6..e8f8f4a 100644 --- a/web/GiteaFrame.tsx +++ b/web/GiteaFrame.tsx @@ -1,8 +1,7 @@ import { useEffect, useState } from 'react'; -import { Link, useParams } from 'react-router'; -import { ExternalLink, Loader2, Plug, TriangleAlert } from 'lucide-react'; +import { useParams } from 'react-router'; +import { Loader2, TriangleAlert } from 'lucide-react'; import { useClient } from 'hooks/useClient'; -import { Button } from '@/components/ui/button'; import { GiteaConnection, type ConnectionState } from './GiteaConnection'; // Gitea's own web interface, rendered in place. @@ -99,22 +98,6 @@ export const GiteaFrame = () => { {/* The escape hatch, and it is not an admission of defeat: the whole point of proxying an app that already has a UI is that its own UI stays available. Anything the frame handles badly, this opens properly. */} -
- {/* A real link, not a button: it is navigation, and it should be cmd-clickable like any other. */} - - -