Commit Graph

13 Commits

Author SHA1 Message Date
DIYgod 1bd65fbae7 fix(mobile): keep the RNFB Podfile block inside post_install
The follow-rnfb-ios-compat block was inserted a fixed 7 lines after
`post_install do |installer|`. In the Expo SDK 57 template that hook is
only the react_native_post_install call and its `end`, so a regenerated
Podfile got the block after the `end`, referenced `installer` outside
the hook and failed `pod install`.

Anchor on the `end` that closes post_install instead, so the block is
always the last thing in the hook and runs after
react_native_post_install. mergeContents now accepts an anchor function
for this. Podfiles that already contain the tagged block are still
updated in place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:05:28 +08:00
DIYgod bedc3bc6d0 fix(mobile): raise pod deployment targets to the app floor for Xcode 27
Xcode 27 refuses the iOS 9.0 and 12.0 deployment targets that older pods still
declare on their resource bundle targets, and its Swift compiler rejects
react-native-ios-context-menu, which uses UIAction.subtitle behind an iOS 15
availability check. The app requires iOS 16.4, so the Podfile now raises every
pod target to at least ios.deploymentTarget in post_install; the config plugin
generates the block and the checked-in Podfile carries it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 18:22:56 +08:00
DIYgod d8a7e10f4c fix(mobile): align expo sdk 55 build deps 2026-04-15 08:39:04 +08:00
DIYgod cc6c86ade3 fix(mobile): unblock ios archive on expo sdk 55 2026-04-11 10:08:38 +08:00
DIYgod f77ac26541 feat(mobile): upgrade expo sdk 55 and rnfirebase 2026-04-10 22:42:21 +08:00
DIYgod 65c18693da fix(mobile): avoid android modal header overlap (#4907) 2026-03-11 11:43:41 +08:00
DIYgod 93e4a3b48f feat: add cross-platform e2e coverage (#4901)
* feat: add cross-platform e2e coverage

* fix: stabilize desktop e2e navigation

* fix: harden desktop e2e read flow

* fix: harden desktop e2e auth and follow flows

* fix: stabilize desktop e2e discover entry flows

* fix: run android e2e in a single shell

* fix: speed up mobile e2e builds in ci

* fix: build android e2e app from mobile workspace

* fix: invoke android gradle build from repo root

* fix: use absolute path for android ci build

* fix: restore android eas build in ci

* fix: target iOS simulator by udid in ci

* fix: align desktop e2e with discover card flow

* fix: reorder web e2e after relogin

* fix: navigate web e2e via real hash url

* fix: close stale settings modal before reopening

* fix: track android maestro flows

* fix: wait for settings router in web e2e

* fix: wait for web settings sync propagation

* fix: stabilize desktop e2e settings flows

* fix: harden desktop e2e regressions

* fix: stabilize desktop e2e selectors

* fix: read desktop entry state from locators

* fix: relax desktop e2e entry assertions

* fix: avoid waiting on missing desktop feed ids
2026-03-10 11:32:00 +08:00
DIYgod d4aa9f40d0 fix(mobile): stabilize preview login and asset build (#4853) 2026-02-15 15:14:31 +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 547a4fdc96 feat(mobile): lightbox (#3882)
* feat(mobile): lightbox

* chore: auto-fix linting and formatting issues

* feat: enhance back handler to close lightbox when active

* feat: integrate Lightbox component and move SafeAreaProvider to RootProviders

* refactor: update renderItem function to use destructured props

* feat: add Android manifest plugin to enable large heap size

* fix: add rounded corners to AspectRatioImage

* feat: set priority to high for image loading in ImageItem component

* chore: remove unused zIndex from ImageViewing

* feat: update ImageDefaultHeader and LightboxFooter for improved layout

* chore: simplify renderItem function signature in PagerList and Subscriptions components

* refactor: update galeria

* chore: tweak component

* feat: integrate lightbox functionality for media previews
2025-06-12 13:52:07 +08:00
Whitewater e26d88146f fix: android in rn0.79 (#3677)
* chore: remove react-native-edge-to-edge package

* fix: patch react-native-track-player

* fix: simplify initialization of i18n and root component

* chore: remove unused Android day/night theme plugin

* fix: enable edge-to-edge display for Android and set StatusBar style to auto

* chore: lint
2025-05-08 01:40:07 +08:00
Whitewater 9648adb63c fix(mobile): add day/night theme plugin for Android styling (#3572) 2025-04-24 16:44:48 +08:00
DIYgod 2d069023d8 feat(mobile): trust user certs in android (#3547)
* feat(mobile): trust user certs in android

* feat(mobile): trust user certs for non production only
2025-04-22 09:05:19 +08:00