Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Feat/store #17

Merged
merged 25 commits into from
Jan 26, 2025
Merged

feat: Feat/store #17

merged 25 commits into from
Jan 26, 2025

Conversation

lcandy2
Copy link
Owner

@lcandy2 lcandy2 commented Jan 26, 2025

No description provided.

- Configured RevenueCat SDK in NeoDBApp initialization
- Replaced StoreKit implementation with RevenueCat in PurchaseView
- Added StoreService and StoreConfig for managing subscription configuration
- Updated project dependencies to include RevenueCat package
- Removed previous StoreConfig with hardcoded subscription details
- Enhanced PurchaseView with dynamic package loading and purchase flow
- Implemented PurchaseView with comprehensive subscription details
- Added PurchaseViewModel to manage RevenueCat purchase and offering logic
- Created feature list with current and upcoming premium features
- Designed subscription package display with dynamic pricing
- Included restore purchases and legal link functionality
- Added error handling and loading states for purchase flow
- Deleted `.onFailure` blocks in ProfileHeaderView and StatusView
- Simplified image loading and display logic
- Removed redundant placeholder views for image loading failures
- Added `URLs` enum in `StoreConfig` to centralize privacy policy and terms of service links
- Updated `PurchaseView` to use new `StoreConfig.URLs` for legal link navigation
- Removed unused `dismiss` environment variable
- Extracted feature list to `StoreConfig` with a dedicated `Feature` struct
- Updated PurchaseView to use dynamic feature rendering from `StoreConfig`
- Improved plan selection UI with toggleable plan view and package details
- Simplified feature row rendering with more descriptive and colorful icons
- Added "Coming Soon" badge for future features
- Introduced more interactive subscription package selection
- Refined purchase button and pricing display
- Added StoreManager as a new ObservableObject for managing in-app purchases
- Updated NeoDBApp to include StoreManager in environment
- Refactored PurchaseView to use StoreManager and improve purchase flow
- Added new purchase navigation route in Router
- Implemented bottom sheet purchase view with dynamic package selection
- Updated SettingsView to use router for purchase navigation
- Added `setCustomerInfo()` method to fetch and store customer information
- Implemented `getOfferings()` and `getPlusOffering()` methods for retrieving subscription offerings
- Updated NeoDBApp to call `setCustomerInfo()` on app launch
- Prepared PurchaseView for future task implementation with empty task modifier
…ration

- Refactored PurchaseViewModel to use StoreManager for purchase and offerings management
- Updated PurchaseView to use new ViewModel with improved error handling
- Simplified StoreManager methods for customer info and offerings retrieval
- Removed PurchasesDelegate implementation in favor of direct async methods
- Enhanced bottom purchase view with more robust purchase and restore functionality
- Added shadow to bottom purchase view for improved visual depth
- Hidden tab bar during purchase flow for cleaner presentation
- Updated purchase button to use accent color for better design consistency
- Implemented loading indicator during purchase process
- Disabled purchase button while loading to prevent multiple purchases
- Improved user feedback for purchase interaction
- Removed NavigationStack wrapper and used native navigation modifiers
- Added navigation title and adjusted toolbar items
- Improved layout by removing unnecessary nested views
- Added injection support for BottomPurchaseView
- Simplified overall view structure and navigation
- Simplified loading state management in PurchaseViewModel
- Moved purchase section to a separate method in SettingsView
- Updated PurchaseView to handle loading state more explicitly
- Replaced router navigation with direct NavigationLink in SettingsView
…alculation

- Added method to calculate percentage savings for annual packages
- Implemented dynamic package text generation for different subscription types
- Updated bottom purchase view to show personalized button and description text
- Dynamically calculate and display savings percentage for annual plans
- Simplified "Coming Soon" text and improved overall package presentation
- Updated `loadOfferings()` in StoreManager to support optional refresh
- Improved PurchaseView header with Piecelet symbol and refined layout
- Simplified restore purchases method in PurchaseViewModel
- Enhanced code formatting and readability in purchase-related views
- Replaced string-based icons with Symbol enum for feature icons
- Added Terms of Service and Privacy Policy URLs to StoreConfig
- Updated PurchaseView to use new Symbol-based icon rendering
- Enhanced feature list with more descriptive and consistent icon representation
- Added `isFree` property to `StoreConfig.Feature` to mark free features
- Implemented "Free" tag display for free features in PurchaseView
- Added purchased state handling in BottomPurchaseView for active subscriptions
- Disabled purchase button and updated UI when user has an active Piecelet+ subscription
- Updated Settings.xcstrings with new localization keys for store-related text
- Replaced hardcoded strings in PurchaseView with localized string resources
- Added translations for package types, pricing, and subscription descriptions in English and Chinese
- Added RevenueCat proxy URL configuration in StoreConfig
- Set log level to error in StoreService
- Updated localization strings for store packages and pricing
- Improved package type display in PurchaseView
- Minor UI adjustments in BottomPurchaseView
- Set default language to Chinese in NeoDB scheme
…tusReplyView

- Updated Router to use a sheet stack for managing multiple sheet presentations
- Modified ContentView to use the new sheet stack binding
- Added purchase prompt button in StatusReplyView with localized text
- Updated SettingsView icon for Piecelet+ section
- Added new localization string for purchase motivation
- Implemented `shouldShowPurchase` flag in AppAccountsManager to trigger purchase view
- Added logging for purchase view state changes
- Modified ContentView to present purchase sheet based on `shouldShowPurchase`
- Updated PurchaseView to support sheet and view presentation modes
- Added logging for content view and router navigation
…on views

- Updated Settings.xcstrings with comprehensive localization keys for login, instance selection, and Mastodon authentication screens
- Replaced hardcoded strings with localized string resources in LoginView, InstanceInputView, MastodonLoginView, and related views
- Added support for both English and Chinese translations
- Included localization for welcome text, instance selection, sign-in buttons, and footer descriptions
- Created AboutView with app version, build number, and app icon
- Added localized strings for about view sections and actions
- Implemented share functionality and links to social media profiles
- Added sections for rating the app, sharing, and external links
- Integrated localization for social media and action labels
- Added localized strings for developer and policy sections in Settings.xcstrings
- Updated AboutView to include detailed developer links (blog, Twitter, GitHub, BlueSky, Mastodon)
- Integrated localized section headers and link labels
- Added AppConfig constant for App Store ID to support dynamic rate app link
- Replaced hardcoded URLs with localized and configurable links
@lcandy2 lcandy2 merged commit a9297c0 into main Jan 26, 2025
@lcandy2 lcandy2 deleted the feat/store branch January 26, 2025 16:18
@lcandy2 lcandy2 restored the feat/store branch January 26, 2025 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant