/** * @fileoverview Главный React хук для работы с CloudPayments SDK * @description Объединяет все базовые хуки для удобного использования * @author Leonid Molchanov * @since 1.0.0 */ import { useCloudPaymentsEvents, useCloudPaymentsCore } from './core'; import { usePaymentForm } from './payment'; import type { IUseCloudPaymentsOptions, TUseCloudPaymentsReturn, } from './types'; // ============================================================================ // HOOK IMPLEMENTATION // ============================================================================ /** * Главный React хук для работы с CloudPayments SDK * * @description Объединяет все базовые хуки (события, инициализация, платежная форма) * для предоставления единого удобного интерфейса. Автоматически управляет * инициализацией SDK, подпиской на события и очисткой ресурсов. * * @param publicId - Публичный идентификатор мерчанта CloudPayments * @param options - Опциональные настройки хука * @returns Кортеж [функция запуска платежа, состояние хука] * * @example Базовое использование * ```typescript * import { useCloudPayments } from '@lmapp/react-native-cloudpayments'; * * const PaymentScreen = () => { * const [presentPaymentForm, { isLoading, isError, error, transactionId }] = useCloudPayments( * 'pk_test_1234567890abcdef' * ); * * const handlePayment = async () => { * try { * const result = await presentPaymentForm({ * amount: '1000.00', * currency: 'RUB', * description: 'Покупка товара', * email: 'user@example.com' * }); * * if (result.success) { * console.log('Платеж успешен:', result.transactionId); * } * } catch (error) { * console.log('Ошибка:', error.message); * } * }; * * return ( * *