From 13213d762169d2e0e4c365708b700a7aada0f359 Mon Sep 17 00:00:00 2001 From: "pouriade.com" Date: Wed, 21 Oct 2026 18:21:48 -0700 Subject: [PATCH] The account menu has a Report an issue link, under Theme, to the project's issues on Tangled, so anyone can leave feedback. It opens in a new tab, marked by the out arrow at the row's end. The URL is hard-coded once at the top of AccountMenu.tsx, where a fork points it at its own tracker. --- CHANGELOG.md | 1 + .../features/auth/components/AccountMenu.tsx | 28 ++++++++++++++++--- .../chat-list/components/ChatList.test.tsx | 8 +++++- specs/web-ui.md | 2 +- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 070364f..7f09e0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ What changed in each release of SCN Chat, for the people who use it, run it, or - `pnpm setup-env` creates `.env` from `.env.example` and fills in fresh `OAUTH_PRIVATE_KEYS` and `SECRET_KEY`, so local setup no longer means copying secrets by hand. Secrets already set are left alone. - The account menu in the sidebar has a Theme row for switching between System, Light, and Dark without opening Settings. It is the same choice as in Preferences, kept on your device. +- The account menu has a Report an issue link to the project's issues on Tangled, for anyone to leave feedback. Forks should point it at their own tracker, in `AccountMenu.tsx`. ### Changed diff --git a/apps/web/src/features/auth/components/AccountMenu.tsx b/apps/web/src/features/auth/components/AccountMenu.tsx index 1624c12..3b593ce 100644 --- a/apps/web/src/features/auth/components/AccountMenu.tsx +++ b/apps/web/src/features/auth/components/AccountMenu.tsx @@ -1,7 +1,14 @@ import { Link } from '@tanstack/react-router' import { type ReactNode, use, useRef, useState } from 'react' import { cn } from '../../../shared/cn.ts' -import { MoreVerticalIcon, SettingsIcon, ShieldIcon, SignOutIcon } from '../../../shared/icons.tsx' +import { + AlertIcon, + ArrowOutIcon, + MoreVerticalIcon, + SettingsIcon, + ShieldIcon, + SignOutIcon, +} from '../../../shared/icons.tsx' import { floating } from '../../../shared/ui/menu.ts' import { Separator } from '../../../shared/ui/Separator.tsx' import { sidebarRow } from '../../../shared/ui/sidebar.ts' @@ -10,6 +17,9 @@ import { MeContext } from '../session.ts' import { AccountCard } from './AccountCard.tsx' import { ThemeSwitch } from './ThemeSwitch.tsx' +/** Where Report an issue goes, the project's issues for every user. A fork points it at its own. */ +const issuesUrl = 'https://tangled.org/sharedcomputer.network/scn-chat/issues' + interface Props { /** A small mark on the avatar's corner, such as a status dot. */ badge: ReactNode @@ -21,9 +31,9 @@ interface Props { /** * Who is signed in, as a button that opens a menu of the caller's status, Settings, Admin for - * admins, the theme between two separators, and Sign out. The menu is a piece of the sidebar lifted - * over it, rising from the account, and reaches past the button by its padding and edge, so its - * rows line up with the sidebar's. + * admins, the theme and Report an issue between two separators, and Sign out. The menu is a piece + * of the sidebar lifted over it, rising from the account, and reaches past the button by its + * padding and edge, so its rows line up with the sidebar's. */ export function AccountMenu(props: Props) { const me = use(MeContext) @@ -62,6 +72,16 @@ export function AccountMenu(props: Props) { )} + setOpen(false)} + className={sidebarRow} + > + Report an issue + +