Files
webapp/app/pages/clientarea/kyc/russia.vue
Ruslan Bakiev ee7b8d0ee4
Some checks failed
Build Docker Image / build (push) Has been cancelled
Remove default layout, migrate all pages to topnav
- Add layout: 'topnav' to all 27 pages that were using default layout
- Delete app/layouts/default.vue

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 09:44:26 +07:00

95 lines
2.9 KiB
Vue

<template>
<Section variant="plain">
<Stack gap="6">
<Stack gap="2">
<Stack direction="row" gap="2" align="center">
<IconCircle tone="primary">🇷🇺</IconCircle>
<Heading :level="1">{{ t('kycRussia.header.title') }}</Heading>
</Stack>
<Text tone="muted" size="base">
{{ t('kycRussia.header.subtitle') }}
</Text>
</Stack>
<Card v-if="submitting" tone="muted" padding="lg">
<Stack align="center" justify="center" gap="3">
<Spinner />
<Text tone="muted">{{ t('kycRussia.states.submitting') }}</Text>
</Stack>
</Card>
<Alert v-else-if="submitError" variant="error">
<Stack gap="2">
<Heading :level="4" weight="semibold">{{ t('kycRussia.errors.title') }}</Heading>
<Text tone="muted">{{ submitError }}</Text>
</Stack>
</Alert>
<Card v-else-if="submitSuccess" tone="muted" padding="lg">
<Stack gap="2">
<Heading :level="3" weight="semibold">{{ t('kycRussia.success.title') }}</Heading>
<Text tone="muted">
{{ t('kycRussia.success.description') }}
</Text>
<Button :as="'NuxtLink'" to="/clientarea/kyc" variant="outline">
{{ t('kycRussia.success.cta') }}
</Button>
</Stack>
</Card>
<KYCFormRussia v-else @submit="handleSubmit" />
</Stack>
</Section>
</template>
<script setup lang="ts">
import { CreateKycRequestRussiaDocument } from '~/composables/graphql/user/kyc-generated'
definePageMeta({
layout: 'topnav',
middleware: ['auth-oidc']
})
const { mutate } = useGraphQL()
const { t } = useI18n()
const submitting = ref(false)
const submitError = ref<string | null>(null)
const submitSuccess = ref(false)
const handleSubmit = async (formData: any) => {
try {
submitting.value = true
submitError.value = null
const submitData = {
companyName: formData.company_name,
companyFullName: formData.company_full_name,
inn: formData.inn,
kpp: formData.kpp || '',
ogrn: formData.ogrn || '',
address: formData.address,
bankName: formData.bank_name,
bik: formData.bik,
correspondentAccount: formData.correspondent_account || '',
contactPerson: formData.contact_person,
contactEmail: formData.contact_email,
contactPhone: formData.contact_phone,
}
const result = await mutate(CreateKycRequestRussiaDocument, { input: submitData }, 'user', 'kyc')
if (result.createKycRequestRussia?.success) {
submitSuccess.value = true
setTimeout(() => navigateTo('/clientarea/kyc'), 3000)
} else {
throw new Error(t('kycRussia.errors.create_failed'))
}
} catch (err: any) {
submitError.value = err.message || t('kycRussia.errors.submit_failed')
} finally {
submitting.value = false
}
}
</script>