From e3f399c0e8c7273c8db28f37c310495e016b1b89 Mon Sep 17 00:00:00 2001 From: coopops Date: Tue, 9 Jun 2026 18:21:01 +0000 Subject: [PATCH] =?UTF-8?q?fix(desktop):=20=D0=BC=D0=B8=D0=BD=D0=B8=D0=BC?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BE=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D0=BA=20=E2=80=94=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=20WalletCard,=20=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D1=82=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=20=D0=B1=D0=B5=D0=B6=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Карточка «Минимальный неснижаемый остаток» рисовалась вручную сырыми canon-классами .wallet в обход WalletCard, поэтому marquee на неё не распространялся (бежали только программные кошельки). Переведена на — DRY + бегущая строка заголовка/подписи бесплатно. WalletCard: program стал опциональным, добавлен neutral-вариант подсветки иконки (--p-canvas-2/--p-ink-2) вместо акцента программы. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../ui/domain/WalletCard/WalletCard.types.ts | 8 +++-- .../ui/domain/WalletCard/WalletCard.vue | 25 +++++++++++---- .../ui/WalletProgramWidget.vue | 31 +++++++------------ 3 files changed, 37 insertions(+), 27 deletions(-) diff --git a/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.types.ts b/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.types.ts index 40c4e7c92dc..e22dc859c03 100644 --- a/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.types.ts +++ b/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.types.ts @@ -1,8 +1,12 @@ export type WalletProgram = 'blagorost' | 'wallet' | 'generator'; export interface WalletCardProps { - /** Программа — задаёт акцент (--prog-blagorost / --prog-wallet / --prog-generator) */ - program: WalletProgram; + /** Программа — задаёт акцент (--prog-blagorost / --prog-wallet / --prog-generator). + * Можно опустить вместе с `neutral` для непрограммной карточки (напр. мин. остаток). */ + program?: WalletProgram; + /** Нейтральная подсветка иконки (--p-canvas-2 / --p-ink-2) вместо акцента программы. + * Для непрограммных сущностей — минимальный неснижаемый остаток и т.п. */ + neutral?: boolean; /** Заголовок карточки. Default по программе: blagorost → «Благорост», wallet → «Кошелёк», generator → «Генератор» */ title?: string; /** Дополнительная подпись под заголовком */ diff --git a/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.vue b/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.vue index fc6ef70742b..edf77a831e5 100644 --- a/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.vue +++ b/components/desktop/src/shared/ui/domain/WalletCard/WalletCard.vue @@ -69,13 +69,26 @@ const DEFAULT_ICONS: Record = { generator: 'bolt', }; -const resolvedTitle = computed(() => props.title ?? DEFAULT_TITLES[props.program]); -const resolvedIcon = computed(() => props.icon ?? DEFAULT_ICONS[props.program]); +const resolvedTitle = computed( + () => props.title ?? (props.program ? DEFAULT_TITLES[props.program] : ''), +); +const resolvedIcon = computed( + () => props.icon ?? (props.program ? DEFAULT_ICONS[props.program] : 'savings'), +); -const progStyle = computed(() => ({ - '--prog-bg': `var(--prog-${props.program}-soft)`, - '--prog-fg': `var(--prog-${props.program})`, -} as CSSProperties)); +const progStyle = computed(() => { + // Нейтральная карточка (или без программы) — приглушённая иконка без акцента. + if (props.neutral || !props.program) { + return { + '--prog-bg': 'var(--p-canvas-2)', + '--prog-fg': 'var(--p-ink-2)', + } as CSSProperties; + } + return { + '--prog-bg': `var(--prog-${props.program}-soft)`, + '--prog-fg': `var(--prog-${props.program})`, + } as CSSProperties; +}); // Бегущая строка при переполнении. Если заголовок/подпись не влезают в свою // колонку — вместо обрезки «…» текст плавно прокручивается туда-обратно, чтобы diff --git a/components/desktop/src/widgets/Wallet/WalletProgramWidget/ui/WalletProgramWidget.vue b/components/desktop/src/widgets/Wallet/WalletProgramWidget/ui/WalletProgramWidget.vue index e4c1020dabd..545c3ad520a 100644 --- a/components/desktop/src/widgets/Wallet/WalletProgramWidget/ui/WalletProgramWidget.vue +++ b/components/desktop/src/widgets/Wallet/WalletProgramWidget/ui/WalletProgramWidget.vue @@ -1,21 +1,19 @@