import React from "react";
import { View } from "react-native";
import { Button } from "~/components/ui/button";
import { Text } from "~/components/ui/text";
import { LucideChevronLeft } from "lucide-react-native";
// Number Button Component
interface NumberButtonProps {
value: string;
onPress: (value: string) => void;
variant?: "default" | "special";
icon?: React.ReactNode;
size?: "default" | "small";
}
export const NumberButton = ({
value,
onPress,
variant = "default",
icon,
size = "default",
}: NumberButtonProps) => {
const sizeClasses = size === "small" ? "w-20 h-14 mx-2" : "w-24 h-18 mx-2";
const textSize = size === "small" ? "text-xl" : "text-3xl";
const baseClasses = `rounded-3xl ${sizeClasses} flex items-center justify-center active:scale-95 bg-[#111111]`;
return (
);
};
// Number Pad Component
interface NumberPadProps {
onNumberPress: (value: string) => void;
showDecimal?: boolean;
}
export const NumberPad: React.FC = ({
onNumberPress,
showDecimal = true,
}) => {
return (
{/* Row 1: 1, 2, 3 */}
{/* Row 2: 4, 5, 6 */}
{/* Row 3: 7, 8, 9 */}
{/* Row 4: decimal/empty, 0, backspace */}
{showDecimal ? (
) : (
/* Empty space */
)}
}
/>
);
};
// Smaller Number Pad for PIN (with smaller buttons)
export const PinNumberPad: React.FC<{
onNumberPress: (value: string) => void;
}> = ({ onNumberPress }) => {
const baseKeyClasses =
"flex-1 h-14 rounded-3xl bg-[#111111] items-center justify-center";
const renderNumberKey = (label: string) => (
);
return (
{/* Row 1: 1, 2, 3 */}
{renderNumberKey("1")}
{renderNumberKey("2")}
{renderNumberKey("3")}
{/* Row 2: 4, 5, 6 */}
{renderNumberKey("4")}
{renderNumberKey("5")}
{renderNumberKey("6")}
{/* Row 3: 7, 8, 9 */}
{renderNumberKey("7")}
{renderNumberKey("8")}
{renderNumberKey("9")}
{/* Row 4: empty, 0, backspace */}
);
};