Add KYC translations, AI button, improve chat, swap homepage sections
Some checks failed
Build Docker Image / build (push) Has been cancelled
Some checks failed
Build Docker Image / build (push) Has been cancelled
- Add missing kycOverview.list translations (en + ru) - Add AI assistant button to navigation (left of globe) - Improve AI chat layout: fixed textarea at bottom, full width - Swap homepage sections: How it works before Who it's for
This commit is contained in:
@@ -21,8 +21,13 @@
|
|||||||
</NuxtLink>
|
</NuxtLink>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Right: Globe + Team + User -->
|
<!-- Right: AI + Globe + Team + User -->
|
||||||
<div class="flex items-center gap-2 ml-auto">
|
<div class="flex items-center gap-2 ml-auto">
|
||||||
|
<!-- AI Assistant button -->
|
||||||
|
<NuxtLink :to="localePath('/clientarea/ai')" class="btn btn-ghost btn-circle">
|
||||||
|
<Icon name="lucide:bot" size="20" />
|
||||||
|
</NuxtLink>
|
||||||
|
|
||||||
<!-- Globe (language/currency) dropdown -->
|
<!-- Globe (language/currency) dropdown -->
|
||||||
<div class="dropdown dropdown-end">
|
<div class="dropdown dropdown-end">
|
||||||
<button tabindex="0" class="btn btn-ghost btn-circle">
|
<button tabindex="0" class="btn btn-ghost btn-circle">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col h-[calc(100vh-4rem)]">
|
<div class="flex flex-col h-[calc(100vh-8rem)]">
|
||||||
<!-- Chat messages area -->
|
<!-- Chat messages area -->
|
||||||
<div ref="chatContainer" class="flex-1 overflow-y-auto p-4 space-y-3">
|
<div ref="chatContainer" class="flex-1 overflow-y-auto p-4 pb-24 space-y-3">
|
||||||
<div
|
<div
|
||||||
v-for="(message, idx) in chat"
|
v-for="(message, idx) in chat"
|
||||||
:key="idx"
|
:key="idx"
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
:class="message.role === 'user' ? 'justify-end' : 'justify-start'"
|
:class="message.role === 'user' ? 'justify-end' : 'justify-start'"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="max-w-[80%] lg:max-w-[60%] rounded-2xl px-4 py-3 shadow-sm"
|
class="max-w-[80%] lg:max-w-[70%] rounded-2xl px-4 py-3 shadow-sm"
|
||||||
:class="message.role === 'user' ? 'bg-primary text-primary-content' : 'bg-base-100 text-base-content'"
|
:class="message.role === 'user' ? 'bg-primary text-primary-content' : 'bg-base-100 text-base-content'"
|
||||||
>
|
>
|
||||||
<Text weight="semibold" class="mb-1">
|
<Text weight="semibold" class="mb-1">
|
||||||
@@ -25,9 +25,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Input area pinned to bottom -->
|
<!-- Input area fixed to bottom -->
|
||||||
<div class="border-t border-base-300 bg-base-100 p-4">
|
<div class="fixed bottom-0 left-0 right-0 border-t border-base-300 bg-base-100 p-4 z-30">
|
||||||
<form class="flex items-end gap-3 max-w-4xl mx-auto" @submit.prevent="handleSend">
|
<form class="flex items-end gap-3 px-4 lg:px-6" @submit.prevent="handleSend">
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<Textarea
|
<Textarea
|
||||||
v-model="input"
|
v-model="input"
|
||||||
|
|||||||
@@ -1,5 +1,36 @@
|
|||||||
<template>
|
<template>
|
||||||
<Stack gap="12">
|
<Stack gap="12">
|
||||||
|
<!-- How it works -->
|
||||||
|
<Section variant="plain">
|
||||||
|
<Stack gap="6" align="center">
|
||||||
|
<Heading :level="2">{{ $t('howto.title') }}</Heading>
|
||||||
|
<Grid :cols="1" :md="3" :gap="6">
|
||||||
|
<Card padding="lg">
|
||||||
|
<Stack gap="3" align="center">
|
||||||
|
<IconCircle tone="primary">🔍</IconCircle>
|
||||||
|
<Heading :level="3" weight="semibold">{{ $t('howto.step1.title') }}</Heading>
|
||||||
|
<Text tone="muted" align="center">{{ $t('howto.step1.description') }}</Text>
|
||||||
|
</Stack>
|
||||||
|
</Card>
|
||||||
|
<Card padding="lg">
|
||||||
|
<Stack gap="3" align="center">
|
||||||
|
<IconCircle tone="primary">🤝</IconCircle>
|
||||||
|
<Heading :level="3" weight="semibold">{{ $t('howto.step2.title') }}</Heading>
|
||||||
|
<Text tone="muted" align="center">{{ $t('howto.step2.description') }}</Text>
|
||||||
|
</Stack>
|
||||||
|
</Card>
|
||||||
|
<Card padding="lg">
|
||||||
|
<Stack gap="3" align="center">
|
||||||
|
<IconCircle tone="primary">⚡</IconCircle>
|
||||||
|
<Heading :level="3" weight="semibold">{{ $t('howto.step3.title') }}</Heading>
|
||||||
|
<Text tone="muted" align="center">{{ $t('howto.step3.description') }}</Text>
|
||||||
|
</Stack>
|
||||||
|
</Card>
|
||||||
|
</Grid>
|
||||||
|
</Stack>
|
||||||
|
</Section>
|
||||||
|
|
||||||
|
<!-- Who it's for -->
|
||||||
<Section variant="plain">
|
<Section variant="plain">
|
||||||
<Stack gap="8" align="center">
|
<Stack gap="8" align="center">
|
||||||
<Heading :level="2">{{ $t('roles.title') }}</Heading>
|
<Heading :level="2">{{ $t('roles.title') }}</Heading>
|
||||||
@@ -53,35 +84,6 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</Stack>
|
</Stack>
|
||||||
</Section>
|
</Section>
|
||||||
|
|
||||||
<Section variant="plain">
|
|
||||||
<Stack gap="6" align="center">
|
|
||||||
<Heading :level="2">{{ $t('howto.title') }}</Heading>
|
|
||||||
<Grid :cols="1" :md="3" :gap="6">
|
|
||||||
<Card padding="lg">
|
|
||||||
<Stack gap="3" align="center">
|
|
||||||
<IconCircle tone="primary">🔍</IconCircle>
|
|
||||||
<Heading :level="3" weight="semibold">{{ $t('howto.step1.title') }}</Heading>
|
|
||||||
<Text tone="muted" align="center">{{ $t('howto.step1.description') }}</Text>
|
|
||||||
</Stack>
|
|
||||||
</Card>
|
|
||||||
<Card padding="lg">
|
|
||||||
<Stack gap="3" align="center">
|
|
||||||
<IconCircle tone="primary">🤝</IconCircle>
|
|
||||||
<Heading :level="3" weight="semibold">{{ $t('howto.step2.title') }}</Heading>
|
|
||||||
<Text tone="muted" align="center">{{ $t('howto.step2.description') }}</Text>
|
|
||||||
</Stack>
|
|
||||||
</Card>
|
|
||||||
<Card padding="lg">
|
|
||||||
<Stack gap="3" align="center">
|
|
||||||
<IconCircle tone="primary">⚡</IconCircle>
|
|
||||||
<Heading :level="3" weight="semibold">{{ $t('howto.step3.title') }}</Heading>
|
|
||||||
<Text tone="muted" align="center">{{ $t('howto.step3.description') }}</Text>
|
|
||||||
</Stack>
|
|
||||||
</Card>
|
|
||||||
</Grid>
|
|
||||||
</Stack>
|
|
||||||
</Section>
|
|
||||||
</Stack>
|
</Stack>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,17 @@
|
|||||||
"header": {
|
"header": {
|
||||||
"title": "KYC verification"
|
"title": "KYC verification"
|
||||||
},
|
},
|
||||||
|
"list": {
|
||||||
|
"title": "My applications",
|
||||||
|
"unnamed": "Unnamed company",
|
||||||
|
"submitted": "Submitted",
|
||||||
|
"inn": "INN",
|
||||||
|
"status": {
|
||||||
|
"approved": "Approved",
|
||||||
|
"rejected": "Rejected",
|
||||||
|
"pending": "Pending"
|
||||||
|
}
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"title": "Error",
|
"title": "Error",
|
||||||
"retry": "Retry",
|
"retry": "Retry",
|
||||||
|
|||||||
@@ -3,6 +3,17 @@
|
|||||||
"header": {
|
"header": {
|
||||||
"title": "Верификация KYC"
|
"title": "Верификация KYC"
|
||||||
},
|
},
|
||||||
|
"list": {
|
||||||
|
"title": "Мои заявки",
|
||||||
|
"unnamed": "Без названия",
|
||||||
|
"submitted": "Подано",
|
||||||
|
"inn": "ИНН",
|
||||||
|
"status": {
|
||||||
|
"approved": "Одобрено",
|
||||||
|
"rejected": "Отклонено",
|
||||||
|
"pending": "На рассмотрении"
|
||||||
|
}
|
||||||
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"title": "Ошибка",
|
"title": "Ошибка",
|
||||||
"retry": "Повторить",
|
"retry": "Повторить",
|
||||||
|
|||||||
Reference in New Issue
Block a user