oomeow
dd3ef698f5
feat: sticky groups ( #7195 )
...
* feat(proxy): implement sticky virtual list and group tools
- Add new StickyVirtualList component for better performance with sticky headers
- Create ProxyGroupTools component for filtering, sorting and testing proxy groups
- Enhance proxy groups with improved scrolling and group toggle functionality
- Integrate search box with click event handling
- Remove redundant ProxyHead component usage
* style: remove unused import and update TypeScript types
* refactor: convert function component to forwardRef component to fix biome lint error
* feat(proxy): extract proxy chain UI to separate component
* refactor: remove custom throttle implementation and simplify dependencies
* feat(proxy): improve proxy groups UI and scrolling behavior
- Add initialOffset prop to StickyVirtualList for better scroll position restoration
- Refactor ProxyGroups component to separate chain and normal modes
- Implement scroll position persistence for both chain and normal modes
- Add sticky shadow effect for expanded proxy groups
- Remove unnecessary ScrollTopButton component
- Optimize scroll event handling with throttling
- Improve code organization with custom hooks and component separation
* docs(proxy-groups): Add TODO comment for initial render position issue
* feat(proxy): improve scroll position handling and UI display
* refactor(proxy): simplify scroll handling logic and remove unused code
* fix(sticky-virtual-list): remove duplicate styles and add padding
* refactor(proxy): rename scroll offset variables and functions for clarity
* refactor: remove unnecessary refs and simplify onClick handlers
* fix(proxy-groups): handle initial scroll position state
* feat(zed): add biome formatter configuration
* refactor(proxy): remove unused headState import and type annotations
* style(proxy): improve type imports and conditional rendering
* .
* feat(proxy): add ProxyHead component to render in global mode
* chore: ignore .zed directory
* docs: update changelog
2026-07-02 13:22:40 +00:00
Tunglies
54d130a0c4
fix lint violations
2026-05-21 18:49:12 +08:00
wonfen
15de400f2f
fix: align backup dialogs with in-app modal behavior
2026-05-20 10:24:11 +08:00
Tunglies
a60ef75061
perf: lazy load monaco editor
2026-05-14 02:31:20 +08:00
71dc5f0bdb
chore(deps): update npm dependencies to v9 (major) ( #6819 )
...
* fix: replace DeleteOutline with DeleteOutlined icon in BackupHistoryViewer
* chore(deps): update npm dependencies to v9
* refactor: bump @mui to v9
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-15 14:12:06 +00:00
Tunglies
d6d15652ca
refactor: migrate react-virtuoso to @tanstack/react-virtual
2026-04-03 17:13:13 +08:00
Slinetrac
c672a6fef3
refactor: lint ( #6511 )
...
* refactor: lint
* chore: remove eslint-plugin/config-prettier
2026-03-15 07:40:11 +00:00
JingxinXu and Slinetrac
bba71aaa4c
feat: added clear btn in filter component ( #6229 ) ( #6295 )
...
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2026-02-11 06:40:47 +00:00
98f12a9c72
chore(deps): lock file maintenance npm dependencies ( #6119 )
...
* chore(deps): lock file maintenance npm dependencies
* chore: run pnpm update
* fix(components): satisfy ESLint destructuring and narrow unknown errors
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2026-01-19 12:05:48 +08:00
Slinetrac
a981be80ef
refactor(base): expand barrel exports and standardize imports
2026-01-06 15:02:10 +08:00
Sline
ee5e5ee8a6
feat(sysproxy-viewer): add visual editor for bypass list with chips display ( #6007 )
2026-01-04 14:58:50 +08:00
Slinetrac
d91e19e166
chore: reorganize frontend files
2025-12-26 15:53:25 +08:00
Sukka and Slinetrac
8e48e4ed10
chore(eslint): add eslint-plugin-react-compiler ( #5918 )
...
* chore(eslint): add `eslint-plugin-react-compiler`
* refactor: fix eslint warnings and avoid in-render mutations
---------
Co-authored-by: Slinetrac <realakayuki@gmail.com >
2025-12-22 12:51:20 +08:00
Slinetrac
5afe11e55b
fix(monaco): disable MUI Dialog focus enforcement for Monaco editor #5885
...
Closes #5885
2025-12-20 16:12:45 +08:00
Sline
fc84dc561c
feat(notice): persist toast position preference ( #5621 )
...
* feat(notice): persist toast position preference
* docs: Changelog.md
2025-12-19 18:04:23 +08:00
Sline and Tunglies
b4e25951b4
feat(proxy): unify filter search box and sync filter options ( #5819 )
...
* feat(proxy): unify filter search box and sync filter options
* docs: fix JSDoc placement
* refactor(search): unify string matcher and stabilize regex filtering
* fix(search): treat invalid regex as matching nothing
* docs: update changelog to include advanced filter search feature for proxy page
---------
Co-authored-by: Tunglies <77394545+Tunglies@users.noreply.github.com >
2025-12-19 17:12:36 +08:00
Slinetrac
bae65a523a
chore: rename files to kebab-case and update imports
2025-12-09 13:52:42 +08:00
Slinetrac
a572708fd8
fix(search): prevent crash on invalid regex input in search box
...
Closes #5609
2025-11-26 18:40:22 +08:00
Slinetrac
f315a98afd
fix: monaco editor line count limit
2025-11-17 07:41:37 +08:00
c8aa72186e
chore: i18n ( #5276 )
...
* chore: notice i18n
* feat: add script to clean up unused i18n keys
* chore: cleanup i18n keys
* refactor(i18n/proxies): migrate proxies UI to structured locale keys
* chore: i18n for rule module
* chore: i18n for profile module
* chore: i18n for connections module
* chore: i18n for settings module
* chore: i18n for verge settings
* chore: i18n for theme settings
* chore: i18n for theme
* chore(i18n): components.home.*
* chore(i18n): remove unused i18n keys
* chore(i18n): components.profile.*
* chore(i18n): components.connection
* chore(i18n): pages.logs.*
* chore(i18n): pages.*.provider
* chore(i18n): components.settings.externalCors.*
* chore(i18n): components.settings.clash.*
* chore(i18n): components.settings.liteMode.*
* chore(i18n): components.settings.backup.*
* chore(i18n): components.settings.clash.port.*
* chore(i18n): components.settings.misc.*
* chore(i18n): components.settings.update.*
* chore(i18n): components.settings.sysproxy.*
* chore(i18n): components.settings.sysproxy.*
* chore(i18n): pages.profiles.notices/components.providers.notices
* refactor(notice): unify showNotice usage
* refactor(notice): add typed showNotice shortcuts, centralize defaults, and simplify subscriptions
* refactor: unify showNotice usage
* refactor(notice): unify showNotice API
* refactor(notice): unify showNotice usage
* chore(i18n): components.test.*
* chore(i18n): components.settings.dns.*
* chore(i18n): components.home.clashInfo.*
* chore(i18n): components.home.systemInfo.*
* chore(i18n): components.home.ipInfo/traffic.*
* chore(i18n): navigation.*
* refactor(i18n): remove pages.* namespace and migrate route texts under module-level page keys
* chore(i18n): common.*
* chore(i18n): common.*
* fix: change error handling in patch_profiles_config to return false when a switch is in progress
* fix: improve error handling in patch_profiles_config to prevent requests during profile switching
* fix: change error handling in patch_profiles_config to return false when a switch is in progress
fix: ensure CURRENT_SWITCHING_PROFILE is reset after config updates in perform_config_update and patch_profiles_config
* chore(i18n): restructure root-level locale keys into namespaces
* chore(i18n): add missing i18n keys
* docs: i18n guide
* chore: adjust i18n
* refactor(i18n): align UI actions and status labels with common keys
* refactor(i18n): unify two-name locale namespaces
* refactor(i18n/components): unify locale keys and update component references
* chore(i18n): add shared and entities namespaces to all locale files
* refactor(i18n): consolidate shared and entity namespaces across features
* chore(deps): update npm dependencies to ^7.3.5 (#5310 )
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* refactor(i18n): migrate shared editor modes and consolidate entities namespaces
* tmp
* refactor(i18n): flatten locales and move theme/validation strings
* docs: CONTRIBUTING_i18n.md
* refactor(i18n): restructure feedback and profile namespaces for better organization
* refactor(i18n): unify settings locale structure and update references
* refactor(i18n): reorganize locale keys for home, proxies, rules, connections, logs, unlock, and tests
* refactor(i18n/feedback/layout): unify shared toasts & normalize layout namespace
* refactor(i18n): centralize common UI strings in shared
* refactor(i18n): flatten headers and unify locale schema
* refactor(i18n): consolidate duplicate per-feature translations into shared namespace
* refactor(i18n): split locales into per-namespace files
* style: lint
* refactor(i18n): unify unlock UI translations under tests namespace
* feat(i18n): add type-checked translation keys
* style: eslint import order
* feat(i18n): replace ad-hoc loader with rust-i18n backend bundles
* chore(prebuild): remove locale-copy step
* fix(i18n, notice): propagate runtime params and update cleanup script path
* fix(i18n,notice): make locale formatting idempotent and guard early notice translations
* fix(i18n): resolve locale aliases and match OS codes correctly
* fix(unlock): use i18next-compatible double-brace interpolation in failure notice
* fix(i18n): route unlock error notices through translation keys
* fix(i18n): i18n types
* feat(i18n): localize upgrade notice for Clash core viewer
* fix(notice): ensure runtime overrides apply to prefix translations
* chore(i18n): replace literal notices with translation keys
* chore(i18n): types
* chore(i18n): regen typings before formatting to keep keys in sync
* chore(i18n): simply labels
* chore(i18n): adjust translation
* chore: remove eslint-plugin-i18next
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend (#5341 )
* chore(i18n): translate settings.json (missed in previous pass) (#5343 )
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend
* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend
* fix(i18n-tauri): quote placeholder-leading value in ko.yml to prevent rust_i18n parse panic
* chore(i18n): translate settings.json (forgot to include previously)
---------
Co-authored-by: rozan <34974262+thelojan@users.noreply.github.com >
2025-11-08 19:40:38 +08:00
Slinetrac
65cf6c387b
refactor: base components
2025-10-14 21:13:10 +08:00
Tunglies
1176f8c863
feat: refactor app data provider and context for improved data management and performance
2025-10-04 21:20:31 +08:00
Tunglies
d9a5c11d6a
refactor: improve code readability and consistency in proxy-chain and uri-parser utilities
...
refactor: add keys to icons in routers for improved rendering and performance
refactor: optimize RegExp polyfill by using Object.prototype.hasOwnProperty.call
refactor: reorder imports in chain-proxy-provider for consistency
refactor: remove unused "obfs-opts" property from IProxySnellConfig interface
refactor: reorganize imports and enhance refresh logic in app data provider
refactor: re-enable prop-types linting for better type safety in BaseDialog component
refactor: update dependencies in effect hooks for improved stability and performance
2025-09-20 11:19:36 +08:00
Tunglies
627119bb22
Refactor imports and improve code organization across multiple components and hooks
...
- Consolidated and reordered imports in various files for better readability and maintainability.
- Removed unused imports and ensured consistent import styles.
- Enhanced the structure of components by grouping related imports together.
- Updated the layout and organization of hooks to streamline functionality.
- Improved the overall code quality by following best practices in import management.
2025-09-18 23:34:38 +08:00
Tunglies
324628dd3d
refactor: replace 'let' with 'const' for better variable scoping and immutability
2025-09-18 23:07:18 +08:00
Tunglies
409571f54b
refactor: remove unused notification permission hook and related code
2025-09-18 19:13:23 +08:00
Tunglies
475a09bb54
feat: comprehensive oxlint cleanup - remove unused code
...
🧹 Cleanup Summary:
- Fixed 83 oxlint warnings across 50+ files
- Removed unused imports, variables, and functions
- Maintained all functional code and error handling
- Improved bundle size and code maintainability
📝 Key Changes:
- Cleaned unused React hooks (useState, useEffect, useClashInfo)
- Removed unused Material-UI imports (useTheme, styled components)
- Deleted unused interfaces and type definitions
- Fixed spread operator usage and boolean casting
- Simplified catch parameters where appropriate
🎯 Files Modified:
- React components: home.tsx, settings, profiles, etc.
- Custom hooks: use-*.ts files
- Utility functions and type definitions
- Configuration files
✅ Result: 0 oxlint warnings (from 83 warnings)
🔧 All functionality preserved
📦 Reduced bundle size through dead code elimination
2025-08-22 18:48:56 +08:00
Dyna
660c03a564
optimization: (fix: the crash when inputting special characters in the search box ( #4026 )) ( #4029 )
...
* add a test rule
* add translation support
2025-07-10 21:09:02 +08:00
Dyna
1d49d79af2
fix: the crash when inputting special characters in the search box ( #4026 )
...
* add special character escapes
* update logs
2025-07-10 13:34:37 +08:00
TianHua Liu
b7cb511032
perf(Notice): replace useState by useSyncExternalStore ( #3682 )
...
* fix: the first function call creates multiple axios instances
* perf(Notice): replace useState by useSyncExternalStore
* chore: prettier --check .
* fix: prettier format
2025-06-12 20:49:39 +08:00
Tunglies
09969d95de
feat: add rustfmt configuration and CI workflow for code formatting
...
refactor: streamline formatting workflow by removing unused taplo steps and clarifying directory change
refactor: remove unnecessary directory change step in formatting workflow
2025-06-06 22:13:11 +08:00
wonfen
dc798fe2dd
chore: update deps & replace deprecated elements
2025-05-05 00:26:04 +08:00
wonfen
8296675574
refactor: notification system
2025-05-04 22:17:08 +08:00
TianHua Liu
30ca547e50
fix: Notice @ts-ignore ( #2896 )
...
thx
2025-03-07 12:46:30 +08:00
wonfen
23f75598e5
feat: Enhance configuration validation and error handling during app startup
2025-02-24 06:21:32 +08:00
wonfen
1291c38d58
feat: Enhance configuration validation and error handling
...
- Improve config validation process with detailed logging and error tracking
- Add more robust error handling in profile updates and config patches
- Implement comprehensive config validation using clash core subprocess
2025-02-23 10:53:09 +08:00
wonfen
3b4013a1b0
fix: resolve deprecated warnings in console
2025-02-18 07:10:28 +08:00
wonfen
9696c7cec0
style: Increased light color contrast to prevent blurring on some displays
2024-11-26 01:05:30 +08:00
huzibaca
dca25637c9
feat: add logger highlighting, support regular and case matching
2024-11-19 04:10:10 +08:00
huzibaca
27a78af269
fix: syntax issues caused by upgrading mui5
2024-11-12 20:05:28 +08:00
huzibaca
c22e4e5e2c
chore: update
2024-11-08 21:46:15 +08:00
huzibaca
95c6578911
fix incorrect usage of useCustomTheme
2024-10-29 09:07:08 +08:00
huzibaca
6cc81fe6b8
chore: update
2024-09-02 19:33:17 +08:00
MystiPanda
b09d5ff3c9
fix: unified switch style
2024-07-15 20:42:00 +08:00
MystiPanda
d9d9ca67cd
chore: unified icon style
2024-07-13 19:01:16 +08:00
dongchengjie
9dde385073
chore: group types locale
2024-07-07 21:56:20 +08:00
MystiPanda
8690b91632
chore: disable browser autocomplete
2024-07-07 11:16:59 +08:00
MystiPanda
c424e9dec8
chore: disable autocomplete
2024-07-02 19:02:05 +08:00
dongchengjie
606817ae06
chore: add rule list search-box
2024-07-02 17:32:49 +08:00
dongchengjie
ee9462c221
fix: await compatibility in #c648dc6
2024-06-26 18:29:50 +08:00