feat(web): mobile-responsive pass on mesh detail + invites list
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Mesh detail page at /dashboard/meshes/[id]: - Header: flex-col → flex-row at sm breakpoint. Live/Invite buttons stretch full-width stacked on mobile (flex-1), auto-width side-by- side from sm up. - "Generate invite link" truncates to "Invite" on mobile (viewport constrained) so the button fits next to Live. - Members + active-invites rows: stack metadata vertically on mobile (flex-col → sm:flex-row), wrap badges inside with flex-wrap so the member display-name + role + revoked badges don't horizontal-scroll. Invites list at /dashboard/invites: - Wrap the table in overflow-x-auto with min-w-[560px] on the table itself. 5-column data-table that genuinely needs horizontal space — don't fake it with card stacking, let the user scroll naturally. Quick-send composer deferred to a follow-up — writes a message to the mesh, which requires a client-side encryption decision (ed25519 keypair in the browser? key derivation from session? plaintext-to- broker and break E2E?). Parked as its own spec. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,8 +41,8 @@ export default async function InvitesPage() {
|
||||
</p>
|
||||
</div>
|
||||
) : (
|
||||
<div className="rounded-lg border">
|
||||
<table className="w-full text-sm">
|
||||
<div className="overflow-x-auto rounded-lg border">
|
||||
<table className="w-full min-w-[560px] text-sm">
|
||||
<thead className="text-muted-foreground border-b text-left text-xs uppercase">
|
||||
<tr>
|
||||
<th className="px-4 py-3 font-medium">Mesh</th>
|
||||
|
||||
Reference in New Issue
Block a user