zips-react-native-sdk-test
Version:
Lightweight ZIPS Payment Gateway SDK for React Native - Complete payment solution with card payments, wallet payments (AfrMoney & ZApp), netbanking, and native UI design
1,157 lines (803 loc) • 62.9 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.3.9] - 2025-08-21
### 🔄 Redeployment & Quality Assurance
#### Redeployed
- **Package Integrity**: Fresh deployment to ensure all components are properly distributed
- **Build Verification**: Complete rebuild and repackaging of all components
- **Registry Sync**: Fresh npm registry deployment for improved reliability
- **TypeScript Compilation**: Verified all TypeScript compilations and type definitions
#### Validated
- **Component Exports**: Confirmed all component exports are functioning correctly
- **Type Definitions**: Validated all TypeScript types and interfaces
- **Asset Bundling**: Ensured all assets and dependencies are correctly bundled
- **Cross-Platform Support**: Verified compatibility across target platforms
#### Technical
- **Build Process**: Enhanced build process for better reliability
- **Package Structure**: Optimized package structure and file organization
- **Dependency Management**: Enhanced dependency management and bundling
- **Distribution Quality**: Improved package distribution and download stability
## [2.3.8] - 2025-08-21
### 🔧 Enhanced Account Verification Flow
#### Enhanced
- **BankAccountInput Component**: Improved account verification workflow and user experience
- **Account Details Display**: Added conditional rendering for verified account information
- **Button Logic**: Smart button states based on account verification status
- **Flow Optimization**: Better handling of account verification and progression
#### Improved
- **User Experience**: Clearer flow progression between account input and verification
- **Account State Management**: Better handling of verified vs unverified account states
- **Visual Feedback**: Enhanced display of account information when available
- **Flow Control**: Improved navigation logic based on account verification status
#### Technical
- **Conditional Rendering**: Smart UI updates based on account verification state
- **State Management**: Better integration between account input and verification flows
- **Component Logic**: Enhanced button and flow logic for different account states
- **OTPVerification Simplification**: Streamlined OTP component structure
## [2.3.7] - 2025-08-21
### 🔧 UI Polish & Component Refinements
#### Enhanced
- **PaymentMethodSelection Component**: Improved grid layout and styling consistency
- **WalletSelection Component**: Refined wallet selection and interaction patterns
- **NetBanking Component**: Enhanced bank selection grid and responsive behavior
#### Improved
- **Grid Layouts**: Better spacing and alignment across all selection components
- **Visual Consistency**: Unified design language across payment method, wallet, and bank selection
- **User Experience**: Enhanced touch interactions and visual feedback
- **Responsive Design**: Better adaptation to different screen sizes and layouts
#### Technical
- **Component Optimization**: Performance improvements and code refinements
- **Style Consistency**: Unified styling patterns across selection components
- **Layout Calculations**: Improved width calculations and grid responsiveness
- **Code Quality**: Enhanced component structure and maintainability
## [2.3.6] - 2025-08-21
### 🎨 Enhanced Wallet Selection UI
#### Added
- **2-Column Grid Layout**: Redesigned WalletSelection component with modern 2-column grid layout
- **Remote Image Support**: Smart logo handling for both HTTP URLs and fallback text/emoji logos
- **Professional Card Design**: Card-style layout with shadows, rounded corners, and proper spacing
- **Responsive Design**: Dynamic width calculation that adapts to different screen sizes
#### Enhanced
- **Visual Design**: Modern card-based layout similar to NetBanking component styling
- **User Experience**: Clear selection states with blue borders and scale effects
- **Logo Container**: Dedicated 64x64 logo containers with subtle backgrounds and borders
- **Typography**: Improved text hierarchy with proper sizing for names and descriptions
#### Improved
- **Touch Feedback**: Enhanced interaction with activeOpacity and proper touch targets
- **Status Indicators**: Clear selected checkmarks and "Coming Soon" badges positioning
- **Layout Structure**: Professional container with light gray background and rounded corners
- **Spacing Consistency**: Proper margins, padding, and grid spacing throughout
#### Technical
- **Dimensions API**: Dynamic width calculations for responsive 2-column layout
- **Conditional Rendering**: Smart logo rendering for URLs vs text/emoji fallbacks
- **Style Consistency**: Unified design language matching other payment components
- **Performance**: Optimized rendering with proper key props and efficient layouts
## [2.3.5] - 2025-08-20
### 🔧 Enhanced Error Handling & UX Improvements
#### Enhanced
- **BankAccountInput Component**: Improved error handling and user feedback
- **Mutation Error Handling**: Better integration with TanStack Query mutation states
- **Server Error Display**: Enhanced error messaging showing server response details
- **Loading States**: Improved loading state management using mutation pending state
#### Improved
- **Error Messages**: More informative error messages from server responses
- **User Experience**: Better feedback during account verification process
- **Error Logging**: Enhanced error logging with detailed server response data
- **State Management**: Better integration with mutation loading and error states
#### Technical
- **TanStack Query Integration**: Improved usage of mutation error and pending states
- **Error Handling**: Enhanced error catching and display mechanisms
- **Component State**: Better state management for error and loading conditions
- **TypeScript Support**: Maintained type safety with improved error handling
## [2.3.4] - 2025-08-20
### 🔧 Component Refinements & Style Improvements
#### Enhanced
- **BankAccountInput Component**: Updated styling and user experience improvements
- **OTPVerification Component**: Enhanced layout and visual refinements
- **Component Polish**: Manual refinements to improve overall user experience
#### Improved
- **User Interface**: Better visual hierarchy and component styling
- **User Experience**: Enhanced interaction patterns and visual feedback
- **Code Quality**: Component optimizations and refinements
#### Technical
- **Component Maintenance**: Regular updates and improvements to existing components
- **Style Consistency**: Better styling consistency across payment flow components
- **Performance**: Minor optimizations for better component performance
## [2.3.3] - 2025-08-20
### 🎯 Enhanced OTP Verification
#### Added
- **Account Details Display**: OTP verification now shows user's account name and account number
- **Account Information Section**: Added dedicated section displaying verified account details
- **Enhanced User Context**: Users can now see which account they're verifying payment for
#### Improved
- **User Experience**: Better verification flow with account context
- **Visual Design**: Clean account details section with proper styling
- **Information Hierarchy**: Clear separation between bank info and account details
#### Technical
- **Context Integration**: Leverages `accountDetails?.accountName` and `accountDetails?.accountNumber`
- **Conditional Rendering**: Account details only show when both name and number are available
- **Responsive Design**: Consistent styling with the rest of the payment flow
## [2.3.2] - 2025-08-20
### 🔧 Enhanced BankAccountInput Component
#### Improved
- **BankAccountInput Component**: Enhanced user interface and input validation
- **Account Verification Flow**: Improved account verification process with better error handling
- **Input Styling**: Enhanced input field styling and visual feedback
- **Button Styling**: Updated verify button with custom black styling
- **User Experience**: Better visual hierarchy and component layout
#### Technical
- **Component Performance**: Optimized rendering and state management
- **Error Handling**: Improved error state handling and user feedback
- **Input Validation**: Enhanced numeric input validation for account numbers
## [2.3.1] - 2025-08-20
### 🔧 Bug Fixes & Improvements
#### Fixed
- **BankAccountInput Component**: Enhanced input validation and error handling
- **PaymentButton Integration**: Improved context provider integration and state management
- **TypeScript Definitions**: Enhanced type safety and interface definitions
- **Component Performance**: Optimized rendering and state updates
#### Enhanced
- **Development Experience**: Better debugging and error reporting
- **Code Organization**: Improved file structure and component organization
- **Documentation**: Updated inline documentation and code comments
## [2.3.0] - 2025-08-20
### 🎨 SIMPLIFIED CUSTOMIZATION APPROACH
#### Changed
- **PaymentButton Styling Simplified**: Removed 30+ individual customization props in favor of native React Native styling approach
- **Native `style` Prop**: Now supports all TouchableOpacity ViewStyle properties for complete control
- **Native `textStyle` Prop**: Supports all Text TextStyle properties for full text customization
- **Removed Loading Text Customization**: Loading text is no longer customizable - always shows the button text
- **Simplified Interface**: Cleaner, more intuitive API using standard React Native patterns
#### Added
- **Full TouchableOpacity Style Support**: Complete access to all ViewStyle properties
- **Full Text Style Support**: Complete access to all TextStyle properties
- **State-Specific Styling**: `disabledStyle`, `disabledTextStyle`, `loadingStyle` props
- **Enhanced Loading Indicator**: Improved loading indicator with `showLoadingIndicator`, `loadingIndicatorColor`, `loadingIndicatorSize`
#### Removed
- **Individual Style Props**: Removed backgroundColor, borderColor, borderWidth, borderRadius, etc.
- **Text Style Props**: Removed fontSize, fontWeight, textColor, letterSpacing, etc.
- **Loading Text Props**: Removed loadingText, loadingTextColor, loadingTextStyle
- **Complex Variant System**: Removed variant and size prop system
- **Shadow Props**: Now handled through native style prop
#### Migration Guide
```typescript
// Before (v2.2.0)
<PaymentButton
backgroundColor="#FF6B6B"
borderColor="#FF5252"
borderRadius={25}
textColor="#FFFFFF"
fontSize={18}
/>
// After (v2.3.0)
<PaymentButton
style={{
backgroundColor: "#FF6B6B",
borderColor: "#FF5252",
borderRadius: 25,
}}
textStyle={{
color: "#FFFFFF",
fontSize: 18,
}}
/>
```
This change provides developers with the familiar React Native styling system while maintaining all the functionality and giving even more control over button appearance.
## [2.2.0] - 2025-08-20
### 🎨 Major PaymentButton Customization Enhancement
- **Complete Style Customization**: PaymentButton now supports extensive customization for every visual aspect
- **Individual Style Properties**: Granular control over backgroundColor, borderColor, borderWidth, borderRadius, padding, dimensions
- **Advanced Text Styling**: Full control over fontSize, fontWeight, textColor, textAlign, letterSpacing, lineHeight
- **Custom Disabled States**: Dedicated styling props for disabled appearance including colors, opacity, and custom styles
- **Enhanced Loading States**: Customizable loading text, colors, opacity, and optional loading indicator with size/color control
- **Shadow and Elevation**: Complete shadow customization with shadowColor, shadowOffset, shadowOpacity, shadowRadius, and elevation
- **Flexible Dimensions**: Support for custom width, height, minHeight with automatic fullWidth handling
- **Enhanced Developer Experience**: Comprehensive customization while maintaining simplicity
- **Backward Compatibility**: All existing code continues to work unchanged
- **Custom Variant Support**: New 'custom' variant and size options for complete design freedom
- **Intelligent Defaults**: Smart fallback to variant/size defaults when custom props are not specified
- **Style Override Hierarchy**: Logical style application order: defaults → variants → custom props → user styles
- **TypeScript Support**: Full type safety for all new customization properties
- **Advanced Customization Features**: Professional-grade styling capabilities
- **Loading Indicator Control**: Optional ActivityIndicator with customizable size and color
- **State-Specific Styling**: Separate styling for normal, disabled, and loading states
- **Multi-Level Customization**: Support for both individual properties and complete style objects
- **Responsive Design Support**: Flexible width/height handling for different screen sizes
- **Accessibility Maintained**: All customizations preserve accessibility features and labels
### 📚 Documentation and Developer Resources
- **Comprehensive Customization Guide**: New CUSTOMIZATION_GUIDE.md with detailed examples and best practices
- **Migration Examples**: Clear examples showing how to migrate from basic to advanced customization
- **Best Practices**: Guidelines for effective button customization and accessibility considerations
- **Complete API Reference**: Detailed documentation of all 30+ new customization properties
### 🔧 Technical Improvements
- **Enhanced Type System**: Expanded TypeScript interfaces with optional customization properties
- **Optimized Rendering**: Efficient style computation with smart property resolution
- **Performance Optimized**: Minimal re-renders with intelligent style caching
- **Cross-Platform Compatibility**: All customizations work consistently on iOS and Android
### 🎯 New Customization Properties (30+ Options)
#### Main Styling
- `backgroundColor`, `borderColor`, `borderWidth`, `borderRadius`
- `paddingVertical`, `paddingHorizontal`, `minHeight`, `width`, `height`
#### Text Styling
- `fontSize`, `fontWeight`, `textColor`, `textAlign`, `letterSpacing`, `lineHeight`
#### Disabled State
- `disabledStyle`, `disabledTextStyle`, `disabledBackgroundColor`, `disabledBorderColor`, `disabledTextColor`, `disabledOpacity`
#### Loading State
- `loadingStyle`, `loadingTextStyle`, `loadingText`, `loadingBackgroundColor`, `loadingTextColor`, `loadingOpacity`
- `showLoadingIndicator`, `loadingIndicatorColor`, `loadingIndicatorSize`
#### Shadow & Elevation
- `shadowColor`, `shadowOffset`, `shadowOpacity`, `shadowRadius`, `elevation`
### 🔄 Legacy Support
- **Full Backward Compatibility**: All existing `variant`, `size`, `style`, and `textStyle` props continue to work
- **Gradual Migration**: Developers can adopt new features incrementally without breaking changes
- **Enhanced Variants**: Existing variants now work alongside new customization options
## [2.1.7] - 2025-08-20
### 📱 Responsive Design & Mobile Optimization
- **Enhanced Responsive Bank Grid**: Made bank selection grid fully responsive for small mobile screens
- **Smart Column Detection**: Automatically adjusts between 2-column and 3-column layout based on screen width
- **Small Screen Support**: Enhanced support for very small screens (iPhone SE, etc.) with 2-column layout
- **Responsive Width Calculations**: Dynamic bank item width calculation based on screen size and column count
- **Adaptive UI Elements**: Logo containers and font sizes adjust automatically for optimal viewing
- **Improved Bank Item Sizing**: Better visual adaptation for different screen sizes
- **Dynamic Bank Item Width**: Bank items automatically resize based on available screen space
- **Responsive Logo Containers**: Logo containers scale appropriately for smaller screens
- **Adaptive Text Sizing**: Font sizes adjust for better readability in 2-column layouts
- **Optimized Spacing**: Better margin and padding calculations for compact screens
- **Enhanced Mobile Experience**: Better usability on small devices
- **Touch Target Optimization**: Larger touch targets for easier interaction on small screens
- **Improved Visual Hierarchy**: Better content organization for limited screen space
- **Adaptive Loading States**: Shimmer loading counts adjust based on column layout
- **Better Grid Justification**: Smart spacing distribution for both 2-column and 3-column layouts
### 🔧 Technical Improvements
- **Responsive Functions**: Added utility functions for screen size detection and width calculations
- **Dynamic Styling**: Enhanced styling system that adapts to screen dimensions
- **Performance Optimization**: Efficient calculations for responsive layout rendering
- **Cross-Device Compatibility**: Better support for various device sizes and orientations
### 📐 Layout Enhancements
- **Breakpoint System**: Intelligent breakpoints at 350px and 400px screen widths
- **Flexible Grid System**: Grid layout that adapts seamlessly to different screen sizes
- **Optimized Content Density**: Better content organization for space-constrained devices
- **Enhanced Visual Balance**: Improved visual balance across all supported screen sizes
## [2.1.6] - 2025-08-20
### 🔧 Enhanced State Management & Modal Handling
- **Improved PaymentButton Component**: Enhanced modal close handling and state cleanup
- **Better Modal Close Handler**: Enhanced `handleModalClose` function with proper state cleanup
- **Enhanced NetBanking Integration**: Better integration with NetBankingProvider context
- **Improved State Reset**: Added proper cleanup of bank selection and account details on modal close
- **Enhanced Type Safety**: Added Bank type import for better TypeScript support
- **Better Context Integration**: Enhanced integration with NetBankingProvider
- **State Cleanup**: Proper reset of selected bank and account details when modal closes
- **Better Data Flow**: Enhanced data flow between PaymentButton and NetBanking components
- **Improved User Experience**: Cleaner state management for better user experience
- **Enhanced Modal Behavior**: Better modal state handling and cleanup
### 🎨 User Experience Improvements
- **Modal State Management**: Better handling of modal open/close states
- **Data Persistence**: Improved data cleanup when users close the payment modal
- **Navigation Flow**: Enhanced navigation experience with proper state reset
- **Error Prevention**: Better error prevention through proper state cleanup
### 🔧 Technical Enhancements
- **Context Integration**: Enhanced integration with NetBankingProvider context
- **State Management**: Better state management and cleanup functionality
- **Type Safety**: Improved TypeScript support with proper type imports
- **Code Organization**: Better separation of concerns and component responsibilities
## [2.1.5] - 2025-08-20
### 🚀 Performance & Code Optimizations
- **Enhanced PaymentButton Component**: Improved loading states and error handling
- **Better Loading Management**: Enhanced loading state management with external and internal loading states
- **Improved Button Variants**: Enhanced button styling with better variant handling
- **Optimized State Management**: Better integration with ZipsProvider context
- **Enhanced Error Handling**: Improved error propagation and user feedback
- **Optimized NetBanking Component**: Enhanced bank selection with better performance
- **Improved Bank Grid Layout**: Better three-column grid with optimized calculations
- **Enhanced Bank Item Rendering**: Optimized bank logo and name display
- **Better Navigation Flow**: Smoother transitions between bank selection and account input
- **Improved Error States**: Better error handling and user feedback
- **Enhanced PaymentModal Component**: Better keyboard handling and scroll behavior
- **Improved KeyboardAvoidingView**: Enhanced keyboard handling across all payment steps
- **Optimized ScrollView**: Better scroll behavior with proper content management
- **Better Step Rendering**: Optimized step rendering with improved performance
- **Enhanced Modal Presentation**: Better modal presentation and closing behavior
- **Refined PaymentMethodSelection**: Enhanced grid layout and selection indicators
- **Optimized Grid Calculations**: Better two-column grid with improved spacing
- **Enhanced Selection States**: Better visual feedback for selected payment methods
- **Improved Touch Targets**: Better accessibility and touch interaction
- **Optimized Card Sizing**: Better card sizing calculations for different screen sizes
- **Enhanced ZipsProvider Context**: Improved state management and data flow
- **Better State Initialization**: Improved initial state setup and management
- **Enhanced Context Safety**: Better error handling for context usage
- **Optimized State Updates**: More efficient state updates and re-rendering
- **Improved Reset Functionality**: Better state reset and cleanup functionality
### 🔧 Technical Improvements
- **Code Organization**: Better component structure and separation of concerns
- **Performance Optimization**: Reduced unnecessary re-renders and improved efficiency
- **Type Safety**: Enhanced TypeScript definitions and better type checking
- **Error Boundaries**: Better error handling and graceful degradation
### 🎨 Visual Enhancements
- **Consistent Styling**: Better styling consistency across all components
- **Enhanced Animations**: Smoother transitions and better user experience
- **Improved Accessibility**: Better screen reader support and keyboard navigation
- **Responsive Design**: Better adaptation to different screen sizes and orientations
## [2.1.4] - 2025-08-20
### 🎨 UI & Component Updates
- **Enhanced PaymentHeader**: Improved header design and branding
- **ZIPS Gateway branding**: Updated header with logo and gateway title
- **Sandbox indicator**: Clear visual distinction for sandbox environment
- **Better close button**: Enhanced close button design and accessibility
- **Improved amount display**: Better typography and layout for payment amount
- **Professional styling**: Enhanced visual hierarchy and spacing
- **Component Refinements**: Minor improvements and optimizations
- **PaymentMethodSelection**: Continued grid layout optimizations
- **OTPVerification**: Enhanced user experience refinements
- **Better consistency**: Improved styling consistency across components
### 🔧 Technical Improvements
- **Logo Integration**: Proper logo asset handling and display
- **Environment Indicators**: Clear visual feedback for sandbox vs production
- **Enhanced Accessibility**: Better touch targets and screen reader support
## [2.1.3] - 2025-08-20
### ⌨️ Enhanced Keyboard & Input Handling
- **Improved OTP Verification**: Fixed backspace functionality and enhanced user experience
- **Fixed handleKeyPress function**: Proper backspace handling for clearing digits
- **Enhanced navigation**: Smart focus management between OTP input fields
- **Better validation**: Numeric-only input with visual feedback
- **Improved styling**: Visual states for filled vs empty OTP fields
- **Auto-focus behavior**: Seamless navigation between input fields
- **Enhanced Bank Account Input**: Better numeric input validation
- **Numeric-only validation**: Automatic filtering of non-numeric characters
- **Improved keyboard behavior**: Proper return key and blur handling
- **Better focus management**: Enhanced user interaction flow
- **Improved Card Input Forms**: Enhanced keyboard navigation
- **Smart return key handling**: Next/Done buttons for smooth field navigation
- **Auto-correct disabled**: Prevents unwanted text corrections on card details
- **Better focus flow**: Improved transition between card number, expiry, CVV, and name fields
- **Enhanced validation**: Real-time formatting and validation feedback
- **Enhanced Wallet Input**: Better phone number and PIN input handling
- **Numeric validation**: Automatic filtering for phone numbers and PINs
- **Improved keyboard types**: Optimized keyboard layouts for each field
- **Better return key behavior**: Smooth navigation between fields
- **Enhanced KeyboardAvoidingView**: Better keyboard handling across all screens
- **Platform-specific behavior**: Optimized for both iOS and Android
- **Keyboard offset adjustment**: Better content visibility when keyboard is open
- **Scroll behavior**: Enhanced scrolling with keyboard interactions
### 🎨 Visual & UX Improvements
- **OTP Input Visual States**: Enhanced feedback for user interactions
- **Better Input Focus States**: Clear visual indicators for active input fields
- **Improved Error Handling**: Better error states and validation feedback
- **Enhanced Accessibility**: Better screen reader support and keyboard navigation
## [2.1.2] - 2025-08-20
### 🔧 Grid Layout & Shimmer Fixes
- **Fixed PaymentMethodSelection Two-Column Grid**: Resolved single column display issue
- **Corrected width calculations**: Account for parent container padding
- **Removed duplicate padding**: Eliminated conflicting padding between components
- **Optimized spacing**: Better visual alignment for two-column layout
- **Formula**: `width: (screenWidth - 40) / 2` to account for PaymentModal padding
- **Fixed BankShimmer Three-Column Layout**: Aligned shimmer with actual bank grid
- **Matched bank item calculations**: `width: (screenWidth - 112) / 3`
- **Synchronized styling**: Shimmer items now match real bank item appearance
- **Improved visual consistency**: Loading state reflects actual content layout
- **Better user experience**: Realistic loading placeholders
### 🎨 Visual Improvements
- **Consistent Grid Layouts**: All grid components now display proper column counts
- **Enhanced Loading States**: Shimmer animations match actual content structure
- **Better Responsive Design**: Improved adaptation to different screen sizes
## [2.1.1] - 2025-08-20
### 🐛 Grid Layout & Navigation Fixes
- **Fixed PaymentMethodSelection Grid**: Resolved two-column grid layout issue
- **Removed conflicting gap property**: Grid now properly displays two columns
- **Optimized width calculations**: Better spacing for payment method cards
- **Improved container padding**: Enhanced visual alignment
- **Fixed ScrollView Behavior**: Enhanced PaymentModal scrolling experience
- **Simplified ScrollView logic**: Consistent scrolling across all steps
- **Better content padding**: Improved spacing and visual hierarchy
- **Enhanced keyboard handling**: Better user experience with keyboard interactions
- **Enhanced Bank Selection Flow**: Automatic navigation after bank selection
- **Auto-navigation**: Automatically moves to account input after bank selection
- **Visual feedback**: 300ms delay for better user experience
- **Improved bank grid**: Better three-column layout without gap conflicts
### 🔧 Technical Improvements
- **Grid Layout Optimization**: Fixed flexbox calculations for proper multi-column layouts
- **Navigation Flow**: Smoother transitions between payment steps
- **Responsive Design**: Better adaptation to different screen sizes
## [2.1.0] - 2025-08-20
### 🎨 UI/UX Improvements & Bank Integration
- **Enhanced Bank Selection Interface**: Complete redesign of NetBanking component
- **Updated Bank Type Structure**: Aligned with API response format
- Added `bankName`, `bankLogo`, `location` fields
- Maintained backward compatibility with legacy `name` and `logo` fields
- Enhanced type safety with proper TypeScript definitions
- **Improved Grid Layout**: Better bank selection UI
- Three-column responsive grid layout with proper spacing
- Enhanced visual hierarchy with improved typography
- Better touch targets and selection indicators
- Added bank location display for better context
- **Shimmer Loading States**: Professional loading experience
- **BankShimmer Component**: Realistic loading placeholders for bank selection
- **PaymentMethodShimmer**: Loading states for payment method selection
- Smooth animation effects with proper opacity transitions
- Responsive design matching actual content layout
- **Enhanced Payment Method Selection**: Improved grid layout
- Better spacing and typography for payment method cards
- Increased card size and improved visual hierarchy
- Enhanced selection indicators and hover states
- Improved responsive design across different screen sizes
- **Error Handling**: Better user experience for failed states
- Elegant error messages for bank loading failures
- Clear feedback when network requests fail
- Improved user guidance for retry actions
### 🔧 Technical Improvements
- **Type Safety**: Enhanced TypeScript integration
- Updated Bank interface to match API response structure
- Better type checking and IDE support
- Improved developer experience with proper type definitions
- **Component Architecture**: Better separation of concerns
- Reusable shimmer loader components
- Improved component composition and modularity
- Better state management integration
## [2.0.9] - 2025-08-20
### 🚀 Enhanced Redeployment
- **Updated Component Distribution**: Latest version deployment with all recent enhancements
- Fresh compilation of all React Native components
- Updated TypeScript definitions and type exports
- Enhanced component reliability and performance
- Optimized package distribution for better availability
- **Build System Improvements**: Enhanced compilation and packaging process
- Verified all component dependencies and exports
- Improved build consistency and reliability
- Enhanced error handling and validation
- Optimized package size and structure
- **Quality Enhancement**: Comprehensive testing and validation
- Verified all payment flow components
- Confirmed cross-platform compatibility
- Enhanced component integration and interaction
- Improved overall SDK stability and performance
### 🛠️ Technical Updates
- **Component Integrity**: All payment components verified and optimized
- **Type Safety**: Enhanced TypeScript definitions and exports
- **Asset Management**: Improved resource bundling and distribution
- **Platform Support**: Confirmed iOS and Android compatibility
### 📦 Distribution Quality
- **Registry Sync**: Fresh npm registry deployment
- **Package Optimization**: Enhanced download reliability and speed
- **Version Consistency**: Proper semantic versioning and changelog updates
- **Developer Experience**: Improved installation and integration process
## [2.0.8] - 2025-08-20
### 🔄 Redeployment & Stability
- **Package Redeployment**: Fresh deployment to ensure all components are properly distributed
- Complete rebuild and repackaging of all components
- Verified all TypeScript compilations and type definitions
- Ensured all assets and dependencies are correctly bundled
- Fresh npm registry deployment for improved reliability
- **Quality Assurance**: Comprehensive verification of package integrity
- Confirmed all component exports are functioning correctly
- Validated all TypeScript types and interfaces
- Verified all styling and layout implementations
- Ensured cross-platform compatibility and performance
- **Deployment Optimization**: Enhanced package distribution
- Optimized build process for better reliability
- Improved package structure and file organization
- Enhanced dependency management and bundling
- Better npm registry synchronization
### 🛠️ Technical Verification
- **Build System**: Confirmed successful compilation without errors
- **Type Safety**: Validated all TypeScript definitions and exports
- **Component Integrity**: Verified all payment components are properly packaged
- **Asset Management**: Ensured all assets and resources are correctly included
### 📦 Package Quality
- **Distribution**: Fresh npm package deployment for optimal availability
- **Reliability**: Enhanced package integrity and download stability
- **Compatibility**: Confirmed support across all target platforms
- **Performance**: Optimized package size and loading efficiency
## [2.0.7] - 2025-08-19
### 🎨 Optimized Grid Layout
- **Simplified Gap Implementation**: Streamlined grid spacing for better performance
- Removed complex `rowGap` and `columnGap` properties for broader compatibility
- Maintained consistent spacing with optimized `gap: 12` implementation
- Kept `marginBottom: 16` for reliable cross-platform spacing
- Enhanced visual consistency across all devices and React Native versions
- **Performance Optimization**: Improved grid rendering efficiency
- Simplified CSS properties for faster rendering
- Better memory management with streamlined styling
- Enhanced compatibility across different React Native versions
- Optimized for both iOS and Android platforms
- **Cross-Platform Consistency**: Ensured uniform behavior across devices
- Verified spacing consistency on different screen sizes
- Enhanced responsive behavior for various orientations
- Improved touch target accessibility and interaction
- Optimized visual balance and card distribution
### 🛠️ Technical Improvements
- **Code Optimization**: Cleaner and more maintainable styling approach
- **Compatibility**: Enhanced support for different React Native versions
- **Performance**: Faster grid rendering with simplified properties
### 🔧 Build & Quality
- **Compilation**: Verified successful build with optimized implementation
- **Cross-Platform**: Tested compatibility across iOS and Android
- **Performance**: Enhanced grid rendering efficiency
## [2.0.6] - 2025-08-19
### 🎨 Final Grid Layout Polish
- **Perfected Grid Spacing**: Final refinements to the two-column grid layout
- Enhanced gap properties implementation for consistent spacing
- Optimized `rowGap` and `columnGap` for perfect visual alignment
- Removed redundant spacing properties in favor of modern gap-based approach
- Final polish on card distribution and visual balance
- **ScrollView Optimization**: Finalized scrolling behavior improvements
- Maintained optimal conditional ScrollView implementation
- Enhanced keyboard interaction and content management
- Perfected content container styling for consistent user experience
- Final optimization of scroll indicators and performance
- **Visual Polish**: Final touches to design system consistency
- Perfect spacing calculations across all grid components
- Optimized visual hierarchy with consistent gap-based spacing
- Enhanced responsive behavior for all screen sizes and orientations
- Final refinement of touch targets and interaction areas
### 🛠️ Technical Finalizations
- **Layout System**: Completed CSS Grid-like behavior with gap properties
- **Performance**: Final optimization of grid rendering and spacing calculations
- **Code Quality**: Polished styling approach with modern layout techniques
### 🔧 Build & Release
- **Compilation**: Verified successful build with all enhancements
- **Type Safety**: Enhanced TypeScript support with improved definitions
- **Quality Assurance**: Final code review and optimization
## [2.0.5] - 2025-08-19
### 🎨 Enhanced Grid Layout & Spacing
- **Improved Grid Layout**: Enhanced two-column grid with better spacing and visual consistency
- Added CSS `gap` properties for consistent spacing between grid items
- Enhanced `rowGap: 12` and `columnGap: 12` for perfect grid alignment
- Removed redundant `marginBottom` in favor of gap-based spacing
- Better visual balance with improved card distribution
- **Refined ScrollView Implementation**: Further optimized scrolling behavior
- Maintained conditional ScrollView for optimal performance
- Enhanced keyboard interaction handling
- Improved content container styling with consistent spacing
- Better scroll indicators and user experience optimization
- **Visual Consistency Improvements**: Enhanced design system consistency
- Better spacing calculations across all grid elements
- Improved visual hierarchy with consistent gap spacing
- Enhanced responsive behavior for different screen sizes
- Optimized touch targets and interaction areas
### 🛠️ Technical Refinements
- **Layout System**: Enhanced CSS Grid-like behavior with gap properties
- **Performance**: Optimized grid rendering with better spacing calculations
- **Code Quality**: Cleaner styling approach with modern layout techniques
### 🔧 Developer Experience
- **Maintainability**: Simplified spacing system with gap-based layouts
- **Consistency**: Unified spacing approach across grid components
- **Build Quality**: Verified compilation success with enhanced TypeScript support
## [2.0.4] - 2025-08-19
### 🎨 Major UI Layout Improvements
- **Two-Column Grid Payment Methods**: Redesigned PaymentMethodSelection with modern grid layout
- Replaced horizontal scrolling with responsive two-column grid
- Better space utilization and improved visual balance
- Enhanced card sizing with dynamic width calculation
- Improved accessibility and touch targets
- **Enhanced PaymentModal ScrollView**: Optimized scrolling behavior and content management
- Conditional ScrollView for better performance on method selection
- Added proper keyboard handling with `keyboardShouldPersistTaps="handled"`
- Improved content container styling for better spacing
- Enhanced scroll indicators and user experience
- **Responsive Design Improvements**: Better adaptation to different screen sizes
- Dynamic card width calculation: `(screenWidth - 64) / 2`
- Improved padding and spacing across components
- Better visual hierarchy and content organization
### 🛠️ Technical Enhancements
- **Component Architecture**: Cleaner separation between scrollable and non-scrollable content
- **Performance Optimization**: Conditional rendering to prevent unnecessary ScrollView nesting
- **Layout Management**: Better handling of keyboard interactions and content flow
### 🔧 Developer Experience
- **Code Structure**: Simplified component layout with cleaner styling approach
- **Maintainability**: Better organized styles and component structure
- **Build Process**: Verified compilation success with enhanced TypeScript support
## [2.0.3] - 2025-08-19
### 🎨 UI/UX Enhancements
- **Enhanced PaymentModal Navigation**: Improved modal flow with better step management
- Added proper method selection step handling
- Enhanced ScrollView wrapper for better content scrolling
- Improved keyboard handling and layout adjustments
- **Card Input Improvements**: Enhanced card payment form experience
- Better input validation and formatting
- Improved user interaction and form handling
- Enhanced error states and validation feedback
- **Wallet Input Enhancements**: Improved wallet payment flow
- Better input validation for wallet providers
- Enhanced user experience with improved forms
- Better error handling and user feedback
- **Card Confirmation Updates**: Enhanced payment confirmation flow
- Improved confirmation screen layout
- Better payment summary display
- Enhanced user confirmation experience
- **Wallet Selection Improvements**: Better wallet provider selection
- Enhanced wallet provider cards and selection
- Improved visual feedback and user interaction
- Better responsive design for different screen sizes
### 🛠️ Technical Improvements
- **Component Architecture**: Better separation of concerns across payment components
- **State Management**: Improved context usage and state flow
- **Performance Optimizations**: Enhanced rendering and reduced unnecessary re-renders
### 🔧 Developer Experience
- **Code Quality**: Improved code structure and maintainability
- **Type Safety**: Enhanced TypeScript definitions and interfaces
- **Build Process**: Better compilation and error handling
## [2.0.2] - 2025-08-19
### 🎨 UI/UX Improvements
- **Enhanced PaymentMethodSelection**: Redesigned payment method selection with horizontal scrollable cards
- Modern card-based layout with dynamic width based on screen size
- Improved visual hierarchy with better spacing and typography
- Added selection indicators with smooth scaling effects
- Better mobile responsiveness with optimized touch targets
- **Improved PaymentModal Layout**: Enhanced modal design for better user experience
- Reduced horizontal padding for more screen real estate
- Better content spacing and visual balance
- Improved keyboard handling and layout adjustments
### 🛠️ Technical Improvements
- **Enhanced Type Definitions**: Improved TypeScript interfaces for better developer experience
- **Component Architecture**: Better separation of concerns in payment components
- **Performance Optimizations**: Reduced re-renders and improved component efficiency
### 🔧 Developer Experience
- **Better Documentation**: Updated component props and usage examples
- **Improved Build Process**: Enhanced compilation and type checking
- **Code Quality**: Better linting and formatting consistency
## [2.0.1] - 2025-08-19
### 🐛 Bug Fixes
- **Critical PaymentButton Fix**: Resolved issue where `useZipsContext` hook was being called outside the Zips provider
- Split PaymentButton into wrapper and inner components
- Fixed provider context scope to ensure hooks are called within provider tree
- Prevented runtime errors when components are used without proper provider setup
- Improved error handling for context usage validation
### 🛠️ Technical Improvements
- **Component Architecture**: Enhanced PaymentButton with proper provider/consumer pattern
- **Context Safety**: Ensured all context hooks are called within appropriate provider scope
- **Build Validation**: Verified compilation success with no TypeScript errors after fixes
### 🔧 Developer Experience
- **Better Error Messages**: Improved error handling for missing provider setup
- **Provider Architecture**: Clearer separation between provider wrapper and consumer components
- **Type Safety**: Enhanced TypeScript support for provider/consumer patterns
## [2.0.0] - 2025-08-19
### 🎉 Major Release: Context Architecture & Advanced State Management
### 🚨 Breaking Changes
- **Context-Based Architecture**: Complete redesign with React Context API
- New provider-based architecture for better state management
- Breaking change: Components now require provider wrapping
- Enhanced component isolation and reusability
### ✨ Added
- **React Query Integration**: Added @tanstack/react-query for data fetching
- Advanced caching and synchronization capabilities
- Automatic background refetching and error handling
- Optimistic updates and offline support
- Query client configuration with proper defaults
- **Context Providers**: Comprehensive context system
- `ZipsProvider`: Main application state management
- `NetBankingProvider`: Banking payment flow state
- `WalletProvider`: Wallet payment management
- `CardProvider`: Card payment processing state
- Each provider manages specific payment method logic
- **TypeScript SDK Integration**: Native integration with zips-typescript-sdk
- Server-side functionality accessible from React Native
- Type-safe API interactions
- Unified payment processing across platforms
- **Enhanced Type System**: Improved TypeScript definitions
- Better type safety across all components
- Enhanced IntelliSense support
- Proper generic type constraints
- **Constants System**: Organized constant definitions
- `paymentMethods.ts`: Payment method configurations
- `wallets.ts`: Wallet provider definitions
- Centralized configuration management
### 🛠️ Changed
- **State Management**: Migrated from prop drilling to Context API
- Global state accessible across all components
- Improved performance with selective context consumption
- Better debugging and development experience
- **Component Architecture**: Enhanced component design
- Provider-wrapped components for better isolation
- Improved error boundaries and error handling
- Enhanced component reusability
### 📦 Dependencies
- **Added**: `@tanstack/react-query@^5.85.3` for advanced data fetching
- **Added**: `zips-typescript-sdk@^1.1.0` for server-side integration
- **Added**: `@types/react-redux@^7.1.34` for Redux type support
### 🔧 Fixed
- **PaymentSuccess Component**: Fixed context data access
- Updated to use `transactionDetails` from context
- Proper error handling for missing transaction data
### 📚 Migration Guide
#### From v1.x to v2.0.0
**Provider Setup (Required)**:
```tsx
// Wrap your app with providers
import {
ZipsProvider,
NetBankingProvider,
WalletProvider,
CardProvider,
} from 'zips-react-native-sdk-test';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from 'zips-react-native-sdk-test/tanstack-query';
<QueryClientProvider client={queryClient}>
<ZipsProvider>
<NetBankingProvider>
<WalletProvider>
<CardProvider>
<YourApp />
</CardProvider>
</WalletProvider>
</NetBankingProvider>
</ZipsProvider>
</QueryClientProvider>;
```
**Context Usage**:
```tsx
// Access state via hooks
import { useZipsContext } from 'zips-react-native-sdk-test';
const { paymentDetails, setPaymentDetails, isLoading } = useZipsContext();
```
### 🚀 Performance Improvements
- **Selective Re-rendering**: Context-based updates only affect consuming components
- **Query Optimization**: Intelligent caching reduces API calls
- **Bundle Optimization**: Tree-shakable imports for smaller bundle size
## [1.9.0] - 2025-08-18
### 🎉 Major Updates: HTTP Client & Currency Standardization
### ✨ Added
- **Axios Integration**: Added axios as HTTP client for enhanced API communication
- Better error handling and request/response interceptors
- Improved network reliability and timeout management
- Standardized HTTP client across all payment operations
### 🛠️ Changed
- **Default Currency Standardization**: Set GMD as the default currency across all components
- Added `getDefaultCurrency()` helper utility function
- Updated all payment components to use GMD as fallback currency
- Enhanced currency type safety with optional currency fields
- **Complete Tailwind Removal**: Eliminated all Tailwind/NativeWind dependencies
- Removed `tailwind.config.js` configuration file
- Updated documentation to reflect pure React Native styling approach
- Cleaner package with no external styling dependencies
### 🔧 Fixed
- **TypeScript Improvements**: Enhanced type safety for optional currency fields
- **Build Optimization**: Reduced bundle size by removing Tailwind dependencies
### 📚 Documentation
- **Updated README**: Reflected new pure React Native styling approach
- **Migration Guide**: Updated for new currency defaults and styling approach
## [1.6.0] - 2025-08-14
### 🎉 Major Feature Addition: Digital Wallet Payments
### ✨ Added
- **Complete Wallet Payment System**: Full-featured wallet payment integration with AfrMoney and ZApp
- **WalletSelection Component**: Modern wallet provider selection screen
- AfrMoney wallet support with logo and description
- ZApp wallet support with logo and description
- Clean, intuitive wallet selection interface
- Coming soon indicators for future wallet providers
- **WalletInput Component**: Comprehensive wallet details input form
- Gambian phone number validation (+220 + 7 digits)
- Secure PIN input with masking
- Real-time form validation and error feedback
- Wallet-specific instructions and messaging
- Professional loading states and error handling
- **WalletConfirmation Component**: Secure payment review screen
- Masked phone number display for privacy
- Payment amount confirmation with currency formatting
- Wallet-specific payment flow messaging
- Security notices and help information
- **Enhanced PaymentModal Integration**: Seamless wallet flow integration
- New PaymentFlowStep types: 'wallet-selection', 'wallet-input', 'wallet-confirmation'
- Wallet-specific state management and navigation
- Proper error handling and loading states for wallet payments
- **WalletData and Wallet Interfaces**: Comprehensive TypeScript support
### 🏦 Wallet Providers Supported
- **AfrMoney**: Digital wallet for African payments with PIN authentication
- **ZApp**: Fast and secure mobile payments with PIN authentication
### 🔄 Enhanced Payment Flow
- **Unified Payment Methods**: Wallet payments now available alongside netbanking and card payments
- **Wallet-Specific Validation**: Custom validation rules for each wallet provider
- **Secure Authentication**: PIN-based authentication for wallet transactions
- **Payment Confirmation**: Comprehensive review screen with masked sensitive data
### 🎨 UI/UX Improvements
- **Professional Wallet Interface**: Modern, clean wallet selection and input forms
- **Real-time Validation**: Instant feedback on phone number and PIN validation
- **Loading States**: Beautiful shimmer effects during wallet validation and processing
- **Security Messaging**: Clear security notices and help information
- **Responsive Design**: Optimized for all screen sizes and orientations
### 🛠️ Technical Enhancements
- **TypeScript Integration**: Full type safety with WalletData and Wallet interfaces
- **State Management**: Wallet data state integrated into existing PaymentModal architecture
- **Error Handling**: Comprehensive validation and error display system for wallet payments
- **Navigation Flow**: Proper back/forward navigation between wallet payment steps
- **Payment Processing**: Wallet payment simula