Commit Graph

51 Commits

Author SHA1 Message Date
DIYgod 7ca97e0208
fix: types 2025-11-06 21:16:06 +08:00
Innei c72c526664
chore: downgrade React and React-DOM to version 19.0.0 across all packages for compatibility
Signed-off-by: Innei <tukon479@gmail.com>
2025-10-22 01:06:50 +08:00
DIYgod baacb1c672
fix: package inconsistent versions 2025-10-21 17:20:39 +08:00
DIYgod 8757e5a2ef
fix: prettier tailwindcss classname sorting 2025-10-21 16:49:19 +08:00
Innei ef0af46e6f
fix: update text autospace classes in ListItem, EntryTitle, and ArticleLayout components
- Replaced `[text-autospace:auto]` with `autospace-normal` class in ListItem, EntryTitle, and ArticleLayout components to standardize text spacing.
- Added a new utility class `autospace-normal` in tailwind.css to ensure consistent text rendering across the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-19 23:44:44 +08:00
Innei 9e28fcd738
fix: update text autospace in ArticleLayout and HTML components
- Added `[text-autospace:auto]` class to the `className` property in both ArticleLayout and HTML components to enhance text rendering and improve readability.
- This change ensures better handling of text spacing across different content types.

Signed-off-by: Innei <tukon479@gmail.com>
2025-10-19 20:33:28 +08:00
Stephen Zhou b8eb83fe63
chore: lint 2025-09-19 22:24:30 +08:00
Whitewater cde799da4e
chore: update dependencies (#4488)
* chore: update deps

* chore: remove immer patch

* chore: revert @sentry/electron upgrade

* chore: update deps

* chore: dedupe
2025-09-16 19:19:52 +08:00
Stephen Zhou 54753326ea
fix(mobile): html render not work 2025-09-11 12:54:24 +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
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
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 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
lawvs e8dd69e478 fix: prevent link navigation for image-only children 2025-06-20 03:13:10 +08:00
Stephen Zhou b5478d8436
chore: add typecheck for rn-micro-web-app 2025-06-18 16:58:00 +08:00
Stephen Zhou c5bb56372a
chore: fix import in web app html-render 2025-06-18 16:52:29 +08:00
Innei e656cfd3a2
chore: update dependencies
- Changed the ESLint rule for "package-json-extend/ensure-package-version" from "warn" to "error" to enforce stricter package version checks.
- Updated various dependencies across multiple package.json files, including:
  - Upgraded @eslint/compat to version 1.2.9
  - Updated @types/node, @types/react, and @types/react-dom to their latest versions.
  - Bumped eslint to version 9.27.0 and lint-staged to version 16.1.0.
  - Updated several other packages such as turbo, tsx, and various Radix UI components to their latest versions.
- Ensured compatibility with the latest versions of dependencies.

Signed-off-by: Innei <tukon479@gmail.com>
2025-05-28 22:16:06 +08:00
Whitewater 6923d0e773
fix: add video support in entry content (#3816)
* chore: enable fullscreen video in NativeWebView

* feat: add video component support with controls in HTML parser
2025-05-26 14:58:50 +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
DIYgod 065d061521
fix(mobile): tailwind import path 2025-04-28 22:35:31 +08:00
Innei 4d746522f1
refactor: remove unused files and clean up project structure
- Deleted obsolete configuration files and unused components across various packages.
- Updated package.json files to reflect the removal of dependencies.
- Cleaned up code by removing unnecessary exports and unused imports in multiple modules.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-28 20:58:51 +08:00
Innei 1461daa79b
feat(ui): enhance CommandActionButton with tooltip description and update command label structure
- Added tooltipDescription prop to ActionButton for improved user guidance.
- Updated CommandActionButton to utilize the new tooltipDescription.
- Modified Command interface to replace subTitle with description for better clarity.
- Adjusted entry command registration to include description in labels.
- Updated various components to ensure consistent text color usage for better readability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-04-24 21:30:59 +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
DIYgod 4654dc92c2
fix(mobile): images in the body cannot be displayed without specified width and height 2025-04-18 22:52:36 +08:00
DIYgod 2881d655ee
feat: staging build (#3365)
* feat: move constants isElectronBuild

* feat: move constants isWebBuild

* feat: unified isDev

* feat: unified isProd

* chore: staging build

* update

* fix

* fix

* feat: staging icons

* fix
2025-03-30 22:13:11 +08:00
Stephen Zhou abc35be47c
feat: translate on server, global action setting (#3294)
* refactor: translate on server

* refactor: remove summary and translation action

* enable summary and translation from settings

* remove translate and summary from action

* follow setting

* ignore whitespace change

* correct content translation for social item

* update

* update

* fix content

* global setting for summary on mobile

* translation store

* show and cache translation

* update migrate sql

* token header for social sign in

* remove readabilityContent in web view

* ci debug

* check repository

* ci check condition

* fix readability

* show entry content translation

* update

* update

* translation for social item

* Revert "remove translate and summary from action"

This reverts commit c8a195a9b224b308cbcd86a6293ffae03e946a72.

* update text

* support global,once,action summary and translation

* fix condition

* refactor

* refactor: extract use entry translation hook

* update

* rename

* Revert "rename"

This reverts commit 672092f88c04670c7e1017aaf8b9caa6499f1877.

* update

* update

* fix

* translation header action

* unsave prompt

* chore: auto-fix linting and formatting issues

* connect and row

* prompt on mobile before leave

* update

* follow action setting

* hide button when follow action

* update changelog
2025-03-28 15:14:03 +08:00
Innei b67685b6c1
feat(mobile): enhance image preview and URL scheme handling in iOS
- Implement FollowImageURLSchemeHandler for custom image loading and caching
- Update ImagePreview to support loading images from URLs
- Modify WebView configuration to use new image URL scheme handler
- Remove deprecated image preview methods
- Update bridge data structure for image preview
- Refactor image preview logic across multiple modules

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-12 00:05:14 +08:00
Stephen Zhou a110bbae4f
refactor(mobile): rename sourceContent to readabilityContent (#3013)
* refactor(mobile): rename sourceContent to readabilityContent

* update
2025-03-10 11:20:20 +08:00
Stephen Zhou 699b4d0ad8
feat(mobile): readability (#2978)
* feat(mobile): readability support

* update

* update

* silent lint

* chore: auto-fix linting and formatting issues

* update

* update

* manually trigger fetch
2025-03-06 15:50:45 +08:00
Stephen Zhou 414fee8c46
build: fix import path (#2932) 2025-03-02 18:01:11 +08:00
DIYgod 8b07a9a573
chore: desktop dir (#2924)
* chore: desktop dir

* chore: desktop src and configs

* chore: auto-fix linting and formatting issues

* fix: path

* fix: path

* fix: path

* fix: path

* fix

* fix

* fix

* test

* test

* test

* test

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

---------

Co-authored-by: DIYgod <8266075+DIYgod@users.noreply.github.com>
2025-03-02 17:19:22 +08:00
Innei 956d9dfd1e
feat(mobile): add titles and improve navigation screen configurations
Signed-off-by: Innei <tukon479@gmail.com>
2025-02-24 20:47:53 +08:00
Innei 5e53dd4927
feat(mobile): improve debug button with gesture handling and persistent position
Signed-off-by: Innei <tukon479@gmail.com>
2025-02-24 19:43:09 +08:00
Innei 0d219a5a28
chore(mobile): Configure CI environment for build and asset handling
- Add CI environment variable to GitHub Actions workflow for iOS build
- Update app configuration to use CI-specific asset paths
- Modify Vite configuration for HTML renderer to support CI build output

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-19 21:37:06 +08:00
Innei 5d340ec0ca
feat(mobile/html-renderer): Add WrappedElementProvider for dynamic element tracking
- Introduce WrappedElementProvider to track element size and position
- Create ProviderComposer for composing multiple context providers
- Add hooks for accessing wrapped element details
- Update HTML component to use new provider
- Enhance image rendering with dynamic width calculation

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-19 21:23:18 +08:00
Innei 9113c0a2e5
feat(mobile): Add media preview accessories and no-media rendering support
- Enhance PreviewImage with optional Accessory component
- Update PreviewPageProvider to support rendering accessories in image preview
- Add noMedia prop to EntryContentWebView for selective media rendering
- Implement EntryGridItemAccessory to show entry details in image preview
- Update HTML renderer to support noMedia configuration

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-19 20:07:48 +08:00
DIYgod 36ea29ae7d
chore: update dependencies 2025-02-19 15:27:20 +08:00
Innei 63a1774635
refactor: reorganize html-renderer project structure and imports
This commit includes several structural changes:
- Added Vite alias for `~` to simplify imports
- Moved atoms and hooks into `src` directory
- Updated import paths across components
- Removed unused hooks and files

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-14 17:30:11 +08:00
Innei 62fea74c24
refactor: replace cn utility with clsx and update imports
Signed-off-by: Innei <tukon479@gmail.com>
2025-02-14 17:26:42 +08:00
Innei fcdf4df5b2
chore: add eas build ci (#2741)
* eas build

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

* fix pnpm

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

* fix

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

---------

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-13 21:56:24 +08:00
Innei bc252c33a0
refactor(mobile): improve AI summary component and remove unused assets
- Remove Media.xcassets and Accent color set
- Update Utils.swift to hardcode accent color
- Enhance AISummary component with error handling and retry functionality
- Adjust layout and styling for AI summary
- Update image size calculation to handle undefined dimensions

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-12 20:42:01 +08:00
Innei db5bd2641c
refactor(mobile): simplify heading component and remove unused imports
Signed-off-by: Innei <tukon479@gmail.com>
2025-02-12 00:18:06 +08:00
Innei b7fce0e640
fix(mobile): update web-app build script and workspace configuration
- Modify pnpm workspace to point to 'web-app' directory
- Update web-app package.json build script to run build from html-renderer subdirectory

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-10 16:54:50 +08:00
Innei 160eb14258
feat(mobile): add reader inline style rendering option
- Implement dynamic inline style rendering for WebView content
- Create new atom for managing reader inline style preference
- Update EntryContentWebView to support toggling inline style rendering
- Modify HTML renderer to conditionally apply inline styles

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-10 16:39:37 +08:00
Innei 70e1de5a27
feat(mobile): add dynamic code highlighting theme support in WebView
- Implement code theme selection for light and dark modes
- Add Shiki code highlighter with dynamic theme loading
- Create atoms and hooks for managing code highlighting themes
- Enhance WebView rendering with customizable code block styling

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-10 16:28:42 +08:00
Innei ad06db9744
feat(mobile): enhance CORS handling and image loading in WebView
- Add CORS headers to CustomURLSchemeHandler for cross-origin requests
- Implement custom URL scheme protocol for image loading in MarkdownImage
- Replace HTTP/HTTPS URLs with a custom protocol to enable cross-origin image rendering

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-08 22:47:47 +08:00
Innei b534667c05
feat(mobile): enhance HTML renderer with image rendering and blurhash support
- Add blurhash and image scaling to MarkdownImage component
- Implement useCalculateNaturalSize hook for responsive image sizing
- Create atoms and types for entry model and media
- Update HTML renderer to support dynamic image rendering with Jotai state management
- Improve iOS image preview with save functionality and dynamic root view controller retrieval

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-08 19:12:47 +08:00
Innei 0011861e3f
feat(mobile): enhance iOS image preview with SDWebImage and improved QuickLook handling
- Add SDWebImage dependency to FollowNative.podspec
- Refactor ImagePreview and PreviewControllerController for robust image preview
- Implement dynamic file extension handling for image preview
- Update WebView bridge to support more flexible image preview payload
- Improve MarkdownImage component to use Uint8Array for image conversion

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-08 17:50:13 +08:00
Innei 975285ec30
feat(mobile): implement native image preview with QuickLook on iOS
- Add ImagePreview helper class for displaying images using QuickLook
- Extend HelperModule with previewImage function to load and display images
- Update WebView bridge to support image preview from web content
- Implement MarkdownImage component with base64 image conversion
- Add cross-platform quickLookImage method for native image preview

Signed-off-by: Innei <tukon479@gmail.com>
2025-02-08 01:24:56 +08:00