Skip to content

Commit 58ba99e

Browse files
JoshHuang9508zhchentwcstrikeasiamcg25035
authored
Release 0.3.18
* feat: server announcement (#251) * feat: server announcement popup * style: background * fix: format and remove unused styles * fix: correct import casing for ServerAnnouncement and update styles --------- Co-authored-by: Whydog <joshhuang9508@gmail.com> * fix: fix file names that do not follow naming conventions * feat: invite friends (#250) * feat: initialize invite friend UI - added partial UI components * feat: invite friend (UI/UX) - added friend list (groups and individual friends) - adjust display layout of friend rows - add selection functionality (select all, group select, individual select) - add translation content * ditto - removed unused variables and logic - added usage comments - adjust disabled styles * ditto * fix: incorrect variable naming * feat: invite friend feature - switch message sending to Markdown format - add custom hyperlink component for in-app actions and page navigation * fix: handle legacy invite flow - send direct invite links to clients that do not support the invite UI * fix: adjust disabled styles for invite friend feature * feat: translation content * style: button css * refactor: update types and improve server search logic in ActionLink component - Changed type imports to use Types namespace for better clarity. - Updated server search logic to use an object for the query parameter. - Cleaned up imports and ensured consistent display names for components. * refactor: simplify onClick handler in ActionLink component * feat: add inviteFriend function and refactor ActionLink component - Introduced a new `inviteFriend` function in `popupLoader.ts` to handle friend invitations. - Refactored `ActionLink` component to support dynamic hrefs and improved rendering logic. - Updated `MarkdownContent` to utilize the new `ActionLink` for invitation links. - Adjusted translations for server invitation content to use prefix and suffix structure. - Removed deprecated `popupLoader.ts` file as its functionality is now integrated elsewhere. * style: reorder and refine CSS properties across multiple stylesheets --------- Co-authored-by: Whydog <joshhuang9508@gmail.com> * feat: change icon (#252) Co-authored-by: Miyashooooo <cstrike.asia@gmail.com> * fix: close event log window when leaving server * fix: adjust permission validation for group settings view - update settings display logic to ensure only users with appropriate permissions can fully view channel and group information * feat: translation content * feat: support GIF uploads for user info * fix: remove unused content * refactor: better renderring (#254) * init * refactor: enhance component structure and improve performance - Updated various components to utilize React.memo for performance optimization, reducing unnecessary re-renders. - Refactored state management and event handling in components like ChannelList, FriendList, and UserInfoCard for improved clarity and maintainability. - Standardized the use of hooks and memoization across components to ensure consistent behavior and enhance performance. - Adjusted CSS styles for better layout consistency and user interaction across multiple components. - Improved localization handling in app.json for better translation support. * refactor: integrate Redux for state management and enhance component structure - Introduced Redux for state management, adding slices for action messages, announcements, channel events, and more to streamline data handling across the application. - Updated components to utilize the new `useAppSelector` and `useAppDispatch` hooks for accessing and dispatching state. - Refactored various components, including ChannelList, FriendList, and UserTab, to improve clarity and maintainability by leveraging Redux state. - Enhanced localization handling in the application, ensuring consistent language support and improved user experience. - Cleaned up component structure and optimized performance by implementing memoization where applicable. * fix: change tab to home when join new server while in server * refactor: enhance component structure and improve type usage - Updated various components to utilize TypeScript types for better clarity and maintainability. - Refactored state management in components like ActionLink and FriendList to improve performance and readability. - Introduced new constants for server types and kick reasons in constant.ts for better organization. - Cleaned up event handling and improved function naming conventions across multiple components. - Enhanced localization handling and ensured consistent usage of hooks throughout the application. * refactor: update component props and improve type usage - Changed several component props from interface declarations to export interfaces for better type management. - Refactored state management in components like ChannelList and MessageInputBox to enhance clarity and performance. - Updated the loading context to streamline loading state handling across the application. - Improved the usage of hooks and memoization in various components for optimized rendering. - Cleaned up unused variables and improved function naming conventions for better readability. * refactor: improve component structure and state management - Updated various components to utilize `shallowEqual` for optimized state selection in Redux. - Refactored props handling in components like `UserTab`, `FriendTab`, and `ChannelTab` for better clarity and maintainability. - Enhanced type usage across components, ensuring consistent access to properties. - Cleaned up unused variables and improved function naming conventions for better readability. - Streamlined loading state handling and improved memoization in several components for optimized rendering. * refactor: update emoji type definitions for consistency - Changed the type of `otherEmojis` from a mixed array to a consistent `Types.Emoji[]` for improved type safety. - Simplified the construction of the `emojis` array by directly spreading `otherEmojis`, enhancing clarity and maintainability. * fix: update event type in EditChannelOrderPopup - Changed the event type in the onClick handler from PointerEvent to MouseEvent for better compatibility with mouse interactions. * refactor: integrate Redux for channel state management in EditChannelOrderPopup - Replaced local state management of channels with Redux state using `setChannels` action for improved consistency and performance. - Updated channel and category types in the channels slice for better type safety. - Removed obsolete IPC event listeners for channel updates, streamlining the component's logic. * refactor: update FindMe context and component references - Replaced direct ref assignments in CategoryTab, ChannelTab, and UserTab with setter functions from the FindMe context for improved clarity and maintainability. - Updated the FindMe context to include new setter functions for managing expanded category, channel, and current user references, enhancing the overall structure and functionality. * refactor: update loading state handling across components - Replaced direct usage of `isLoading` with a new `getIsLoading` function in multiple components for improved clarity and maintainability. - Updated the Loading context to provide the `getIsLoading` function, enhancing the overall structure of loading state management. - Ensured consistent handling of loading states in components like RootPageComponent, FriendTab, RecommendServerCard, ServerCard, and HomePageComponent. * refactor: update context menu item data attributes and styles - Modified the data-type attribute in ContextMenuItem to include item.id for better identification. - Renamed several CSS data-type selectors in contextMenu.module.css for consistency and clarity, aligning them with updated naming conventions. * refactor: improve ChannelTab structure and event handling - Adjusted the structure of the ChannelTab component to enhance readability and maintainability. - Ensured consistent handling of click events by refining the onClick handler for the tab icon. * refactor: improve event handling in ChannelTab component - Updated the tab click handler to toggle selection state, allowing for better user interaction. - Refined the expanded click handler to manage the expanded state directly, enhancing clarity and maintainability. * refactor: remove MainTab provider and update tab selection handling - Eliminated the MainTabProvider to simplify state management for tab selection. - Refactored tab selection logic in components to use local state instead of context, enhancing clarity and maintainability. - Updated event handling for tab clicks across multiple components to ensure consistent behavior. * refactor: enhance EmojiPicker component functionality and performance - Replaced `useEffect` with `useLayoutEffect` for improved performance during layout calculations. - Introduced a new `handleEmojiSelect` function to streamline emoji selection handling. - Updated `EmojiItem` to use a standard `<img>` tag instead of `<Image>` for better compatibility and performance. - Ensured consistent emoji selection handling across different emoji categories. * refactor: replace useEffect with useLayoutEffect in multiple components for improved performance - Updated several components (BadgeInfoCard, ColorPicker, ContextMenu, EmbedLinkInput, EmojiPicker, MicContextMenu, NotificationMenu, StatusDropdown, UserInfoCard) to use `useLayoutEffect` instead of `useEffect` for better layout calculations. - Removed unnecessary export statements for component props interfaces to streamline code. - Enhanced the ContextMenu provider by simplifying state management for context menus and related components. * refactor: update ActionLink styles and enhance layout in Login component - Renamed CSS class from `.actionLink` to `.action-link` for consistency with naming conventions. - Adjusted layout styles in the Login component to include `alignItems: 'center'` for better alignment of footer elements. - Added font size and color properties to multiple CSS files for improved visual consistency across components. * refactor: standardize gender values to lowercase in UserInfo component and related utilities - Updated gender values in UserInfoPopup, default user settings, and tag conversion functions to use lowercase ('male' and 'female') for consistency. - Ensured uniformity across the application regarding gender representation in user-related components. * refactor: streamline WebRTC state management and enhance audio controls - Introduced a new WebRTC store for improved state management, allowing for better tracking of microphone and speaker states. - Replaced direct state variables with store subscriptions in various components, enhancing performance and maintainability. - Added functions to increment and decrement speaker volume, improving user control over audio settings. - Updated audio handling logic to ensure consistent behavior across components, including microphone and speaker controls. * feat: integrate React DevTools for development environment - Added functionality to load React DevTools in the development environment, enhancing debugging capabilities. - Implemented error handling to log success or failure of loading the extension, improving developer experience. * Revert "feat: change icon (#252)" This reverts commit 9d453d5. * refactor: update FriendList and FriendTab components for improved state management - Modified FriendList to include friendGroupId in the defaultFriendGroup for better identification. - Updated FriendTab to replace shareCurrentServer with currentServerId for accurate server handling. - Enhanced useEffect dependencies in FriendTab for improved clarity and performance. * refactor: simplify context menu item handling and enhance icon usage - Updated ContextMenuItem to remove unnecessary data attributes for improved clarity. - Refactored context menu item methods in Server component to eliminate permission level checks, streamlining the code. - Added icons to various context menu options in ctxMenuBuilder for better visual representation and user experience. - Removed unused context menu options to clean up the codebase. * fix: user search operation - adjust window closing order to ensure the friend request window opens correctly * fix: add ref to showArea div for improved layout handling in Server component - Updated the ServerPageComponent to include a ref on the showArea div, enhancing layout management. - Ensured consistent styling adjustments across various CSS files by adding missing newlines at the end of files for better formatting. * refactor: enhance WebRTC state management and type safety - Updated the createWebRTCStore function to improve type safety by explicitly defining the type of the next state snapshot. - Added a check to ensure that only defined values are set in the state, preventing unnecessary updates and enhancing performance. - Cleaned up the code for better readability and maintainability. * feat: integrate React DevTools configuration - Added a new function to configure React DevTools, allowing it to load in the development environment. - Updated the environment variable handling for REACT_DEV_TOOLS_PATH to improve flexibility. - Ensured the React DevTools are loaded successfully with appropriate error handling. * feat: add sorting option for channel members in `Current Channel Tab` * fix: normalize filename format * fix: correct import path * fix: focus on current channel after joining group * refactor: adjust logic for dragging members * ditto * feat: refactor and abstract electron related operations to support web * fix: resolve conflicts * fix: socket not receiving problem * refactor: integrate socket.ts to platform folder * fix: remove redundant socket manager logic * fix: prioritize self and friends in channel member list * fix: some window & navigate problem * fix: some web fix * fix: switch channel problem on web & sound repeat on electron * fix: dev render error & repeat DM * docs: add architecture and tidy up other docs stuffs * docs: move bug report to docs * docs: adjust architecture index * docs: add `ricecall-ui-creator` agent skill * docs: add socket document * docs: add agent skill `docs-writer` * docs: add settings document * feat: add network diagnosis tool * fix: remove redundant version * fix: prevent next to compile failed * fix: compile path resolve problem * refactor: fix web IPC problem and share same DataService * refactor: use the same loader logic on web * refactor: move out settings logic to a file * refactor: move out data ipc logic to a file * feat: add tag for web shareable settings ipc functions * refactor: move web shareable ipc handle to a file * refactor: use existing electron system handler on web * refactor: auth service logic * chore: update version to 0.4.0-dev.20260202 in package.json * Revert "chore: update version to 0.4.0-dev.20260202 in package.json" This reverts commit e683299. * fix: popup submit problem * fix: API action mismatch problem * debug: remove debug line * fix: channel sorting problem * refactor: tidy up handlers * fix: workflow compile problem * chore: try to trigger release workflow * chore: update tag pattern for dev-release workflow * Revert "chore: update tag pattern for dev-release workflow" This reverts commit 0c36d78. * chore: try add manually trigger dev build * Revert "chore: try add manually trigger dev build" This reverts commit 6d84e5e. * fix: sub-channel creation problem * fix: system settings disable all sound problem * fix: web popup duplication by syncing behavior with electron * fix: web ipc listener concurrent modification issue in index.ts * fix: add missing translation for 'approve friend' in Traditional Chinese locale * fix: name field appears empty when updating the status. * fix: channel setting popup related bugs - Unable to set any visibility when editing a channel * refactor: clean up NetworkDiagnosis component and improve progress handling - Removed unnecessary ESLint disable comments and simplified the component structure. - Enhanced the progress handling logic for better readability and maintainability. - Updated visual progress rendering to streamline the UI updates during network diagnosis. * style: formatting code * fix: update feedback and website links across the application - Changed feedback link to point to the new URL. - Updated various links in the help center and registration success messages to reflect the new website domain. - Ensured consistent link behavior in popups and components. * Revert "fix: web ipc listener concurrent modification issue in index.ts" This reverts commit 812f380. * fix: simulate electron's popup data loading logic to prevent duplicate DMs * fix: make simulate logic more general * fix: do not use server announcement when channel announcement is empty * docs: update document * docs: update document * fix: image upload problem * fix: simulate electron popup header in web * fix: theme custom-image not persistent problem * fix: electron theme-store problem * fix: disable eslint and ts check for some file * fix: move member failed - fix invalid currentChannel data * fix: batch move parent channel to current channel problem * fix(MemberManagement): permission check * fix(ForbidVoice、ForbidText): permission check * fix:(TerminateSelfMember): permission check * fix:(EditChannelOrder): incorrect params * ditto * fix: add missing params * style: action link css * refactor: electron web (#257) * refactor: reorganize imports and enhance socket handling - Cleaned up import statements in main.ts for better readability. - Introduced socket connection management with retry logic in api.service.ts. - Updated environment variable handling in next.config.ts and env.ts. - Added new loader service for managing application state and interactions. - Improved logging functionality in logger.ts to support both main and renderer processes. - Refactored IPC communication to streamline event handling across platforms. - Enhanced data service methods for better error handling and response management. * refactor: remove unused local-resource protocol registration and clean up IPC methods - Removed the local-resource protocol registration from main.ts as it was no longer needed. - Cleaned up the saveImage method in ipc.ts to streamline IPC communication. * refactor: streamline code formatting and enhance IPC theme management - Consolidated ESLint configuration for improved readability. - Simplified import statements in main.ts and ensured consistent formatting. - Added custom theme management IPC handlers for better theme handling in the application. - Cleaned up various components and popups for consistent code style and formatting. * feat: implement image saving functionality and enhance IPC communication - Added a new IPC handler for saving images, allowing users to save images to a specified directory with a timestamped filename. - Registered a local-resource protocol to facilitate file access for saved images. - Updated the ChangeTheme component to utilize the new saveImage functionality, including error handling for image saving. - Enhanced the saveImage method in the web context to support Blob conversion and data URL generation. * refactor: remove file storage implementations for Electron and web - Deleted the Electron and web file storage implementations to streamline the codebase. - Removed the associated abstraction layer that dynamically imported the correct storage method based on the environment. * feat: enhance Electron application with Discord RPC and internationalization support - Updated the main entry point for the Electron application to include new Discord RPC functionality for presence updates. - Introduced internationalization support with i18next, adding multiple language resources for better localization. - Refactored IPC methods to improve communication and removed unused listener cleanup code. - Adjusted package.json to reflect new main file structure and updated Electron start scripts. * fix: correct parameter for rejecting friend applications * refactor: update version handling and improve environment variable access - Refactored version handling in auth.service.ts and About.tsx to directly use packageJson.version. - Updated env.ts to initialize environment variables only when accessed, enhancing error handling for uninitialized states. - Adjusted main.ts and web.ts to utilize the new getEnv function for environment variable access, improving consistency across the application. - Enhanced logging configuration in main.ts for better error tracking. * chore: update package.json scripts and remove unused generate-popup-imports script - Modified the format:css script in package.json to use a more concise command for stylelint. - Deleted the generate-popup-imports.ts script as it is no longer needed. * feat: implement network diagnosis functionality in IPC and UI - Added new IPC methods for running and canceling network diagnosis, including progress tracking and response handling. - Created a dedicated network diagnosis tool module to manage the diagnosis process and integrate with the existing IPC structure. - Updated the NetworkDiagnosis component to handle progress updates and display results, enhancing user experience. - Introduced new styles for the network diagnosis popup to improve visual presentation and usability. - Removed the old network service file as its functionality has been integrated into the new structure. * feat: enhance window management with minimize functionality and localization updates - Updated IPC methods to support minimizing popups with an optional popup ID parameter. - Modified UI components to utilize the new minimize functionality, allowing for better window management. - Added localization strings for "minimize" and "maximize" in the Chinese (zh-TW) language file. - Introduced a new maximized popup component to display minimized popups, improving user experience. - Enhanced styles for the maximized popup header for better visual presentation. * fix: update About popup styles and context menu label - Added gap styling to the About popup content for improved layout. - Corrected the copyright text to use the proper casing for the website. - Updated the context menu label for the About section to be more descriptive. * fix: update TypeScript configuration for Electron main files - Changed the include paths in tsconfig.electron.json to reflect the new directory structure for Electron main files, ensuring proper TypeScript compilation. * fix: streamline IPC event listener registration and removal - Simplified the event listener registration process in the IPC module by removing unnecessary nested return functions, improving code readability and maintainability. * refactor: simplify logger output formatting and enhance socket event listener registration - Removed chalk dependency from logger methods for cleaner output formatting in development mode. - Streamlined socket event listener registration by moving the 'connect' event handler to the end, improving readability and maintainability. * refactor: improve popup management and configuration handling - Replaced individual state management for popup properties with a unified popup object, simplifying the component structure. - Updated the popup configuration retrieval to dynamically set titles based on initial data, enhancing flexibility. - Refactored the getPopup function to streamline the creation of popup instances, improving code readability and maintainability. - Adjusted the PopupProvider to utilize the new Popup type definition for better type safety. * refactor: rename IPC methods for clarity and update event handling - Renamed `sendSelectServer` to `sendServerSelect` in the IPC module for improved clarity. - Updated event handling in the `RootPageComponent` to differentiate between renderer and website contexts, enhancing code organization. - Adjusted related components to use the new IPC method name, ensuring consistency across the application. * fix: add missing newlines in CSS files for proper formatting - Added missing newline at the end of the about.module.css and header.module.css files to ensure proper formatting. - Removed unnecessary z-index property from the home.module.css file to clean up the styles. * refactor: remove JWT userId persistence from login process - Eliminated the logic for persisting userId from the JWT token in localStorage during the login process, simplifying the code and reducing potential errors related to token handling. * refactor: enhance IPC event listener management and improve drag-and-drop functionality - Updated IPC methods to ensure proper removal of event listeners after use, preventing potential memory leaks. - Improved drag-and-drop handling in CategoryTab, ChannelTab, and UserTab components by clearing data transfer on drag start and drop events. - Simplified the logic for moving users between channels, ensuring consistent behavior across components. * refactor: update delete channel option to include sub-channel distinction - Modified the delete channel option in CategoryTab and ChannelTab components to accept an additional parameter indicating whether the channel is a sub-channel. - Adjusted permission checks in the ContextMenuClass to reflect the new parameter, enhancing the logic for displaying the delete option based on user permissions. * refactor: update member management option in context menu - Removed the channelCategoryId parameter from the addMemberManagementOption method for simplification. - Enhanced permission checks to ensure proper display of submenu items based on user permissions. - Updated logic for showing submenu items to improve clarity and functionality. * refactor: streamline member management option in context menus - Consolidated the addMemberManagementOption method calls across multiple components to remove the channelCategoryId parameter for simplification. - Updated the onClick handlers to use concise arrow function syntax, enhancing code readability. - Ensured consistent implementation of member management options across Header, ChannelMessage, QueueUserTab, UserTab, and various popups. * refactor: enhance channel management in EditChannelOrder component - Updated the EditChannelOrderPopup to handle both channels and categories, improving flexibility in channel management. - Replaced the use of Redux for channel state with local state management using useState, simplifying the component's logic. - Added IPC event listeners for channel addition, update, and removal, ensuring real-time updates to the channel list. - Adjusted CategoryTab to accept channels as props, enhancing its functionality and integration with the updated channel management system. * refactor: update friendActivitiesSlice to modify activity addition logic - Changed the logic in the addFriendActivities reducer to prepend new activities to the existing state data instead of appending, improving the order of activity display. * refactor: remove max-width from header styles for improved layout - Eliminated the max-width property from the header.module.css to allow for more flexible layout adjustments. - Ensured consistent styling by maintaining existing properties and structure. * refactor: update server options in constants for improved clarity - Changed server option keys from 'prod' and 'dev' to 'prod-server' and 'test-server' for better distinction between environments. - Maintained existing values to ensure compatibility with current functionality. * refactor: update header styles for improved aesthetics and interactivity - Adjusted padding and height of the header for better visual balance. - Changed border-radius to create a more rounded appearance. - Added opacity transition effects for hover state, enhancing user experience. * fix: add type hint for ipc.ts * feat: implement error submission feature and enhance error handling - Added ERROR_SUBMISSION_URL to .env.example and updated configuration to support error submissions. - Introduced error submission functionality in IPC to send error details to a specified URL. - Enhanced error handling in various components to pass Error objects instead of messages, improving error context. - Updated Dialog component to handle error submissions and display error IDs for tracking. * feat(promptMessage): add contextMenu * refactor: streamline IPC module and WebRTCProvider for improved clarity and functionality - Removed unnecessary imports and simplified the IPC module by consolidating access to modules. - Enhanced error handling in the WebRTCProvider by directly using the IPC methods for SFU diagnosis. - Updated audio context initialization logic to ensure compliance with browser autoplay policies. - Cleaned up unused network diagnosis functions in the web main module, improving code maintainability. * refactor: move BrowserWindow broadcast to a function * refactor: move dataHandler to a single file * refactor: move account handlers to single file * feat: move handlers to files * fix: let the code pass eslint check * refactor: update refactoring guidelines and architecture documentation - Enhanced clarity and structure in the refactoring guidelines document, emphasizing principles for logic handling, component isolation, and data integrity. - Updated architecture documentation to reflect recent changes in the platform abstraction layer and IPC communication strategies. - Improved consistency in formatting and language across various documentation files, ensuring better readability and understanding for developers. * refactor: remove unused audio worklet processor files and improve API response types - Deleted obsolete audio worklet processor files that were not in use. - Updated API service response types to use generics for better type safety and clarity. - Enhanced error handling in API service methods to ensure consistent response validation. * refactor: change to preload.js (#258) * refactor: enhance Electron IPC and logging structure - Updated IPC communication methods to use a more consistent and clear interface, including renaming methods for better clarity. - Introduced a preload script to manage IPC interactions securely and efficiently. - Improved logging functionality by standardizing message formatting and enhancing the logger's interface. - Added new handlers for Electron logging events to streamline error reporting and system messages. - Updated TypeScript definitions for better type safety and clarity in IPC interactions. * refactor: update Electron preload script and logging initialization - Replaced the existing preload.js file with a new preload.ts file for better type safety and maintainability. - Adjusted the main.ts file to conditionally set the preload path based on the development environment. - Enhanced the logger initialization process by encapsulating it in an asynchronous function for improved clarity. - Updated TypeScript configuration to include all Electron source files for comprehensive type checking. * feat: implement core action functions for dialog and user interactions - Added a new action module to handle various user interactions, including alert dialogs, error dialogs, direct messages, and user info popups. - Implemented functions for managing server and channel settings, friend invitations, and member applications. - Introduced methods for handling user-related actions such as creating servers, editing nicknames, and managing friend groups. - Enhanced the IPC communication structure to streamline the opening of different popups and dialogs across the application. * refactor: remove outdated documentation files - Deleted the `REFACTORING_GUIDELINES.md`, `architecture_diagrams_20260127.md`, `BUG_REPORT_20260126.md`, and several other documentation files that are no longer relevant or have been superseded by updated content. - This cleanup helps streamline the documentation repository and ensures that only current and useful information is available for developers. * refactor: update JSON imports to use new syntax - Changed the import statements for various locale JSON files to include the `with { type: 'json' }` syntax for better clarity and type safety. - This update applies to all supported languages, ensuring consistency across the localization files. * refactor: reorganize popup configuration imports and structure - Updated the import paths for popup configuration to utilize a centralized configs directory, enhancing maintainability and clarity. - Introduced new configuration files for popup sizes, headers, and behaviors, streamlining the management of popup properties across the application. - Adjusted the PopupPageComponent to reflect these changes, ensuring consistent access to popup configurations. * refactor: update README structure and add new directories - Enhanced the organization of the README file by adding new sections for configurations, Electron main-process files, and utility functions. - Updated descriptions for existing directories to improve clarity on their purpose. - Introduced new files for environment variable management, IPC communication, and data fetching utilities, streamlining the project structure. * refactor: update popup configuration handling - Renamed the import for popup configurations from `getPopupConfig` to `getPopupConfigs` to reflect the updated structure. - Adjusted the usage of the configuration object within the `PopupProvider` to ensure consistent access to the new configuration format. - Enhanced maintainability and clarity in the popup management logic. * chore: bump version to 0.3.18-dev.20260217 in package.json * refactor: enhance channel UI mode handling in Server and SystemSetting components - Updated logic for determining channel UI modes in the ServerPageComponent to include 'auto' mode conditions. - Adjusted the rendering of content layout classes based on the updated channel UI mode logic. - Cleaned up the SystemSettingPopup by removing unnecessary 'disabled' class from the auto mode input box. * refactor: introduce SYSTEM_FONT_LIST for font management - Added a new constant, SYSTEM_FONT_LIST, to centralize the list of system fonts used in the application. - Updated the getFontList function to utilize SYSTEM_FONT_LIST instead of FONT_LIST, ensuring consistency in font handling across the system. * style: Reorder CSS properties for consistency across multiple style files. * chore: Bump package version to 0.3.18-dev.20260228. * feat: sfu report (#259) * Release 0.3.17 * feat: add webRTC confirm system * fix: eslint problem * feat: add more details for SFU collect * fix: collected data undefined problem * fix: report not triggering problem * feat: add RTC info frontend display * feat: Introduce WebRTC signal confirmation popup with logging for disconnections. * refactor: replace `ConfirmWebRTC` popup with `RTCDisconnect` and update WebRTC signaling and status display. --------- Co-authored-by: CodingBear <mcg25035@gmail.com> * refactor: rename CSS class selectors for improved specificity and remove unused styles. * feat: Improve latency display in ChannelList by integrating RTC latency, internationalize EmojiPicker's placeholder, and adjust CSS height for better content fitting. * refactor: Centralize WebRTC state management in a new Redux slice and update components to consume state from it. * refactor: Streamline SFU diagnosis IPC by removing sender ID and directly passing typed information. * feat: Add server page with channel and user management UI, including channel events and in-app popups. * chore: bump version to 0.3.18 across package.json and README.md. --------- Co-authored-by: zhChen <30375539+zhchentw@users.noreply.github.com> Co-authored-by: zhChen <eric0406qq@gmail.com> Co-authored-by: Miyashooooo <cstrike.asia@gmail.com> Co-authored-by: CodingBear <70533278+mcg25035@users.noreply.github.com> Co-authored-by: CodingBear <mcg25035@gmail.com>
1 parent fdb45af commit 58ba99e

271 files changed

Lines changed: 19748 additions & 14142 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ API_URL=http://localhost:4500 # Do not include the trailing slash
33
WS_URL=http://localhost:4500 # Use the same URL if your server runs locally
44

55
# Crowdin Settings (Optional)
6-
CROWDIN_DISTRIBUTION_HASH= # If not provided, will use local files (./src/i18n/locales/[lang]/[ns]) instead
6+
CROWDIN_DISTRIBUTION_HASH= # If not provided, will use local files (./src/i18n/locales/[lang]/[ns]) instead
7+
8+
# Error Submission URL (Optional)
9+
ERROR_SUBMISSION_URL=https://error-submission.example.com # If not provided, errors will not be submitted

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,9 @@ yarn-error.log*
4040
next-env.d.ts
4141

4242
# lock files
43-
package-lock.json
43+
package-lock.json
44+
tempfix
45+
.gemini
46+
.geminiignore
47+
agent-follow.md
48+
RiceCall_previous_stable

README.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div height="20px"> </div>
44
<div>
55
<a title="Crowdin" target="_blank" href="https://discord.gg/adCWzv6wwS"><img src="https://img.shields.io/badge/Join-Discord-blue?logo=discord"/></a>
6-
<a title="Crowdin" target="_blank" href="https://ricecall.com"><img src="https://img.shields.io/badge/Latest-0.3.17-green"/></a>
6+
<a title="Crowdin" target="_blank" href="https://ricecall.com"><img src="https://img.shields.io/badge/Latest-0.3.18-green"/></a>
77
<a title="Crowdin" target="_blank" href="https://crowdin.com"><img src="https://badges.crowdin.net/ricecall/localized.svg"></a>
88
</div>
99
</div>
@@ -60,30 +60,39 @@ RiceCall
6060
├── build/ # Electron build artifacts (local)
6161
├── build_deb/ # Linux post-install scripts
6262
├── public/ # Static assets (images, icons, fonts, etc.)
63-
├── resources/ # Electron packaging resources
64-
├── scripts/ # Development and maintenance scripts
63+
├── resources/ # Electron packaging resources (icons, tray)
6564
├── src/
6665
│ ├── app/ # Next.js App Router entry pages/layout
6766
│ ├── components/ # Reusable UI components
67+
│ ├── configs/ # Popup and socket configuration
68+
│ ├── electron/ # Electron main-process (main, preload, handlers)
6869
│ ├── extensions/ # TipTap editor extensions
6970
│ ├── i18n/ # Client i18n setup and translations
70-
│ ├── main/ # Electron main-process helpers/services
71-
│ ├── pages/ # Legacy renderer pages integrated with Electron
71+
│ ├── pages/ # Renderer pages integrated with Electron
7272
│ ├── popups/ # Popup view components
7373
│ ├── providers/ # React context providers
74-
│ ├── services/ # IPC bridge for renderer
74+
│ ├── store/ # Redux store and slices
7575
│ ├── styles/ # Global styles and CSS modules
7676
│ ├── types/ # Shared TypeScript types
7777
│ ├── utils/ # Utility functions
78+
│ ├── web/ # Web platform handlers (non-Electron fallback)
79+
│ ├── action.ts # Action definitions
80+
│ ├── api.ts # API client
81+
│ ├── auth.ts # Authentication helpers
7882
│ ├── constant.ts # Shared constants
83+
│ ├── data.ts # Data fetch helpers
7984
│ ├── emojis.ts # Emoji definitions
80-
│ └── next-env.d.ts # Next.js environment type declarations
85+
│ ├── env.ts # Environment variable helpers
86+
│ ├── ipc.ts # IPC bridge for renderer
87+
│ ├── loader.ts # Loader utilities
88+
│ ├── logger.ts # Logger utilities
89+
│ └── token.ts # Token management
8190
├── dev-app-update.yml # Electron auto-update configuration
8291
├── electron-builder.json # Electron packaging configuration
8392
├── electron-builder-dev.json # Electron packaging configuration for dev builds
8493
├── eslint.config.mjs # ESLint configuration
8594
├── LICENSE # Project license
86-
├── main.ts # Electron main-process entry point
95+
├── next-env.d.ts # Next.js environment type declarations
8796
├── next.config.ts # Next.js configuration
8897
├── package.json # Dependencies and npm/yarn scripts
8998
├── tsconfig.electron.json # TypeScript config for the Electron main process
@@ -103,8 +112,8 @@ WS_URL=http://localhost:4500 # Use the same URL if your server runs locally
103112
# Crowdin Settings (Optional)
104113
CROWDIN_DISTRIBUTION_HASH= # If not provided, will use local files (./src/i18n/locales/[lang]/[ns]) instead
105114
106-
# Update Settings (Optional)
107-
UPDATE_CHANNEL=latest # The channel to update the app (latest, dev)
115+
# Error Submission URL (Optional)
116+
ERROR_SUBMISSION_URL=https://error-submission.example.com # If not provided, errors will not be submitted
108117
```
109118

110119
### 2. Install dependencies

eslint.config.mjs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ const compat = new FlatCompat({
99
baseDirectory: __dirname,
1010
});
1111

12-
const eslintConfig = [
13-
...compat.extends('next/core-web-vitals', 'next/typescript'),
14-
];
12+
const eslintConfig = [...compat.extends('next/core-web-vitals', 'next/typescript')];
1513

1614
export default eslintConfig;

0 commit comments

Comments
 (0)