- 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>
- 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>
- 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>
- 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>
* 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>
* 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
- 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>
- 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>
* 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>
* 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
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>
- 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>