- Added a check to determine if children are present before rendering them in the button.
- Improved button rendering logic for better handling of empty or false children values.
- Added a new `isRefreshing` state to streamline loading logic for the refresh button.
- Updated the refresh button's disabled and loading states for better user experience.
- Simplified the refresh button content display.
- Revised translations for the refresh action in both English and Chinese locales.
- Enhanced styles for button alignment and SVG display.
- Introduced effective view mode logic to manage 'paged' and 'all' views based on file count.
- Added a warning for too many files when in 'all' view, prompting users to switch to 'paged'.
- Updated refresh button to handle loading states more effectively and provide clearer user feedback.
- Enhanced UI with new translations for view modes and refresh actions.
- Adjusted styles for better alignment and spacing in the view mode toggle and refresh button.
- Use unique ID prefix for clipPath to avoid duplicate ID issues
- Add cleanup function to initializeTheme to prevent memory leak
- Change tooltip to show action description instead of current theme name
- Add 'auto' to Theme type
- Implement cycleTheme (light -> dark -> auto)
- Add autoTheme icon (sun with half-filled center)
- Listen to system theme changes in auto mode
Also includes some Prettier formatting fixes.
- Add log line parser to extract timestamp, level, status code, latency, IP, HTTP method, and path
- Implement virtual scrolling with load-more on scroll-up to handle large log files efficiently
- Replace monolithic pre block with structured grid layout for better readability
- Add visual badges for log levels and HTTP status codes with color-coded severity
- Add IconRefreshCw icon component
- Update ToggleSwitch to accept ReactNode as label
- Fix fetchConfig calls to use default parameters consistently
- Add request deduplication in useConfigStore to prevent duplicate /config API calls
- Add i18n keys for load_more_hint and hidden_lines