import React from 'react'; import { View, TextStyle } from 'react-native'; import type { AvaiableSeat, BlockedSeat, DriverSeat, SeatLayout, } from '../types'; import { disableButton, seatContainerStyle, viewBorderStyle } from '../styles'; import Seat from './Seat'; export interface SeatContainerProps { blockedSeatImage?: BlockedSeat; disableSeat: boolean; driverImage?: DriverSeat; index: number; isSleeperLayout?: boolean; item: Array; numberTextStyle?: TextStyle; onSeatSelected?: (seat: SeatLayout) => void; seatImage?: AvaiableSeat; } const SeatContainer = ({ blockedSeatImage = undefined, disableSeat, driverImage = undefined, index, isSleeperLayout, item, numberTextStyle, onSeatSelected, seatImage = undefined, }: SeatContainerProps) => { const renderItem = (seat: SeatLayout, itemIndex: number) => { const key = `${seat.id} + ${itemIndex} + ${seat.seatNo} + ${index}`; return ( { onSeatSelected && onSeatSelected(seat); }} /> ); }; return ( {item.map((seat, index) => { return renderItem(seat, index); })} ); }; export default React.memo(SeatContainer);