feat(profile): a handle in a studyset opens its person's profile

The summary's first block now reads as a studyset's card: its secondary
title, its title, then by @handle; the blocks' second heading is
Material. A licence holder written as a handle of the instance
(@raisondetredev) reads © raisondetredev, the © standing for the @,
and is a link, apart from a name from elsewhere such as Tae Kim's; it
and the author open their public profile in a sheet: avatar, name,
address, bio and links, as the instance's profiles.byHandle gives them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-14 18:14:04 +02:00
commit 3a328d2bb8
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -12,7 +12,18 @@ class FakeProfileGateway({
/// Handles others have.
final Set<String> taken = const {},
/// Others' profiles, by their handles.
final Map<String, PublicProfile> others = const {},
}) implements ProfileGateway {
@override
Future<PublicProfile?> byHandle(String handle) async {
if (fail case final error?) {
throw error;
}
return others[handle.toLowerCase()];
}
/// When set, every request fails with it.
Exception? fail;