UNPKG

@oxyhq/services

Version:

Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀

154 lines (153 loc) • 4.68 kB
"use strict"; import { View, Text, StyleSheet } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; import GroupedPillButtons from '../../components/internal/GroupedPillButtons'; import { useI18n } from '../../hooks/useI18n'; import { STEP_INNER_GAP, stepStyles } from '../../styles/spacing'; import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; const RecoverSuccessStep = ({ colors, styles, navigate, allStepData, successMessage }) => { const { t } = useI18n(); const baseStyles = stepStyles; // Extract identifier from previous steps const requestData = allStepData[0] || {}; const { identifier } = requestData; const handleContinueToReset = () => { // Navigate back to SignIn and let host app open its reset flow navigate('SignIn', { showReset: true, identifier }); }; const handleBackToSignIn = () => { navigate('SignIn'); }; return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx(View, { style: [baseStyles.container, baseStyles.sectionSpacing, stylesheet.iconContainer], children: /*#__PURE__*/_jsx(View, { style: [stylesheet.successIcon, { backgroundColor: colors.success + '20' }], children: /*#__PURE__*/_jsx(Ionicons, { name: "checkmark-circle", size: 40, color: colors.success }) }) }), /*#__PURE__*/_jsxs(View, { style: [baseStyles.container, baseStyles.sectionSpacing, baseStyles.header], children: [/*#__PURE__*/_jsx(Text, { style: [styles.modernTitle, baseStyles.title, { color: colors.text, marginBottom: 0, marginTop: 0 }], children: t('recover.title') }), /*#__PURE__*/_jsx(Text, { style: [styles.modernSubtitle, baseStyles.subtitle, { color: colors.secondaryText, marginBottom: 0, marginTop: 0 }], children: successMessage || t('recover.resetSuccess') })] }), /*#__PURE__*/_jsxs(View, { style: [baseStyles.container, baseStyles.sectionSpacing], children: [/*#__PURE__*/_jsxs(View, { style: [stylesheet.infoCard, { backgroundColor: colors.inputBackground, borderColor: colors.border }], children: [/*#__PURE__*/_jsx(Text, { style: [styles.footerText, stylesheet.infoTitle, { color: colors.text }], children: t('recover.whatsNextTitle') || "What's next?" }), /*#__PURE__*/_jsx(Text, { style: [styles.footerText, stylesheet.infoBody, { color: colors.secondaryText }], children: t('recover.whatsNextBody') || 'You can now reset your password or return to sign in with your existing credentials.' })] }), /*#__PURE__*/_jsxs(View, { style: [stylesheet.successBanner, { backgroundColor: colors.success + '10', borderColor: colors.success + '30' }], children: [/*#__PURE__*/_jsx(Ionicons, { name: "shield-checkmark", size: 20, color: colors.success }), /*#__PURE__*/_jsx(Text, { style: [styles.footerText, stylesheet.bannerText, { color: colors.success }], children: successMessage || t('recover.completeSecure') || 'Your account recovery is complete and secure.' })] })] }), /*#__PURE__*/_jsx(View, { style: [baseStyles.container, baseStyles.sectionSpacing, baseStyles.buttonContainer], children: /*#__PURE__*/_jsx(GroupedPillButtons, { buttons: [{ text: t('common.actions.signIn'), onPress: handleBackToSignIn, icon: 'arrow-back', variant: 'transparent' }], colors: colors }) })] }); }; export default RecoverSuccessStep; const stylesheet = StyleSheet.create({ iconContainer: { alignItems: 'center', justifyContent: 'center' }, successIcon: { width: 80, height: 80, borderRadius: 40, alignItems: 'center', justifyContent: 'center' }, infoCard: { padding: STEP_INNER_GAP * 2, borderRadius: 16, borderWidth: 1, marginBottom: STEP_INNER_GAP, gap: STEP_INNER_GAP }, infoTitle: { fontSize: 16, marginBottom: 0 }, infoBody: { fontSize: 14, lineHeight: 20 }, successBanner: { flexDirection: 'row', alignItems: 'center', padding: STEP_INNER_GAP, borderRadius: 8, borderWidth: 1, gap: STEP_INNER_GAP }, bannerText: { flex: 1, fontSize: 14 } }); //# sourceMappingURL=RecoverSuccessStep.js.map