import React from 'react';
import { View, StyleSheet, TouchableOpacity } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { Ionicons } from '@expo/vector-icons';
import Text from '@/components/common/Text';
import { COLOR_SCALES } from '@/theme/colors';
import { title, paragraph } from '@/theme/typography';
import { QR_MODULE_INFO } from '@/data/qrModule';

const QrModuleHeader = ({ onBack,  title: customTitle }) => {

  const insets = useSafeAreaInsets();

  const displayTitle = customTitle ?? QR_MODULE_INFO.title;

  return (
    <View style={[styles.container, { paddingTop: insets.top + 8 }]}>
      <View style={styles.row}>
        {onBack ? (
          <TouchableOpacity style={styles.backButton} onPress={onBack} activeOpacity={0.7}>
            <Ionicons name="chevron-back" size={24} color={COLOR_SCALES.white.white} />
          </TouchableOpacity>
        ) : (
          <View style={styles.backPlaceholder} />
        )}
        <View style={styles.titleWrap}>
          <Text style={styles.subtitle}>{QR_MODULE_INFO.headerTitle}</Text>
          <Text style={styles.title}>{displayTitle}</Text>
        </View>
        <View style={styles.backPlaceholder} />
      </View>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: COLOR_SCALES.primary[80],
    paddingBottom: 16,
    paddingHorizontal: 16,
    position: 'relative',
    overflow: 'hidden',
  },
  badge: {
    position: 'absolute',
    top: 12,
    right: -18,
    width: 72,
    height: 72,
    borderRadius: 36,
    backgroundColor: COLOR_SCALES.primary[70],
    alignItems: 'center',
    justifyContent: 'center',
    zIndex: 2,
    paddingHorizontal: 8,
  },
  badgeText: {
    ...paragraph['XS/Bold'],
    color: COLOR_SCALES.white.white,
    textAlign: 'center',
    lineHeight: 14,
  },
  row: {
    flexDirection: 'row',
    alignItems: 'center',
    justifyContent: 'space-between',
  },
  backButton: {
    width: 40,
    height: 40,
    alignItems: 'center',
    justifyContent: 'center',
  },
  backPlaceholder: {
    width: 40,
    height: 40,
  },
  titleWrap: {
    flex: 1,
    alignItems: 'center',
  },
  subtitle: {
    ...paragraph['XS/Medium'],
    color: COLOR_SCALES.primary[20],
    letterSpacing: 0.5,
    marginBottom: 2,
  },
  title: {
    ...title['M/Bold'],
    color: COLOR_SCALES.white.white,
    textAlign: 'center',
    letterSpacing: 1,
  },
});

export default QrModuleHeader;
