Commit Graph

91 Commits

Author SHA1 Message Date
DIYgod 1158281f59
chore(deps): update frontend dependencies (#5038)
* chore(deps): update frontend dependencies

* fix(ci): format OTA verification commands
2026-07-10 22:36:12 +08:00
DIYgod f77ac26541 feat(mobile): upgrade expo sdk 55 and rnfirebase 2026-04-10 22:42:21 +08:00
DIYgod a2a88d9fd4 fix(mobile): improve ipad layouts and detail rendering 2026-03-13 13:20:31 +08:00
DIYgod 565793fceb
feat: support iOS Apple subscriptions (#4910)
* feat(mobile): support iOS Apple subscriptions

* fix: stabilize mobile subscription checks
2026-03-12 09:41:55 +08:00
DIYgod b548f5a39c Merge remote-tracking branch 'origin/mobile-main' into release/mobile/0.3.0
# Conflicts:
#	apps/desktop/layer/main/src/updater/custom-github-provider.ts
#	apps/desktop/layer/renderer/src/modules/achievement/AchievementModalContent.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/EntrySubscriptionItem.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntryPlaneToolbar.tsx
#	apps/desktop/layer/renderer/src/modules/entry-column/components/EntrySubscriptionSkeleton.tsx
#	apps/desktop/layer/renderer/src/modules/entry-content/EntryContent.legacy.tsx
#	apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/invitations.tsx
#	apps/desktop/layer/renderer/src/modules/settings/tabs/referral.tsx
#	apps/desktop/layer/renderer/src/modules/wallet/level.tsx
#	apps/mobile/src/modules/login/referral.tsx
#	apps/mobile/src/modules/settings/routes/Invitations.tsx
#	apps/mobile/src/modules/settings/routes/Referral.tsx
#	apps/mobile/src/screens/(modal)/InvitationScreen.tsx
2026-02-18 23:53:40 +08:00
DIYgod 47a56c5017
fix(mobile): reduce timeline indicator jank on iOS (#4857) 2026-02-18 20:23:24 +08:00
DIYgod 56263d229b
fix(mobile): fix Crashlytics crash issues affecting 101+ users (#4845)
- Fix iOS WebViewState initialization on non-main thread
- Fix iOS SecureStore background access failures in auth/env setup
- Fix Android TrackPlayer ForegroundService crash with AppState check
- Fix Android TabBar event handler null reference crashes
- Fix iOS BackgroundTask handler registration timing
- Fix Android VideoView state management during fullscreen
- Fix DatabaseSource stream state before enqueue operation

Addresses 8 critical Crashlytics issues across iOS and Android:
- iOS WebView main thread: 22 users
- iOS SecureStore background: 18 users
- Android ForegroundService: 26 users
- Android TabPress null ref: 12 users
- Android VideoView not found: 6 users
- Stream enqueue race: 7 users
- iOS BackgroundTask handler: 2 users
+ improvements to error handling and recovery paths

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-14 19:53:53 +08:00
DIYgod 992e5ce3ea
fix(mobile): upgrade Expo SDK54 and fix iOS sqlite startup crash (#4841)
* fix(mobile): stabilize Expo SDK54 startup and sqlite migration

* fix(ci): resolve mobile typecheck and desktop release failures

* fix(ci): format files failing prettier check

* fix(ci): align drizzle and mobile menu dependency resolution

* fix(mobile): align react versions for lint

* fix(mobile): upgrade react-native-menu

* fix(mobile): patch track-player android build
2026-02-14 09:35:25 +08:00
Innei 87ea8b7a20
feat(tabbar): add TabBarBottomAccessoryModule and enhance TabBarRootView
- Introduced `TabBarBottomAccessoryModule` to provide a new bottom accessory view for the tab bar.
- Updated `TabBarRootView` to utilize a custom tab bar controller, improving the management of the tab bar's visibility and behavior.
- Refactored `UIWindow` extension methods for better readability and structure.
- Enhanced `expo-module.config.json` to include the new module and improved formatting for better clarity.

These changes aim to enhance the tab bar functionality and improve the overall user interface experience in the mobile application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-25 23:06:51 +08:00
Innei 36a86d48a7
fix(ios26): safe insets for tabbar
- Imported the `PlayerTabBar` component into `ReactNativeTab.ios.tsx`, enhancing the tab bar functionality for the mobile application.
- This integration aims to improve the user experience by providing additional navigation options within the tab bar.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-24 22:57:50 +08:00
Innei a350950672
feat(tabbar): add onTabItemPress event and enhance TabBar functionality
- Introduced onTabItemPress event in TabBarRootView to handle tab item presses.
- Updated TabBarModule to include the new event in the definition.
- Modified TabBarRootWrapper to accept onTabItemPress and selectedIndex props.
- Enhanced TabRoot to utilize the onTabItemPress callback for scroll-to-top functionality.

This update improves user interaction with the tab bar by allowing for additional actions on tab item presses.

Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 22:26:39 +08:00
Innei a9d5cbd519
feat(ios): support liquid glass tabbar
Signed-off-by: Innei <tukon479@gmail.com>
2025-09-22 22:07:59 +08:00
Innei a9bb77167e
refactor(webview): ios preload webview module
- Refactored WebViewManager to improve lifecycle management and state handling.
- Introduced a debug panel for monitoring WebView state and actions in development mode.
- Updated JavaScript injection methods to use a centralized dispatch system for better maintainability.
- Improved handling of local HTML loading and state replay after process termination.
- Added new functions for debugging, including state retrieval and flushing pending scripts.

This update aims to enhance the overall performance and usability of the WebView component, providing developers with better tools for debugging and state management.

Signed-off-by: Innei <tukon479@gmail.com>
2025-08-26 22:20:57 +08:00
Innei b0c4052632
fix(mobile): try to fix ios crash in background
Signed-off-by: Innei <tukon479@gmail.com>
2025-08-26 19:38:12 +08:00
Whitewater 244aca2ad6
feat: implement audio seeking functionality (#4295)
* refactor: move timeStringToSeconds to utility function

* feat: add seekAudio functionality to bridge and implement timestamp handling in MarkdownLink

* feat: implement audio seeking functionality in EntryContentWebView

* feat: implement audio seeking functionality for iOS

* chore: clean code

* fix: audio seeking functionality for iOS
2025-08-01 23:43:30 +08:00
Innei 6892c05d09
feat(mobile): support font scaling for web render
Signed-off-by: Innei <tukon479@gmail.com>
2025-07-24 22:12:45 +08:00
Whitewater 2c1e84faae
fix: update react-native-reanimated to version 3.19.0 (#4233) 2025-07-23 20:56:56 +00:00
lawvs ad7c5ddb9b fix: update setCurrentPage to determine navigation direction based on index 2025-07-24 04:04:13 +08:00
Whitewater 48004b1a7a
chore: remove deprecated Galeria modules and components (#4182) 2025-07-17 13:57:18 +08:00
Cason Kervis 913b1178c8
fix(path): change path package to pathe (#4038)
* fix(path): change path package to pathe

* fix: handle special chat in filename, fixed
#3342

- Integrated @sindresorhus/slugify to format file names based on titles.
- Updated pnpm-lock.yaml to include new dependencies.
- Minor adjustments in package.json files to ensure consistency.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: add eslint rule for use pathe first

* refactor: useWhoami from user store (#4061)

* refactor: useWhoami from user store

* update

* update

* update

* update

* return all

* fix: invalidate entries query after unsubscribe

* feat: implement imperative modal (#4041)

* feat: implement ImperativeModalProvider with modal context and controls

* fix: make onClose prop optional for bottom modal

* chore: add ImperativeModalProvider to context providers

* feat: wrap BottomModal content in KeyboardAvoidingView for better keyboard handling

* chore: add polyfill for Promise.withResolvers

* fix: wrap ImperativeModal in a View and update onClose to accept modal ID

* feat: implement ImperativeModal with context and modal control hooks

* refactor: redesign imperative modal with root-siblings

* fix: wrap BottomModal in a View to resolve rendering issues on Android

* refactor: replace Alert.prompt with modalPrompt for category creation and renaming

* fix(desktop): show login modal when auth fail

* feat: invalidate entry readability cache

* refactor: long press to open text select sheet for ai summary

* feat: new domain folo.is

* fix: enhance auth client with mobile-specific headers (#4064)

* feat(desktop): add missing i18n key (#4066)

* feat: update twitter handle

* docs: use google play badge

* feat: add hideAvatar prop to ProfileSettingForm for conditional avatar display

Signed-off-by: Innei <tukon479@gmail.com>

* docs: update images

* feat(ssr): add Google Analytics tracking to index.html

- Integrated Google Tag Manager for enhanced tracking and analytics capabilities.
- Added asynchronous loading of gtag.js and configuration for tracking ID G-DZMBZBW3EC.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: Update Japanese Languages (#4078)

* chore: update ja.json

* chore: update 6 ja.json files

chore: update and bump 6 ja.json files.

* chore: update error/ja.json

fix locale/error/ja.json

* chore: auto-fix linting and formatting issues

* chore: update app/ja.json

* chore: update ja.json

* chore: update ja.json

* chore: update ja.json and tested local.

* chore: update ja.json

update settings/ja.json

* feat(i18n): update Japanese locale files with new error messages and dialog options

* chore(vscode): set default formatter for JSON and JSONC files

* Remove JSON and JSONC formatter settings

so sorry, @hyoban 😢

Perhaps my local settings are in. I have restored it to the original. Thanks for your kindness. 
You have always been a great help.

* chore: auto-fix linting and formatting issues

* chore: update ja.json

sync and update settings/ja.json

* chore: update Japanese translations for clarity and consistency

* chore: update some ja.json

* chore(locales): update Japanese translations with new entry actions and settings

* fix: update Japanese translations for user actions and login prompts

* feat(locales): add Japanese translations for login and registration features

* feat(locales): update Japanese translations for RSSHub and related settings

* chore: auto-fix linting and formatting issues

* feat(i18n): update Japanese locale with new toolbar customization and profile link social fields

* feat(locales): update Japanese translations for search results and two-factor authentication

* feat: 日本語ローカライズの更新

---------

Co-authored-by: dai <dai@users.noreply.github.com>
Co-authored-by: Innei <i@innei.in>
Co-authored-by: Innei <Innei@users.noreply.github.com>

* feat(desktop): real user deletion

* feat(mobile): real user deletion

* feat(settings): add accent color customization and update UI components

- Introduced accent color setting to allow users to customize the app's interface.
- Updated various components to utilize the new accent color, including buttons, sliders, and text elements.
- Added translations for accent color settings in English, Japanese, and Chinese.
- Refactored related styles in Tailwind CSS configuration to support the new accent color feature.

Signed-off-by: Innei <tukon479@gmail.com>

* fix: update text styling for feed parameters message

* feat: use insertedBefore for mark above read

* feat(mobile): use insertedBefore for mark above read

* fix: improved lightbox component for iOS (#4089)

* feat: replace Image component with ProxyImage for improved performance and styling

* fix: update Image component style prop

* fix: improved layout in ImageItem component

* feat: integrate animated ref for media preview in EntryPictureItem

* fix: option can not be press when out of screen in the FlatList

* fix: lint

* fix: types

* fix: update lock

* fix: lint

* chore: auto-fix linting and formatting issues

---------

Signed-off-by: Innei <tukon479@gmail.com>
Co-authored-by: Innei <tukon479@gmail.com>
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
Co-authored-by: Whitewater <me@waterwater.moe>
Co-authored-by: lawvs <18554747+lawvs@users.noreply.github.com>
Co-authored-by: DIYgod <i@diygod.me>
Co-authored-by: Konv Suu <2583695112@qq.com>
Co-authored-by: dai <dosada@gmail.com>
Co-authored-by: dai <dai@users.noreply.github.com>
Co-authored-by: Innei <i@innei.in>
Co-authored-by: Innei <Innei@users.noreply.github.com>
2025-07-07 16:55:37 +08:00
Whitewater 7afbc5958b
refactor: image preview handling on iOS (#3995)
* refactor: use lightbox to preview image on iOS

* refactor: replace atom-based image preview event handling with EventBus

* refactor: replace NotificationCenter with Combine

* chore: clean code
2025-06-24 16:53:27 +08:00
Whitewater 6a7ebd2c01
chore(mobile): upgrade dependencies for mobile (#3971)
* chore: upgrade dependencies

* chore: update dependencies for native example
2025-06-21 14:01:22 +08:00
Whitewater 524ad05002
feat: enhance scroll interactions in TimelineSelector (#3952)
* feat: enhance PagerView onScroll event to include position parameter for iOS

* feat: add TimelineSelectorDragProgress context and provider for managing drag state

* feat: enhance TimelineViewSelector with drag progress and animated item transitions

* feat: integrate drag progress into PagerList and TimelineViewSelector for enhanced user interaction

* feat: add animated icon transitions in ViewItem based on drag progress

* fix: add scrollViewDidEndDecelerating to trigger onScrollEnd callback

* fix: enhance PagerList to synchronize drag progress with timeline selection
2025-06-19 07:17:27 +00:00
Innei d8f76c5f6a
refactor(glow-effect): remove GlowEffect view and integrate animation handling
- Deleted the GlowEffect view implementation to streamline the module.
- Introduced IntelligenceAnimationController to manage animation presentation in a separate window.
- Updated AppleIntelligenceGlowEffectModule to utilize new showIntelligenceEffect and hideIntelligenceEffect functions for better encapsulation of animation logic.
- Added IntelligenceAnimationView for the new animation display.

Signed-off-by: Innei <tukon479@gmail.com>
2025-06-11 20:55:08 +08:00
Innei 8bcbb7b067
chore(dependencies): update react-native-uikit-colors and tailwindcss-uikit-colors to version 0.6.2
- Updated the version of react-native-uikit-colors from 0.5.2 to 0.6.2 in multiple package.json files.
- Updated the version of tailwindcss-uikit-colors from 0.6.0 to 0.6.2 in relevant package.json files.
- Ensured consistency across the project by aligning dependency versions.

These changes help maintain compatibility and leverage improvements in the updated packages.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-22 15:09:04 +08:00
Innei efc2e9713b
refactor: upgrade react 19 and react native 0.79 (#3661)
* update

Signed-off-by: Innei <tukon479@gmail.com>

* chore: update Babel and Metro configurations

- Added `unstable_transformImportMeta` option to Babel preset for improved JSX handling.
- Disabled `unstable_enablePackageExports` in Metro configuration for better package resolution.

Signed-off-by: Innei <tukon479@gmail.com>

* chore: add react-native-ios-utilities patch and update dependencies

- Introduced a patch for `react-native-ios-utilities` to enhance functionality.
- Updated `expo`, `react-native`, and `react-native-reanimated` versions in the example app for improved compatibility.
- Added `react-native-ios-utilities` to the project dependencies in `package.json`.

Signed-off-by: Innei <tukon479@gmail.com>

* update

Signed-off-by: Innei <tukon479@gmail.com>

* chore: auto-fix linting and formatting issues

* refactor: improve route parameter handling and entry fetching logic

- Updated `useRouteParams` to utilize `useReadonlyRoute` for better state management.
- Enhanced `useEntriesByView` to separate remote and local entry fetching, improving data handling and error management.
- Introduced debouncing for pagination in local entries and added toast notifications for error handling.
- Cleaned up entry ID retrieval to ensure uniqueness and prevent duplicates.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: simplify Masonry component return statement

- Updated the return statement in the Masonry component to use JSX syntax for better readability and consistency.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update import from RootPortalProvider to RootPortalContext

- Changed the import statement in Sheet.tsx to reflect the updated context provider name for better clarity and consistency in the codebase.

Signed-off-by: Innei <tukon479@gmail.com>

* update

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update ref types in component props

- Changed ref prop types from React.RefObject to React.Ref for better type compatibility across various components, enhancing overall code consistency and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

* feat: add Xcode build server configuration and enhance desktop app routing

- Introduced a new configuration file for the Xcode build server to streamline iOS builds.
- Updated Vite configuration to include a new proxy route for sharing functionality.
- Added a new Jotai atom for managing preview state in the application.
- Removed deprecated error fallback component to clean up the codebase.
- Implemented a new render style hook for consistent styling across components.
- Enhanced entry column components with improved error handling and layout adjustments.
- Updated various components to utilize the new render style and improved accessibility.

Signed-off-by: Innei <tukon479@gmail.com>

* update

Signed-off-by: Innei <tukon479@gmail.com>

* fix: ensure plugins array is initialized and update TypeScript configuration

- Initialized the plugins array in the mobile app configuration to prevent potential runtime errors.
- Updated TypeScript configuration to enhance module resolution and improve code organization with clearer path definitions.

Signed-off-by: Innei <tukon479@gmail.com>

* update lint

Signed-off-by: Innei <tukon479@gmail.com>

* refactor: update TypeScript types and improve component props

- Added `skipLibCheck` to TypeScript configuration for faster builds.
- Updated prop types in various components to allow for null values in refs, enhancing type safety.
- Refactored several components to ensure better type compatibility and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(mobile): improve layout handling in NavigationHeader component

- Added console logs for debugging right and left widths.
- Adjusted layout structure to ensure proper width handling for header elements.
- Updated loading indicator positioning and visibility logic.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(mobile): update Pager and QRCode components to use forwardRef

- Refactored Pager and QRCode components to directly export as functional components with forwardRef.
- Updated type definitions to improve ref handling and ensure better type safety.
- Simplified component structure for improved readability and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

* refactor(ui): enhance FAB components with functional component structure and improved type definitions

- Converted FABBase and FABPortable to functional components using FC type for better type safety.
- Updated props to include optional ref handling, enhancing flexibility in usage.
- Simplified component structure for improved readability and maintainability.

Signed-off-by: Innei <tukon479@gmail.com>

* chore(deps): update react-native-ios-utilities patch and refine TypeScript configuration

- Updated the patch for react-native-ios-utilities in pnpm-lock.yaml to reflect a new hash.
- Enhanced TypeScript configuration in tsconfig.json by adding exclusion for node_modules and formatting paths for better readability.
- Cleaned up the react-native-ios-utilities.patch by removing unused exports from the index file.

Signed-off-by: Innei <tukon479@gmail.com>

* update

Signed-off-by: Innei <tukon479@gmail.com>

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-07 16:30:30 +08:00
grtsinry43 ad3ac4926a
feat(mobile): implement custom tab bar and item pressable components on android native (#3613)
* feat(mobile): implement custom tab bar and item pressable components on android native

Adds native Android implementations for custom UI components previously available on iOS:

- **Custom Tab Bar:**
    - Implements `TabBarRootView` using `ViewPager2` and a custom `CustomTabBarView` (LinearLayout) to host RN-rendered tab items (`TabBarPortalView`).
    - Provides `TabScreenView` as a container for page content within Fragments managed by `TabBarPagerAdapter`.
    - Includes `TabBarModule`, `TabScreenModule`, and `TabBarPortalModule` for Expo autolinking and JS bridging (props: `selectedIndex`, event: `onTabIndexChange`, function: `switchTab`).
    - This approach mirrors the iOS version by avoiding the native `TabLayout` and allowing full customization of the tab bar via React Native components.

- **Item Pressable:**
    - Implements `ItemPressableView` extending `ExpoView`.
    * Provides native touch feedback using Android's foreground ripple (`selectableItemBackground`) by default.
    * Includes a prop `touchHighlight` to enable/disable feedback.
    * Fires `onItemPress` event on click/tap.
    * Includes `ItemPressableModule` for Expo integration.

* fix(mobile): Adjust content view `padding` to prevent overlap with Bottom Bar

* feat(mobile): implement native tab bar components and improve tab switching logic
2025-05-06 16:00:03 +08:00
Innei e9653d4a5b
refactor(pager): clean up code formatting and remove unused touch handlers
- Reformatted code for improved readability by adjusting indentation and spacing.
- Removed unused RCTTouchHandler instances from EnhancePagerView and TabBarRootView classes to streamline the codebase.
- Ensured consistent handling of page views in EnhancePagerController.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-27 14:47:49 +08:00
Innei 91b9fae6c5
refactor(desktop): update text styles and enhance tooltip functionality
- Replaced hardcoded text sizes with standardized 'text-body' class for consistency across various components.
- Wrapped TooltipContent in RootPortal for better rendering in EnhancedSettingsIndicator and SettingSyncIndicator components.
- Improved accessibility and visual consistency in EntryHeaderImpl and EntryContent components by updating text styles.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-27 14:26:40 +08:00
Innei 017d9864cd
fix(mobile): improve layout and styling consistency across components
- Adjusted padding in EntryTitle and EntryDetailScreen for uniformity.
- Updated HTML component to enhance structure and readability.
- Modified CSS classes in HTML and image components for better alignment.
- Cleaned up link component styles to remove unnecessary classes.

These changes enhance the overall user interface and maintain a consistent design throughout the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-22 12:57:03 +08:00
Innei 8096bf5c1e
feat(mobile): integrate expo-device for device type management
- Added expo-device package to manage device types.
- Implemented device type initialization in the app startup process.
- Created hooks and atoms for accessing device type throughout the app.
- Updated navigation logic to handle iPad-specific presentation styles.
- Removed unused loading indicator component.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-22 00:16:44 +08:00
Innei 769df4cde2
fix(mobile): hide native floating tabbar in ipad
- Updated the initialization of the UITabBarController to use a lazy property for better performance.
- Added conditional logic to manage tab bar visibility based on iOS version and device type.
- Removed redundant tab bar visibility setting from the initializer.
- Cleaned up code by removing unnecessary whitespace and improving readability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-21 23:28:30 +08:00
Innei 8602973016
feat(mobile): enhance EnhancePagerView with initialPageIndex prop
- Refactored EnhancePagerView to include an initialPageIndex property for better control over the starting page.
- Updated related components and specifications to support the new prop.
- Fixed a typo in the initialize method name for consistency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-17 00:48:01 +08:00
Innei 70ef539788
feat(mobile): refactor ItemPressable usage and styles
- Replaced TouchableOpacity with ItemPressable in multiple components for improved interaction handling.
- Introduced a new UnStyled option in ItemPressableStyle to allow for customizable styling.
- Updated ItemPressable implementation in RelativeDateTime, EntryNormalItem, and CategoryGrouped components to enhance touch feedback and visual consistency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-17 00:39:00 +08:00
Innei dbf6954da0
feat(mobile): trending screen
- Updated imports for EntryDetailScreen and FeedScreen to reflect new file structure.
- Introduced OnboardingScreen and PlayerScreen components to improve user onboarding and media playback experience.
- Added PhUsersBold icon component for enhanced UI consistency.
- Adjusted animation timing in ItemPressableModule for better touch feedback.
- Updated sitemap to reflect new screen paths.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-16 21:58:21 +08:00
Innei 102f66e264
fix(ios): fix tap gesture conflict handling and animation in ItemPressableModule
Signed-off-by: Innei <tukon479@gmail.com>
2025-04-16 19:43:03 +08:00
Innei 57dad99913
refactor(ios): use ItemPressable native view to handle gesture
Signed-off-by: Innei <tukon479@gmail.com>
2025-04-15 19:23:16 +08:00
Innei 16de0b54da
fix(mobile): update toast icons to use filled variants for better visibility
Signed-off-by: Innei <tukon479@gmail.com>
2025-04-09 21:12:21 +08:00
Innei 83e7764cf0
feat(mobile): replace SPIndicator with ToastViewSwift for notifications
Signed-off-by: Innei <tukon479@gmail.com>
2025-04-09 20:31:50 +08:00
Innei 4fc8ec3f42
feat: scrollview scroll to end detection
- Refactored HelperModule to include new async functions for scrolling and image handling.
- Removed ProfileViewModule and associated UI components to streamline the codebase.
- Updated expo-module.config.json to reflect the removal of ProfileViewModule.
- Improved SafeNavigationScrollView and TimelineSelectorList to utilize new scroll handling features.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-07 19:31:56 +08:00
Innei 93393f19fc
feat(pager): enhance pager functionality with gesture support and UI updates
- Updated `Pager.tsx` to use `Pressable` for better interaction handling.
- Modified `EnhancePagerController.swift` to manage content views more effectively.
- Enhanced `EnhancePagerViewModule.swift` to support gesture recognition for smoother transitions.
- Refactored `usePagerView.ts` to utilize animated values for page transitions.

These changes improve user experience and interaction within the pager component.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-01 18:05:47 +08:00
Innei 59b8e91ada
feat(mobile): support copy for ai summary card, and optimize style
- Added `react-native-uikit-colors` dependency to the mobile example.
- Updated `App.tsx` to utilize `useCurrentColorsVariants` for dynamic theming.
- Modified `summary.tsx` to improve animated content display and height management.
- Enhanced `hooks.ts` to set a longer stale time for summary data.
- Refactored `store.ts` to manage pending summary generation promises more effectively.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-31 23:19:34 +08:00
Innei 9c7901356f
refactor(pager): simplify Pager component and enhance iOS functionality
- Replaced the custom native view with a more streamlined PagerView component.
- Updated the Pager component to utilize hooks for page rendering and state management.
- Introduced new methods in EnhancePagerController for better state handling and page transitions.
- Fixed method naming inconsistencies in EnhancePagerViewModule.
- Removed unused ScaleFadeRotate animation component.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-31 18:25:52 +08:00
Innei b2cafedae8
feat(ios): native enhance page view
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-31 17:05:52 +08:00
Innei a6d264de85
refactor: follow native example and int native pager view
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-31 00:49:58 +08:00
Innei 936dfa9082
fix: setting sync queue
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-29 22:00:05 +08:00
Innei 62e83822bd
chore(mobile): update iOS deployment target and podspec platform versions
- Removed the deployment target for iOS in app.config.ts.
- Updated the iOS and tvOS platform versions in FollowNative.podspec from '17.0' to '15.1'.
- Cleaned up unused spacing in ProfileView.swift.

These changes ensure compatibility with older iOS versions while maintaining code clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 21:15:05 +08:00
Innei 1cd67cdac5
feat(mobile): enhance image sharing functionality with URL support
- Updated UIImage extension to include URL handling in the activity item source.
- Modified HelperModule to accept an optional URL parameter when sharing images.
- Adjusted ImageContextMenu to pass the image URL during sharing actions.

This improves the image sharing experience by allowing users to share images along with their associated URLs.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 18:29:01 +08:00
Innei 7ce1242f30
fix: image context menu actions via native code, fixed #3262
- Introduced a new UIImage extension to create a UIActivityItemSource, allowing images to be shared with titles and URLs.
- Enhanced HelperModule with new functions to save, share, copy images, and retrieve base64 from UIImageView.
- Updated MediaCarousel to use preview_image_url for video context menus.
- Refactored Image and ImageContextMenu components for improved image handling and context menu actions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 16:50:21 +08:00
Innei 626e54dd84
fix(mobile): image preview can dismiss if image load error
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 14:48:51 +08:00