"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
var _sonner = require("../../lib/sonner");
var _components = require("../components");
var _useI18n = require("../hooks/useI18n");
var _useThemeStyles = require("../hooks/useThemeStyles");
var _themeUtils = require("../utils/themeUtils");
var _OxyContext = require("../context/OxyContext");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
const AccountVerificationScreen = ({
  onClose,
  theme,
  goBack
}) => {
  // Use useOxy() hook for OxyContext values
  const {
    oxyServices,
    user
  } = (0, _OxyContext.useOxy)();
  const {
    t
  } = (0, _useI18n.useI18n)();
  const [reason, setReason] = (0, _react.useState)('');
  const [evidence, setEvidence] = (0, _react.useState)('');
  const [isSubmitting, setIsSubmitting] = (0, _react.useState)(false);
  const normalizedTheme = (0, _themeUtils.normalizeTheme)(theme);
  const baseThemeStyles = (0, _useThemeStyles.useThemeStyles)(normalizedTheme);
  const themeStyles = (0, _react.useMemo)(() => ({
    ...baseThemeStyles,
    inputBackgroundColor: baseThemeStyles.isDarkTheme ? '#1C1C1E' : '#F2F2F7',
    inputTextColor: baseThemeStyles.textColor,
    placeholderTextColor: baseThemeStyles.mutedTextColor
  }), [baseThemeStyles]);
  const handleSubmit = (0, _react.useCallback)(async () => {
    if (!reason.trim()) {
      _sonner.toast.error(t('accountVerification.reasonRequired') || 'Please provide a reason for verification');
      return;
    }
    if (!oxyServices) {
      _sonner.toast.error(t('accountVerification.error') || 'Service not available');
      return;
    }
    setIsSubmitting(true);
    try {
      const result = await oxyServices.requestAccountVerification(reason.trim(), evidence.trim() || undefined);
      _reactNative.Alert.alert(t('accountVerification.successTitle') || 'Request Submitted', t('accountVerification.successMessage') || `Your verification request has been submitted. Request ID: ${result.requestId}`, [{
        text: t('accountVerification.ok') || 'OK',
        onPress: () => {
          setReason('');
          setEvidence('');
          goBack?.();
        }
      }]);
    } catch (error) {
      console.error('Failed to submit verification request:', error);
      _sonner.toast.error(error?.message || t('accountVerification.submitError') || 'Failed to submit verification request');
    } finally {
      setIsSubmitting(false);
    }
  }, [reason, evidence, oxyServices, t, goBack]);
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
    style: [styles.container, {
      backgroundColor: themeStyles.backgroundColor
    }],
    children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Header, {
      title: t('accountVerification.title') || 'Account Verification',
      onBack: goBack || onClose,
      variant: "minimal",
      elevation: "subtle"
    }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
      style: styles.content,
      children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Section, {
        isFirst: true,
        children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
          style: [styles.description, {
            color: themeStyles.mutedTextColor
          }],
          children: t('accountVerification.description') || 'Request a verified badge for your account. Verified accounts help establish authenticity and credibility.'
        })
      }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Section, {
        title: t('accountVerification.sections.request') || 'VERIFICATION REQUEST',
        children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
          style: styles.inputGroup,
          children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
            style: [styles.label, {
              color: themeStyles.textColor
            }],
            children: t('accountVerification.reasonLabel') || 'Reason for Verification *'
          }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
            style: [styles.textInput, styles.textArea, {
              backgroundColor: themeStyles.inputBackgroundColor,
              color: themeStyles.inputTextColor,
              borderColor: themeStyles.borderColor
            }],
            value: reason,
            onChangeText: setReason,
            placeholder: t('accountVerification.reasonPlaceholder') || 'Explain why you need a verified badge (e.g., public figure, brand, organization)',
            placeholderTextColor: themeStyles.placeholderTextColor,
            multiline: true,
            numberOfLines: 4,
            textAlignVertical: "top",
            editable: !isSubmitting
          })]
        }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
          style: styles.inputGroup,
          children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
            style: [styles.label, {
              color: themeStyles.textColor
            }],
            children: t('accountVerification.evidenceLabel') || 'Evidence (Optional)'
          }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
            style: [styles.textInput, styles.textArea, {
              backgroundColor: themeStyles.inputBackgroundColor,
              color: themeStyles.inputTextColor,
              borderColor: themeStyles.borderColor
            }],
            value: evidence,
            onChangeText: setEvidence,
            placeholder: t('accountVerification.evidencePlaceholder') || 'Provide any supporting documentation or links (e.g., official website, social media profiles)',
            placeholderTextColor: themeStyles.placeholderTextColor,
            multiline: true,
            numberOfLines: 4,
            textAlignVertical: "top",
            editable: !isSubmitting
          })]
        })]
      }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Section, {
        children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
          style: [styles.submitButton, {
            backgroundColor: isSubmitting ? themeStyles.mutedTextColor : '#007AFF'
          }],
          onPress: handleSubmit,
          disabled: isSubmitting || !reason.trim(),
          children: isSubmitting ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
            color: "#FFFFFF"
          }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
            style: styles.submitButtonText,
            children: t('accountVerification.submit') || 'Submit Request'
          })
        })
      }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Section, {
        children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
          style: [styles.note, {
            color: themeStyles.mutedTextColor
          }],
          children: t('accountVerification.note') || 'Note: Verification requests are reviewed manually and may take several days. We will notify you once your request has been reviewed.'
        })
      })]
    })]
  });
};
const styles = _reactNative.StyleSheet.create({
  container: {
    flex: 1
  },
  content: {
    flex: 1,
    padding: 16
  },
  description: {
    fontSize: 16,
    lineHeight: 24,
    marginBottom: 8
  },
  inputGroup: {
    marginBottom: 24
  },
  label: {
    fontSize: 16,
    fontWeight: '500',
    marginBottom: 8
  },
  textInput: {
    borderWidth: 1,
    borderRadius: 8,
    padding: 12,
    fontSize: 16,
    minHeight: 44
  },
  textArea: {
    minHeight: 100,
    paddingTop: 12
  },
  submitButton: {
    borderRadius: 8,
    padding: 16,
    alignItems: 'center',
    justifyContent: 'center',
    minHeight: 50
  },
  submitButtonText: {
    color: '#FFFFFF',
    fontSize: 16,
    fontWeight: '600'
  },
  note: {
    fontSize: 14,
    lineHeight: 20,
    fontStyle: 'italic'
  }
});
var _default = exports.default = /*#__PURE__*/_react.default.memo(AccountVerificationScreen);
//# sourceMappingURL=AccountVerificationScreen.js.map