import { AccentColor, MainColor } from "@/constants/color-palet"; import { TEXT_SIZE_SMALL } from "@/constants/constans-value"; import { StyleSheet, Text, TouchableOpacity, View } from "react-native"; import { IMenuDrawerItem } from "../_Interface/types"; import { Href } from "expo-router"; type IMenuDrawerItemProps = { icon: React.ReactNode; label: string; value?: string; path?: Href; color?: string; } interface MenuDrawerDynamicGridProps { data: IMenuDrawerItemProps[]; columns?: number; onPressItem?: (item: IMenuDrawerItemProps) => void; } const MenuDrawerDynamicGrid = ({ data, columns = 4, onPressItem }: MenuDrawerDynamicGridProps) => { const numColumns = columns; return ( {data.map((item: IMenuDrawerItemProps, index: any) => ( onPressItem?.(item)} > {item.icon} {/* */} {item.label} ))} ); }; export default MenuDrawerDynamicGrid; const styles = StyleSheet.create({ container: { flexDirection: "row", flexWrap: "wrap", padding: 0, }, itemContainer: { padding: 10, alignItems: "center", }, iconContainer: { width: 56, height: 56, borderRadius: 28, backgroundColor: AccentColor.blue, justifyContent: "center", alignItems: "center", }, label: { marginTop: 10, fontSize: TEXT_SIZE_SMALL, textAlign: "center", color: MainColor.white_gray, }, });