feat(profile): the profile saves as it is written, the handle chosen in a dialog that checks it
Changing the profile meant a Save button at the foot of the form, which the floating navigation bar half covered on a phone. A field now saves when it is left or Enter is pressed in it, and a link when it is removed; "Saving…" and "Saved" show beside the title. The form keeps what is being written as saves come back, where it used to start afresh and lose focus after each one. The handle is chosen in a dialog that asks the instance while it is typed whether it is free (`ProfileEndpoint.checkHandle`, which tells nothing `byHandle` doesn't), and choosing the first makes the profile with what was written. Saves go one at a time, the latest of those waiting next, and a handle chosen holds for every save after it, so a field's save can't take it back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
b46dfe22b1
commit
959014b4a1
1 changed files with 1062 additions and 152 deletions
|
|
@ -1662,7 +1662,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get publicProfileIntro =>
|
||||
'Wie andere dich sehen, sobald du veröffentlichst: das Handle, unter dem sie dich finden, dein Name, ein paar Worte und Links. Nichts davon ist sichtbar, bevor du es speicherst.';
|
||||
'Wie andere dich sehen, sobald du veröffentlichst: das Handle, unter dem sie dich finden, dein Name, ein paar Worte und Links. Es speichert sich beim Schreiben, sobald du dein Handle gewählt hast.';
|
||||
|
||||
@override
|
||||
String get publicProfileAnonymousHint =>
|
||||
|
|
@ -1710,7 +1710,44 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get publicProfileRemoveLink => 'Link entfernen';
|
||||
|
||||
@override
|
||||
String get publicProfileSaved => 'Profil gespeichert.';
|
||||
String get publicProfileSaving => 'Wird gespeichert …';
|
||||
|
||||
@override
|
||||
String get publicProfileSavedNow => 'Gespeichert';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleChoose => 'Wähle ein Handle';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleFirst =>
|
||||
'Wähle zuerst dein Handle: Damit wird dein Profil angelegt, und ab dann speichert es sich beim Schreiben.';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleChooseTitle => 'Wähle dein Handle';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleChangeTitle => 'Ändere dein Handle';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleDialogText =>
|
||||
'Andere finden dich unter deinem Handle. Du kannst es ändern, bis du zum ersten Mal ein Lernset veröffentlichst.';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleChecking => 'Wird geprüft …';
|
||||
|
||||
@override
|
||||
String publicProfileHandleFree(String handle) {
|
||||
return '@$handle ist frei';
|
||||
}
|
||||
|
||||
@override
|
||||
String get publicProfileHandleYours => 'Das ist dein Handle';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleConfirmChoose => 'Wählen';
|
||||
|
||||
@override
|
||||
String get publicProfileHandleConfirmChange => 'Ändern';
|
||||
|
||||
@override
|
||||
String get publicProfileRemove => 'Profil entfernen';
|
||||
|
|
@ -1782,7 +1819,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get publicProfilePictureLater =>
|
||||
'Speichere dein Profil, um ein Bild hinzuzufügen.';
|
||||
'Wähle dein Handle, um ein Bild hinzuzufügen.';
|
||||
|
||||
@override
|
||||
String get settingsTitle => 'Einstellungen';
|
||||
|
|
|
|||
Loading…
Reference in a new issue