From d40f5e1d8470e09a532c55114daef1c1adac8ad5 Mon Sep 17 00:00:00 2001 From: whekin Date: Wed, 11 Mar 2026 17:57:35 +0400 Subject: [PATCH] feat(miniapp): simplify ready state layout --- apps/miniapp/src/App.tsx | 84 ++++++++++++++++++++++++-------------- apps/miniapp/src/i18n.ts | 5 +++ apps/miniapp/src/index.css | 14 +++++-- 3 files changed, 69 insertions(+), 34 deletions(-) diff --git a/apps/miniapp/src/App.tsx b/apps/miniapp/src/App.tsx index 3c1b312..d2f4e7d 100644 --- a/apps/miniapp/src/App.tsx +++ b/apps/miniapp/src/App.tsx @@ -369,6 +369,7 @@ function App() { const [cycleRentOpen, setCycleRentOpen] = createSignal(false) const [addingUtilityBillOpen, setAddingUtilityBillOpen] = createSignal(false) const [addingPaymentOpen, setAddingPaymentOpen] = createSignal(false) + const [profileEditorOpen, setProfileEditorOpen] = createSignal(false) const [addingPayment, setAddingPayment] = createSignal(false) const [billingForm, setBillingForm] = createSignal({ settlementCurrency: 'GEL' as 'USD' | 'GEL', @@ -3984,6 +3985,13 @@ function App() { {readySession()?.telegramUser.firstName ?? readySession()?.member.displayName}

{copy().overviewBody}

+ +
+ +
+
-
-

{copy().overviewTitle}

-

{readySession()?.member.displayName}

+
+
+ {readySession()?.member.displayName} + {readySession()?.member.isAdmin ? copy().adminTag : copy().residentTag} +

{copy().memberStatusSummary.replace( '{status}', @@ -4017,35 +4027,49 @@ function App() { : copy().memberStatusActive )}

- -
- -
-
- -
-
-
{renderPanel()}
+
+ + {readySession()?.mode === 'demo' ? copy().demoBadge : copy().liveBadge} + + {locale().toUpperCase()} +
+
{renderPanel()}
+ setProfileEditorOpen(false)} + footer={ + + } + > +
+ + setDisplayNameDraft(event.currentTarget.value)} + /> + +
+
diff --git a/apps/miniapp/src/i18n.ts b/apps/miniapp/src/i18n.ts index 6bd0a35..33f314c 100644 --- a/apps/miniapp/src/i18n.ts +++ b/apps/miniapp/src/i18n.ts @@ -181,6 +181,8 @@ export const dictionary = { adminsBody: 'Promote trusted household members so they can manage billing and approvals.', displayNameLabel: 'Household display name', displayNameHint: 'This name appears in balances, ledger entries, and assistant replies.', + manageProfileAction: 'Edit profile', + profileEditorBody: 'Keep your own display name in a focused editor instead of the page body.', memberEditorBody: 'Member billing state and admin controls stay grouped in one editor.', editMemberAction: 'Edit member', saveDisplayName: 'Save name', @@ -402,6 +404,9 @@ export const dictionary = { 'Повышай доверенных участников, чтобы они могли управлять биллингом и подтверждениями.', displayNameLabel: 'Имя в household', displayNameHint: 'Это имя будет видно в балансе, леджере и ответах ассистента.', + manageProfileAction: 'Редактировать профиль', + profileEditorBody: + 'Своё имя для household лучше менять в отдельном окне, а не на самой странице.', memberEditorBody: 'Статус, политика и админские действия по участнику собраны в одном окне.', editMemberAction: 'Редактировать участника', saveDisplayName: 'Сохранить имя', diff --git a/apps/miniapp/src/index.css b/apps/miniapp/src/index.css index 6fade0f..d19c104 100644 --- a/apps/miniapp/src/index.css +++ b/apps/miniapp/src/index.css @@ -279,6 +279,11 @@ button { margin-top: 16px; } +.content-stack { + display: grid; + gap: 12px; +} + .panel { border-radius: 24px; padding: 18px; @@ -312,6 +317,10 @@ button { border-color: rgb(247 179 137 / 0.28); } +.profile-card { + gap: 10px; +} + .balance-item header, .ledger-item header, .activity-row header, @@ -679,6 +688,7 @@ button { .panel-toolbar { display: flex; + flex-wrap: wrap; justify-content: flex-end; margin-top: 12px; } @@ -893,10 +903,6 @@ button { padding: 32px 24px 40px; } - .content-grid { - grid-template-columns: 1.3fr 1fr 1fr; - } - .home-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }