implement name setting in onboarding

This commit is contained in:
marlon-erler
2026-09-29 19:34:50 +02:00
parent 78567d728f
commit 357fe4a311
3 changed files with 75 additions and 3 deletions
+64 -2
View File
@@ -7,6 +7,7 @@ export function OnboardingModalWrapper(coreViewModel: CoreViewModel, onboardingV
return <div> return <div>
{ConnectionModal(coreViewModel, onboardingViewModel)} {ConnectionModal(coreViewModel, onboardingViewModel)}
{TransferModal(coreViewModel, onboardingViewModel)} {TransferModal(coreViewModel, onboardingViewModel)}
{NameModal(coreViewModel, onboardingViewModel)}
</div> </div>
} }
@@ -62,7 +63,7 @@ function ConnectionModal(coreViewModel: CoreViewModel, onboardingViewModel: Onbo
<div class="flex-row justify-end"> <div class="flex-row justify-end">
<button <button
class="primary width-50" class="primary width-50"
on:click={onboardingViewModel.showTransfer} on:click={onboardingViewModel.showTransferOption}
> >
<span <span
subscribe:innerText={nextButton} subscribe:innerText={nextButton}
@@ -123,7 +124,7 @@ function TransferModal(coreViewModel: CoreViewModel, onboardingViewModel: Onboar
</main> </main>
<div class="flex-row"> <div class="flex-row">
<button <button
class="primary width-50" class="standard width-50"
on:click={onboardingViewModel.open} on:click={onboardingViewModel.open}
> >
{coreViewModel.translations.general.backButton} {coreViewModel.translations.general.backButton}
@@ -132,3 +133,64 @@ function TransferModal(coreViewModel: CoreViewModel, onboardingViewModel: Onboar
</div> </div>
</div> </div>
} }
function NameModal(coreViewModel: CoreViewModel, onboardingViewModel: OnboardingViewModel) {
const isPresented = React.createProxyState(
[onboardingViewModel.presentedModal],
() =>
onboardingViewModel.presentedModal.value ==
OnboardingModals.Name
);
const settingsViewModel = onboardingViewModel.settingsViewModel;
return <div
class="modal"
toggle:open={isPresented}
>
<div>
<main>
<h2>{coreViewModel.translations.onboarding.nameHeadline}</h2>
<p class="secondary width-input">{coreViewModel.translations.onboarding.nameDescription}</p>
<hr></hr>
<label class="tile flex-no">
<span class="icon">account_circle</span>
<div>
<span>
{
coreViewModel.translations.settings.account
.yourNameLabel
}
</span>
<input
placeholder={
coreViewModel.translations.settings.account
.yourNamePlaceholder
}
bind:value={settingsViewModel.usernameInput}
></input>
</div>
</label>
</main>
<div class="flex-row">
<button
class="standard width-50"
on:click={onboardingViewModel.showTransferOption}
>
{coreViewModel.translations.general.backButton}
</button>
<button
class="primary width-50"
on:click={onboardingViewModel.finish}
>
{coreViewModel.translations.general.setButton}
<span class="icon">
arrow_forward
</span>
</button>
</div>
</div>
</div>
}
+5
View File
@@ -124,6 +124,11 @@ const englishTranslations = {
transferDescription: "If you already use the Coordination Tool on another device, copy your identity here. You can use both devices at the same time.", transferDescription: "If you already use the Coordination Tool on another device, copy your identity here. You can use both devices at the same time.",
transferOptionTransfer: "Copy here", transferOptionTransfer: "Copy here",
transferOptionNew: "Set up as new device", transferOptionNew: "Set up as new device",
//
nameHeadline: "Your Name",
nameDescription: "This is what others see when you send messages. You can always change your name in settings.",
}, },
connectionModal: { connectionModal: {
+6 -1
View File
@@ -16,7 +16,7 @@ export default class OnboardingViewModel {
this.presentedModal.value = OnboardingModals.Connection; this.presentedModal.value = OnboardingModals.Connection;
} }
showTransfer = (): void => { showTransferOption = (): void => {
this.presentedModal.value = OnboardingModals.TransferOrNew; this.presentedModal.value = OnboardingModals.TransferOrNew;
} }
@@ -30,6 +30,11 @@ export default class OnboardingViewModel {
this.presentedModal.value = undefined; this.presentedModal.value = undefined;
} }
finish = (): void => {
this.settingsViewModel.setName();
this.presentedModal.value = undefined;
}
// init // init
constructor( constructor(
public connectionViewmodel: ConnectionViewModel, public connectionViewmodel: ConnectionViewModel,