Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.1 kB
2
Indexable
Never
import React, { useState } from 'react';
import { View, Text } from 'react-native';
import CustomPicker from './CustomPicker';

const TicketInfo = ({ seatItem, zoneName }) => {
  // State'lerin tanımlanması
  const [ticketType, setTicketType] = useState('student');
  const [zoneID, setZoneID] = useState(1);
  const [price, setPrice] = useState(0);

  // Fiyat hesaplama fonksiyonu
  const getPrice = (zoneID, ticketType) => {
    if (ticketType === 'student') {
      if (zoneID === 1) {
        return 10.0;
      } else if (zoneID === 2) {
        return 12.0;
      } else {
        return 15.0;
      }
    } else if (ticketType === 'adult') {
      if (zoneID === 1) {
        return 15.0;
      } else if (zoneID === 2) {
        return 18.0;
      } else {
        return 20.0;
      }
    } else if (ticketType === 'senior') {
      if (zoneID === 1) {
        return 12.0;
      } else if (zoneID === 2) {
        return 14.0;
      } else {
        return 17.0;
      }
    } else {
      return 0.0;
    }
  };

  // Bilet tipi ve bölge ID'si seçimlerinin state'lere atanması
  const select = (value, type) => {
    if (type === 'ticketType') {
      setTicketType(value);
    } else if (type === 'zoneID') {
      setZoneID(value);
    }
  };

  // Bilet seçim onayı ve fiyatın hesaplanması
  const selectTable = () => {
    const price = getPrice(zoneID, ticketType);
    setPrice(price);
  };

  // JSX dönüşü
  return (
    <View>
      {/* Bilet tipi seçimi */}
      <CustomPicker
        title="Ticket Type"
        items={['student', 'adult', 'senior']}
        onSelect={(value) => select(value, 'ticketType')}
      />
      {/* Bölge ID'si seçimi */}
      <CustomPicker
        title="Zone ID"
        items={[1, 2, 3]}
        onSelect={(value) => select(value, 'zoneID')}
      />
      {/* Fiyatın gösterilmesi */}
      <Text>Price: {price}</Text>
      {/* Bilet seçim onayı */}
      <Button title="Select" onPress={selectTable} />
    </View>
  );
};

export default TicketInfo;