import { dateRuRU, NConfigProvider, NDialogProvider, NLoadingBarProvider, NMessageProvider, NNotificationProvider, ruRU, } from 'naive-ui'; import { type Component, h, type VNode } from 'vue'; import { appTheme } from './plugins/naive'; // Сглаживание скруглений модалок/диалогов (перенесено из onboard). const themeOverrides = { Modal: { peers: { Dialog: { borderRadius: '8px' }, Card: { borderRadius: '8px' }, }, }, Dialog: { borderRadius: '8px' }, }; /** * Единое дерево NaiveUI-провайдеров для клиента и SSR: тема/локаль, загрузка, * диалоги, уведомления, сообщения — оборачивают корневой компонент Inertia. */ export function renderWithProviders( App: Component, props: Record, ): VNode { return h( NConfigProvider, { theme: appTheme, themeOverrides, locale: ruRU, dateLocale: dateRuRU, }, { default: () => h(NLoadingBarProvider, null, { default: () => h(NDialogProvider, null, { default: () => h(NNotificationProvider, null, { default: () => h(NMessageProvider, null, { default: () => h(App, props), }), }), }), }), }, ); }