import React, { memo } from "react"; import { View, StyleSheet, TouchableOpacity } from "react-native"; // components import Day from "./Day"; // types import { LOCALE_TYPE } from "./utils/locale"; import { Week_Type } from "./utils/data"; import { Style } from "./index"; interface Props { week: Week_Type; locale: LOCALE_TYPE; handlePress: (date: string) => void; is6Weeks: boolean; disabledBeforeToday?: boolean; disabledAfterToday?: boolean; style?: Style; } function Week({ week, locale, handlePress, is6Weeks, disabledBeforeToday, disabledAfterToday, style, }: Props) { const renderDayNames = () => { const result = []; for (let i = 0; i < 7; i++) { const day = week[i]; const DayComponent = day.date ? ( handlePress(day.date || "")} activeOpacity={1} key={day.date || i} > ) : ( ); result.push(DayComponent); } return result; }; return {renderDayNames()}; } function areEqual(prevProps: Props, nextProps: Props) { if (JSON.stringify(prevProps.week) === JSON.stringify(nextProps.week)) return true; return false; } export default memo(Week, areEqual); const styles = StyleSheet.create({ weekContainer: { flexDirection: "row", alignItems: "center", }, });