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
|
|
@ -2707,7 +2707,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @publicProfileIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'How others see you once you publish: the handle they find you by, your name, a few words and links. Nothing here shows until you save it.'**
|
||||
/// **'How others see you once you publish: the handle they find you by, your name, a few words and links. It saves as you write, once you have chosen your handle.'**
|
||||
String get publicProfileIntro;
|
||||
|
||||
/// No description provided for @publicProfileAnonymousHint.
|
||||
|
|
@ -2788,11 +2788,77 @@ abstract class AppLocalizations {
|
|||
/// **'Remove link'**
|
||||
String get publicProfileRemoveLink;
|
||||
|
||||
/// No description provided for @publicProfileSaved.
|
||||
/// No description provided for @publicProfileSaving.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Profile saved.'**
|
||||
String get publicProfileSaved;
|
||||
/// **'Saving…'**
|
||||
String get publicProfileSaving;
|
||||
|
||||
/// No description provided for @publicProfileSavedNow.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Saved'**
|
||||
String get publicProfileSavedNow;
|
||||
|
||||
/// No description provided for @publicProfileHandleChoose.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose a handle'**
|
||||
String get publicProfileHandleChoose;
|
||||
|
||||
/// No description provided for @publicProfileHandleFirst.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose your handle first: your profile is made with it, and saves as you write from then on.'**
|
||||
String get publicProfileHandleFirst;
|
||||
|
||||
/// No description provided for @publicProfileHandleChooseTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose your handle'**
|
||||
String get publicProfileHandleChooseTitle;
|
||||
|
||||
/// No description provided for @publicProfileHandleChangeTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Change your handle'**
|
||||
String get publicProfileHandleChangeTitle;
|
||||
|
||||
/// No description provided for @publicProfileHandleDialogText.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Others find you by your handle. You can change it until you first publish a studyset.'**
|
||||
String get publicProfileHandleDialogText;
|
||||
|
||||
/// No description provided for @publicProfileHandleChecking.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Checking…'**
|
||||
String get publicProfileHandleChecking;
|
||||
|
||||
/// No description provided for @publicProfileHandleFree.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'@{handle} is free'**
|
||||
String publicProfileHandleFree(String handle);
|
||||
|
||||
/// No description provided for @publicProfileHandleYours.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This is your handle'**
|
||||
String get publicProfileHandleYours;
|
||||
|
||||
/// No description provided for @publicProfileHandleConfirmChoose.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Choose'**
|
||||
String get publicProfileHandleConfirmChoose;
|
||||
|
||||
/// No description provided for @publicProfileHandleConfirmChange.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Change'**
|
||||
String get publicProfileHandleConfirmChange;
|
||||
|
||||
/// No description provided for @publicProfileRemove.
|
||||
///
|
||||
|
|
@ -2917,7 +2983,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @publicProfilePictureLater.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save your profile to add a picture.'**
|
||||
/// **'Choose your handle to add a picture.'**
|
||||
String get publicProfilePictureLater;
|
||||
|
||||
/// No description provided for @settingsTitle.
|
||||
|
|
|
|||
Loading…
Reference in a new issue