From 39651135b35a4352823df15e68a74db86a0c5b87 Mon Sep 17 00:00:00 2001 From: ordinarthur <@arthurbarre.js@gmail.com> Date: Mon, 20 Apr 2026 16:28:03 +0200 Subject: [PATCH] feat(web): header chip opens Account; drop Home footer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Top-right DeviceChip now navigates to /settings — same destination as the old footer "Account" link, one less piece of chrome. Pricing stays reachable from the Account page via the existing "Compare" link in the Free plan panel. Profile editing moves into the Account section so the capability isn't lost when the chip stops opening the edit modal. Co-Authored-By: Claude Opus 4.7 --- web/src/pages/Home.tsx | 33 ++++++------------------------- web/src/pages/Settings.tsx | 40 +++++++++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 30 deletions(-) diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index ff8e741..49249a2 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -1,4 +1,4 @@ -import { useCallback, useState } from "react"; +import { useCallback } from "react"; import { Link } from "react-router-dom"; import { useSignaling } from "../hooks/useSignaling"; import { useStore } from "../stores/useStore"; @@ -27,7 +27,6 @@ function HomeConnected() { const setError = useStore((s) => s.setError); const { deviceName, avatar } = useProfileStore(); - const [showProfileEdit, setShowProfileEdit] = useState(false); const selectedPeer = peers.find((p) => p.peerId === selectedPeerId) ?? null; @@ -87,11 +86,7 @@ function HomeConnected() { Peer to peer · Encrypted

- setShowProfileEdit(true)} - /> + {error && ( @@ -145,23 +140,8 @@ function HomeConnected() { -
- Nothing transits the server -
- - Pricing → - - - Account → - -
-
- {showProfileEdit && ( - setShowProfileEdit(false)} /> - )} - {incomingRequest && ( void; }) { return ( - + ); } diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx index a13cc72..de7d9de 100644 --- a/web/src/pages/Settings.tsx +++ b/web/src/pages/Settings.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import { Link, useSearchParams } from "react-router-dom"; import { useAuthStore } from "../stores/useAuthStore"; import { useProfileStore } from "../stores/useProfileStore"; +import ProfileSetup from "../components/ProfileSetup"; import { deleteTransfer, listInboxTransfers, @@ -29,6 +30,7 @@ export default function Settings() { const [searchParams] = useSearchParams(); const signedIn = searchParams.get("signed_in") === "1"; const error = searchParams.get("error"); + const [editingProfile, setEditingProfile] = useState(false); useEffect(() => { loadUser(); @@ -79,12 +81,44 @@ export default function Settings() {

Your identity

-
-
Email
-
{user.email}
+
+
+
Email
+
{user.email}
+
+
+ {profile.avatar ? ( + + ) : ( + + ◦ + + )} +
+
+ This device +
+
{profile.deviceName}
+
+ +
+ {editingProfile && ( + setEditingProfile(false)} /> + )} +