Справочник вьюпортов

Вьюпорты определяют, где UI-компоненты вашего Stripe App отображаются в Stripe Dashboard. Каждый вьюпорт соответствует определённой странице или месту в Dashboard, где приложение может рендерить представление.

Как работают вьюпорты

При объявлении представления в манифесте приложения вы сопоставляете React-компонент с вьюпортом:

{
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
}
]
}
}

Компонент рендерится в панели приложения (боковая панель), когда пользователь переходит на соответствующую страницу Dashboard и открывает ваше приложение.

Глобальные и страничные вьюпорты

Глобальные вьюпорты

Эти вьюпорты доступны на каждой странице Stripe Dashboard:

ID вьюпортаОписание
stripe.dashboard.drawer.defaultПредставление drawer по умолчанию, доступное с любой страницы
stripe.dashboard.home.overviewОбзорная страница Dashboard
stripe.dashboard.settingsСтраница настроек приложения
stripe.dashboard.onboardingПоток онбординга после установки

Tip

Вьюпорт drawer.default выступает в роли запасного варианта. Если пользователь открывает приложение на странице без объявленного вьюпорта, рендерится представление drawer.default.

Страничные вьюпорты

Эти вьюпорты рендерятся только на соответствующей странице Dashboard:

Платежи

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.payment.listСписок платежей/payments,
stripe.dashboard.payment.detailДетали платежа/payments/:idPaymentIntent
stripe.dashboard.charge.detailДетали платежа (legacy)/payments/:idCharge

Покупатели

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.customer.listСписок покупателей/customers,
stripe.dashboard.customer.detailДетали покупателя/customers/:idCustomer

Товары и цены

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.product.listСписок товаров/products,
stripe.dashboard.product.detailДетали товара/products/:idProduct
stripe.dashboard.price.detailДетали цены/prices/:idPrice

Счета

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.invoice.listСписок счетов/invoices,
stripe.dashboard.invoice.detailДетали счёта/invoices/:idInvoice

Подписки

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.subscription.listСписок подписок/subscriptions,
stripe.dashboard.subscription.detailДетали подписки/subscriptions/:idSubscription

Checkout

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.checkout.session.listСписок Checkout Sessions/checkout/sessions,
stripe.dashboard.checkout.session.detailДетали Checkout Session/checkout/sessions/:idCheckoutSession
stripe.dashboard.payment-link.listСписок Payment Links/payment-links,
stripe.dashboard.payment-link.detailДетали Payment Link/payment-links/:idPaymentLink

Connect

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.connect.account.listСписок подключённых аккаунтов/connect/accounts,
stripe.dashboard.connect.account.detailДетали подключённого аккаунта/connect/accounts/:idAccount
stripe.dashboard.transfer.listСписок переводов/connect/transfers,
stripe.dashboard.transfer.detailДетали перевода/connect/transfers/:idTransfer

Биллинг

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.coupon.listСписок купонов/coupons,
stripe.dashboard.coupon.detailДетали купона/coupons/:idCoupon
stripe.dashboard.quote.listСписок предложений/quotes,
stripe.dashboard.quote.detailДетали предложения/quotes/:idQuote

Выплаты

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.payout.listСписок выплат/payouts,
stripe.dashboard.payout.detailДетали выплаты/payouts/:idPayout

Споры

ID вьюпортаСтраницаURLТип объекта
stripe.dashboard.dispute.listСписок споров/disputes,
stripe.dashboard.dispute.detailДетали спора/disputes/:idDispute

Доступ к контексту объекта

Когда приложение рендерится в detail-вьюпорте, оно получает соответствующий объект Stripe как контекст:

import type { ExtensionContextValue } from '@stripe/ui-extension-sdk/context';
const CustomerDetailView = ({ environment }: ExtensionContextValue) => {
const { objectContext } = environment;
// objectContext contains the current Stripe object
const customerId = objectContext?.id; // "cus_xxxxx"
const customerEmail = objectContext?.email;
return (
<Box>
<Inline>Customer: {customerEmail}</Inline>
<Inline>Brevo Sync Status: checking...</Inline>
</Box>
);
};

Контекст List vs Detail

Тип вьюпортаКонтекст объектаСценарий использования
List (например, customer.list)НедоступенАгрегированные данные, сводные представления
Detail (например, customer.detail)Полный объект StripeДанные, действия и интеграции для конкретного объекта

Рекомендуемые вьюпорты для интеграции Tajo Brevo

{
"ui_extension": {
"views": [
{
"viewport": "stripe.dashboard.customer.detail",
"component": "CustomerDetailView"
},
{
"viewport": "stripe.dashboard.customer.list",
"component": "CustomerListView"
},
{
"viewport": "stripe.dashboard.payment.detail",
"component": "PaymentDetailView"
},
{
"viewport": "stripe.dashboard.subscription.detail",
"component": "SubscriptionDetailView"
},
{
"viewport": "stripe.dashboard.home.overview",
"component": "OverviewView"
},
{
"viewport": "stripe.dashboard.drawer.default",
"component": "DrawerView"
},
{
"viewport": "stripe.dashboard.settings",
"component": "SettingsView"
},
{
"viewport": "stripe.dashboard.onboarding",
"component": "OnboardingView"
}
]
}
}
КомпонентНазначение
CustomerDetailViewПоказывает данные контакта Brevo, статус синхронизации и метрики вовлечённости
CustomerListViewПоказывает элементы управления пакетной синхронизацией и статистику
PaymentDetailViewПоказывает, какие события Brevo были вызваны этим платежом
SubscriptionDetailViewПоказывает статус автоматизации Brevo для этой подписки
OverviewViewВиджет на главной странице Dashboard с метриками синхронизации
DrawerViewОбщая панель с быстрыми действиями и обзором статуса
SettingsViewНастройка API-ключа Brevo, параметров синхронизации и маппинга полей
OnboardingViewРуководство для новых пользователей по подключению аккаунта Brevo

Caution

Если в манифесте объявлен несуществующий вьюпорт, загрузка приложения не пройдёт валидацию. Всегда проверяйте ID вьюпортов по этому справочнику.

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI-ассистент

Привет! Спрашивайте меня о документации.

Начните бесплатно с Brevo