Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

style: improve classname by clsx #5782

Merged
merged 2 commits into from
Nov 6, 2024

Conversation

Dogtiti
Copy link
Member

@Dogtiti Dogtiti commented Nov 6, 2024

💻 变更类型 | Change Type

  • feat
  • fix
  • refactor
  • perf
  • style
  • test
  • docs
  • ci
  • chore
  • build

🔀 变更说明 | Description of Change

📝 补充信息 | Additional Information

Summary by CodeRabbit

  • New Features

    • Introduced the clsx library for improved conditional class name management across multiple components.
    • Enhanced user experience with confirmation prompts in the MaskConfig component for syncing settings.
  • Bug Fixes

    • Ensured existing functionalities remain intact while improving class name handling.
  • Documentation

    • Updated import statements for the clsx library in various components.
  • Chores

    • Refactored class name assignments to utilize clsx, enhancing code readability and maintainability across the application.

@Dogtiti Dogtiti requested review from lloydzhou and DDMeaqua November 6, 2024 08:59
Copy link

vercel bot commented Nov 6, 2024

@Dogtiti is attempting to deploy a commit to the NextChat Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

coderabbitai bot commented Nov 6, 2024

Walkthrough

This pull request introduces the clsx library across multiple components in the application to improve the management of conditional class names. The changes involve replacing string concatenation with clsx calls in various components, enhancing the readability and maintainability of the code. No alterations were made to the logic or functionality of the components, ensuring that the existing behavior remains intact.

Changes

File Path Change Summary
app/components/auth.tsx Updated className attributes for AuthPage and TopBanner components to use clsx.
app/components/button.tsx Modified IconButton component to use clsx for className management.
app/components/chat-list.tsx Updated ChatItem component to use clsx for class name handling.
app/components/chat.tsx Replaced string concatenation with clsx in PromptToast, ChatAction, and message rendering sections.
app/components/exporter.tsx Utilized clsx in Steps and ImagePreviewer components for class name management.
app/components/home.tsx Updated Loading and SideBar components to use clsx for class names.
app/components/input-range.tsx Changed InputRange component to use clsx for class name handling.
app/components/markdown.tsx Implemented clsx in Mermaid and CustomCode components for class name management.
app/components/mask.tsx Used clsx for class names in MaskPage and modified MaskConfig to include a new property.
app/components/message-selector.tsx Updated MessageSelector to use clsx for class name management and refined selection logic.
app/components/new-chat.tsx Modified MaskItem in NewChat to use clsx for class name handling.
app/components/plugin.tsx Updated PluginPage component to use clsx for class name management.
app/components/sd/sd-panel.tsx Utilized clsx in ControlParamItem for class name handling.
app/components/sd/sd.tsx Updated Sd component to use clsx for class name management.
app/components/sidebar.tsx Modified SideBar component to use clsx for class names.
app/components/ui-lib.tsx Updated multiple components (Card, ListItem, Modal, Select, Selector) to use clsx for class name management.
package.json Added new dependency "clsx": "^2.1.1" in dependencies.

Possibly related PRs

Suggested labels

enhancement

Suggested reviewers

  • lloydzhou

🐰 In the realm of code, we hop and play,
With clsx in hand, we brighten the way.
Class names now dance, so clear and so bright,
Our components are happy, all styled just right!
So here’s to the changes, let’s give a cheer,
For cleaner code paths, let’s spread some good cheer! 🎉


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between e0bbb8b and 18144c3.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • package.json (1 hunks)
🔇 Additional comments (1)
package.json (1)

30-30: LGTM! The clsx dependency addition looks good.

The addition of clsx@^2.1.1 aligns with the PR's objective to improve class name management across components.

Let's verify the version compatibility:

✅ Verification successful

✅ The clsx dependency is properly integrated and compatible

The verification shows:

  • The package is correctly resolved in yarn.lock with version 2.1.1
  • It's consistently imported across 16 components with no conflicting class name utilities
  • No existing classnames/cx utilities that might cause conflicts
  • No peer dependency conflicts found
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any potential version conflicts or peer dependency issues

# Test 1: Check if package.json contains any conflicting peer dependencies
rg -A 5 '"peerDependencies"'

# Test 2: Check if there are any existing usages that might conflict
rg -l 'classnames|classNames.bind|cx'

Length of output: 261


Script:

#!/bin/bash
# Let's check the actual usage context in yarn.lock and verify if there are any conflicts
cat yarn.lock | grep -A 5 "clsx@"

# Check the actual implementation to see if there are any conflicting class name utilities
rg "import.*classnames|import.*clsx" 

# Let's also verify the Node.js version requirement
cat package.json | grep '"node":'

Length of output: 1201


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (22)
app/components/input-range.tsx (1)

27-27: LGTM: Improved className handling

The change to use clsx improves readability and follows modern best practices for managing conditional class names in React components.

Consider destructuring the className from styles to make it even cleaner:

-<div className={clsx(styles["input-range"], className)}>
+const { "input-range": inputRangeClass } = styles;
+<div className={clsx(inputRangeClass, className)}>
app/components/button.tsx (2)

26-35: LGTM: Clean implementation of clsx for button className.

The refactoring improves readability and maintainability while maintaining the existing className precedence. The conditional classes are handled elegantly using the object syntax.

Consider adding type safety for the type prop by using a type assertion:

-        styles[props.type ?? ""],
+        styles[props.type ?? ""] as string,

48-50: Consider moving 'no-dark' to the styles module.

While the clsx implementation is clean, the 'no-dark' appears to be a global class. For consistency and better encapsulation, consider moving it into the styles module.

-            "no-dark": props.type === "primary",
+            [styles["no-dark"]]: props.type === "primary",
app/components/chat-list.tsx (1)

67-67: Consider simplifying static class combination.

While using clsx is consistent with other changes, for static class combinations like this, a simpler approach would be more appropriate:

-              <div className={clsx(styles["chat-item-avatar"], "no-dark")}>
+              <div className={`${styles["chat-item-avatar"]} no-dark`}>
app/components/new-chat.tsx (1)

28-30: LGTM: Proper usage of clsx for class name composition.

The implementation correctly uses clsx to combine the module style with the utility class, improving readability and maintainability.

However, for consistency across the codebase, consider using clsx for other className assignments in this file as well, such as in the IconButton components and other div elements.

app/components/auth.tsx (2)

59-59: LGTM with a minor documentation suggestion.

The clsx usage improves readability. Consider adding a comment explaining the purpose of the "no-dark" utility class for better maintainability.

+      {/* Prevents dark mode styles from being applied to the logo */}
       <div className={clsx("no-dark", styles["auth-logo"])}>

168-168: LGTM: Consistent class name management.

The clsx usage here matches the pattern used in the auth logo, maintaining consistency throughout the component.

+      {/* Prevents dark mode styles from being applied to the banner content */}
       <div className={clsx(styles["top-banner-inner"], "no-dark")}>
app/components/home.tsx (1)

182-186: Consider a more concise clsx syntax.

While the current implementation is correct, it could be simplified for better readability.

-        <SideBar
-          className={clsx({
-            [styles["sidebar-show"]]: isHome,
-          })}
-        />
+        <SideBar className={clsx(isHome && styles["sidebar-show"])} />
app/components/message-selector.tsx (2)

75-75: Consider moving LATEST_COUNT to module level constants.

The LATEST_COUNT constant would be better defined at the module level since it's a configuration value that doesn't depend on component state or props.

+ const LATEST_COUNT = 4;
+
  export function MessageSelector(props: {
    selection: Set<string>;
    updateSelection: Updater<Set<string>>;
    defaultSelectAll?: boolean;
    onSelected?: (messages: ChatMessage[]) => void;
  }) {
-   const LATEST_COUNT = 4;
    const chatStore = useChatStore();

224-224: Consider using styles object for all class names.

The "one-line" class appears to be a global class. Consider moving it to the styles module for consistency and better maintainability.

- <div className={clsx(styles["content"], "one-line")}>
+ <div className={clsx(styles["content"], styles["one-line"])}>
app/components/sd/sd-panel.tsx (1)

140-140: LGTM: Improved className handling with clsx.

The change from string concatenation to clsx provides a more maintainable way to handle conditional class names. This is a good practice for React components.

Consider destructuring the className prop in the function parameters for cleaner code:

-export function ControlParamItem(props: {
+export function ControlParamItem({
+  title,
+  subTitle,
+  required,
+  children,
+  className
+}: {
   title: string;
   subTitle?: string;
   required?: boolean;
   children?: JSX.Element | JSX.Element[];
   className?: string;
-}) {
+}) {
app/components/markdown.tsx (3)

61-61: Consider simplifying the class name declaration.

Since there are no conditional classes being applied, using clsx here adds unnecessary complexity. A simple string literal would be more straightforward:

-className={clsx("no-dark", "mermaid")}
+className="no-dark mermaid"

212-212: Consider simplifying the className prop usage.

Since there's no conditional logic and you're just passing through an optional className prop, using clsx here adds unnecessary complexity. You can directly use the optional prop:

-className={clsx(props?.className)}
+className={props?.className}

Line range hint 26-212: Consider establishing guidelines for clsx usage.

While the introduction of clsx is a good step towards better class name management, it's important to use it judiciously. Consider establishing the following guidelines:

  1. Use clsx when you need to:
    • Apply conditional classes based on state/props
    • Merge multiple class names with conditional logic
  2. Avoid using clsx for:
    • Static class names
    • Single class name assignments
    • Simple prop pass-through

This will help maintain a balance between code maintainability and unnecessary complexity.

app/components/sidebar.tsx (4)

145-147: LGTM: Clean clsx implementation with room for type enhancement.

The conversion to clsx improves readability. Consider using TypeScript's satisfies operator for better type safety:

className={clsx(styles.sidebar, className, {
  [styles["narrow-sidebar"]]: shouldNarrow,
} satisfies Record<string, boolean>)}

175-177: LGTM: Consistent clsx implementation.

The conditional class handling is clean and follows the same pattern. Consider the same type safety enhancement:

className={clsx(styles["sidebar-header"], {
  [styles["sidebar-header-narrow"]]: shouldNarrow,
} satisfies Record<string, boolean>)}

186-186: LGTM: Consider documenting the utility class.

The clsx usage is clean. Consider adding a comment explaining the purpose of the "no-dark" utility class for better maintainability.


Line range hint 33-290: Well-structured class name management refactoring.

The consistent implementation of clsx across all components demonstrates a good architectural decision that improves code maintainability and readability. The pattern established here should be followed in future components.

app/components/sd/sd.tsx (1)

125-128: Consider simplifying multiple static class names.

While the clsx usage is correct, since these are static class names with no conditions, you could simplify this to:

-              className={clsx(
-                "window-header-title",
-                chatStyles["chat-body-title"],
-              )}
+              className="window-header-title ${chatStyles['chat-body-title']}"

However, keeping it consistent with clsx throughout the codebase is also a valid approach, so this is just a suggestion.

app/components/ui-lib.tsx (1)

Line range hint 26-521: Excellent consistency in class name management implementation

The changes demonstrate a consistent approach to class name management across all components using clsx. This improves code maintainability by:

  1. Standardizing conditional class application
  2. Making the code more readable
  3. Reducing the likelihood of class name concatenation errors

Consider adding this pattern to your team's style guide to maintain consistency across the codebase.

app/components/exporter.tsx (1)

122-125: LGTM: Improved class name management

The use of clsx makes the conditional class application more readable and maintainable. Consider extracting the class names into a constant if they're reused elsewhere in the component.

+const stepClassNames = {
+  base: "clickable",
+  finished: styles["step-finished"],
+  current: styles["step-current"],
+};

 className={clsx(
-  "clickable",
+  stepClassNames.base,
   styles["step"],
   {
-    [styles["step-finished"]]: i <= props.index,
-    [styles["step-current"]]: i === props.index,
+    [stepClassNames.finished]: i <= props.index,
+    [stepClassNames.current]: i === props.index,
   }
 )}
app/components/mask.tsx (1)

592-592: LGTM: Good use of clsx for className composition.

The conversion from string concatenation to clsx improves readability while maintaining the same functionality.

Consider scanning the rest of the file for similar string concatenations that could benefit from clsx. Here's a script to help identify potential candidates:

#!/bin/bash
# Search for string concatenations in className assignments that could be converted to clsx
rg 'className=.*\+.*' app/components/mask.tsx
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6ded4e9 and e0bbb8b.

📒 Files selected for processing (16)
  • app/components/auth.tsx (3 hunks)
  • app/components/button.tsx (3 hunks)
  • app/components/chat-list.tsx (3 hunks)
  • app/components/chat.tsx (7 hunks)
  • app/components/exporter.tsx (4 hunks)
  • app/components/home.tsx (3 hunks)
  • app/components/input-range.tsx (2 hunks)
  • app/components/markdown.tsx (4 hunks)
  • app/components/mask.tsx (2 hunks)
  • app/components/message-selector.tsx (5 hunks)
  • app/components/new-chat.tsx (2 hunks)
  • app/components/plugin.tsx (3 hunks)
  • app/components/sd/sd-panel.tsx (2 hunks)
  • app/components/sd/sd.tsx (3 hunks)
  • app/components/sidebar.tsx (5 hunks)
  • app/components/ui-lib.tsx (7 hunks)
🔇 Additional comments (38)
app/components/input-range.tsx (1)

3-3: LGTM: Clean import addition

The clsx import is correctly placed and necessary for the className management changes.

app/components/button.tsx (1)

5-5: LGTM: Clean import of clsx utility.

The import is properly placed and aligns with the PR's objective of improving className management.

app/components/chat-list.tsx (2)

21-21: LGTM! Good choice of utility library.

The addition of clsx is appropriate for managing conditional class names and aligns with modern React best practices.


49-53: LGTM! Improved readability with clsx.

The refactoring from template literals to clsx makes the conditional class name logic more readable and maintainable while preserving the same functionality.

app/components/new-chat.tsx (1)

19-19: LGTM: Import statement is correctly placed.

The addition of the clsx import is appropriate for managing conditional class names.

app/components/auth.tsx (1)

21-21: LGTM: Clean import of clsx library.

The import is correctly placed and aligns with the PR's objective to improve class name management.

app/components/home.tsx (3)

31-31: LGTM: Clean import of clsx utility.

The import is appropriately placed and aligns with the PR's objective to improve class name management.


35-35: LGTM: Clean clsx implementation for Loading component.

The change effectively combines the static "no-dark" class with the CSS module class using clsx, improving readability while maintaining functionality.


204-207: LGTM: Well-structured clsx implementation for container classes.

The change effectively manages multiple conditional classes using clsx's object syntax, improving code clarity while maintaining all necessary conditions.

app/components/message-selector.tsx (3)

11-11: LGTM! Good practice using clsx for class name management.

The addition of clsx aligns with the PR's objective to improve class name handling.


152-152: LGTM! Clean usage of clsx for combining class names.

The clsx usage here improves readability over string concatenation.


199-201: LGTM! Well-structured conditional class name logic.

Good use of clsx's object syntax for conditional class application.

app/components/sd/sd-panel.tsx (1)

7-7: LGTM: Clean import addition.

The clsx import follows standard conventions and is appropriately placed with other imports.

app/components/markdown.tsx (2)

26-26: LGTM: Clean import of clsx utility.

The import is properly placed and aligns with the PR's objective to improve class name management.


197-202: LGTM: Proper usage of clsx for conditional classes.

The implementation correctly uses clsx's object syntax to conditionally apply classes based on the component's state. This is a good example of where clsx adds value by making conditional class names more readable and maintainable.

app/components/sidebar.tsx (2)

33-33: LGTM: Clean import of clsx utility.

The addition of the clsx utility is appropriate for improving class name management.


290-290: LGTM: Clean mobile-specific styling.

The use of clsx for combining mobile-specific styles is appropriate and consistent with the codebase's styling patterns.

app/components/plugin.tsx (3)

31-31: LGTM! Clean import addition.

The clsx import is correctly added and aligns with the PR's objective to improve class name management.


203-203: LGTM! Proper usage of clsx for class name combination.

The class name concatenation is correctly refactored to use clsx, improving readability and maintainability.


339-342: LGTM! Clean implementation of clsx for multiple class names.

The multi-line class name concatenation is properly refactored to use clsx, enhancing code clarity while maintaining the same functionality.

app/components/sd/sd.tsx (2)

39-39: LGTM: Clean import addition.

The clsx import is correctly placed with other imports and will be used for class name management.


108-108: LGTM: Improved conditional class name handling.

Good use of clsx's object syntax for conditional class application. The code is more readable and maintainable than string concatenation.

app/components/ui-lib.tsx (7)

26-26: LGTM: Good choice of library for class name management

The addition of clsx is a good choice as it's a widely-used, lightweight utility for constructing className strings conditionally.


49-49: LGTM: Clean implementation of clsx in Card component

The change from string concatenation to clsx improves readability while maintaining the same functionality.


64-70: LGTM: Well-structured conditional class names in ListItem

The implementation effectively uses clsx's object syntax for conditional classes while maintaining proper order of class application (base → conditional → custom).


141-143: LGTM: Clear conditional styling in Modal component

The implementation properly uses clsx to handle the conditional max-size state of the modal.


266-266: LGTM: Simplified class name handling in Input component

The change to clsx improves the class name composition while maintaining the same functionality.


307-313: LGTM: Well-organized conditional styling in Select component

The implementation effectively uses clsx to handle alignment options while maintaining a clean composition of class names.


519-521: LGTM: Clear disabled state handling in Selector component

The implementation properly uses clsx to manage the disabled state styling of selector items.

app/components/exporter.tsx (2)

43-43: LGTM: Clean import addition

The clsx import is correctly placed and follows the existing import organization pattern.


530-530: LGTM: Consistent class name management in ImagePreviewer

The use of clsx across the ImagePreviewer component improves consistency and readability. The changes maintain the existing functionality while making the code more maintainable.

Also applies to: 534-534, 575-575

app/components/mask.tsx (1)

58-58: LGTM: Clean import of clsx utility.

The addition of the clsx library is appropriate for improving className management.

app/components/chat.tsx (6)

124-124: LGTM: clsx import added correctly

The addition of the clsx import is appropriate for managing conditional class names.


1599-1604: LGTM: Improved class name handling with clsx

The refactoring to use clsx for combining class names improves code readability and maintainability.


336-338: LGTM: Well-structured conditional class names

Good use of clsx for handling conditional class names in the prompt hints component.


398-398: LGTM: Proper class name combination

Appropriate use of clsx to combine the chat input action and clickable classes.


1878-1878: LGTM: Consistent class name handling

The use of clsx for the chat message item images class is consistent with the overall styling approach.


1940-1943: LGTM: Well-implemented conditional styling

Good use of clsx for applying conditional classes based on the presence of attached images.

@lloydzhou lloydzhou merged commit fbb9385 into ChatGPTNextWeb:main Nov 6, 2024
1 check failed
frostime added a commit to frostime/ChatGPT-Next-Web that referenced this pull request Nov 12, 2024
commit 38fa305
Author: lloydzhou <[email protected]>
Date:   Mon Nov 11 13:26:08 2024 +0800

    update version

commit 289aeec
Merge: f8f6954 7d71da9
Author: Lloyd Zhou <[email protected]>
Date:   Mon Nov 11 13:19:26 2024 +0800

    Merge pull request ChatGPTNextWeb#5786 from ConnectAI-E/feature/realtime-chat

    Feature/realtime chat

commit 7d71da9
Author: lloydzhou <[email protected]>
Date:   Mon Nov 11 13:15:09 2024 +0800

    remove close-24 svg

commit f8f6954
Merge: 6e03f32 64aa760
Author: Lloyd Zhou <[email protected]>
Date:   Mon Nov 11 13:13:09 2024 +0800

    Merge pull request ChatGPTNextWeb#5779 from ConnectAI-E/feature/model/claude35haiku

    add claude35haiku & not support vision

commit 6e03f32
Merge: 108069a 18a6571
Author: Lloyd Zhou <[email protected]>
Date:   Mon Nov 11 13:10:00 2024 +0800

    Merge pull request ChatGPTNextWeb#5795 from JingSyue/main

    fix: built-in plugin dalle3 error ChatGPTNextWeb#5787

commit 18a6571
Author: JingSyue <[email protected]>
Date:   Mon Nov 11 12:59:29 2024 +0800

    Update proxy.ts

    Update proxy.ts

commit 14f444e
Author: Dogtiti <[email protected]>
Date:   Mon Nov 11 11:47:41 2024 +0800

    doc: realtime chat

commit 2b0f2e5
Author: JingSyue <[email protected]>
Date:   Sun Nov 10 10:28:25 2024 +0800

    fix: built-in plugin dalle3 error ChatGPTNextWeb#5787

commit 4629b39
Author: Dogtiti <[email protected]>
Date:   Sat Nov 9 16:22:01 2024 +0800

    chore: comment context history

commit d33e772
Author: Dogtiti <[email protected]>
Date:   Fri Nov 8 22:39:17 2024 +0800

    feat: voice print

commit 89136fb
Author: Dogtiti <[email protected]>
Date:   Fri Nov 8 22:18:39 2024 +0800

    feat: voice print

commit 8b4ca13
Author: Dogtiti <[email protected]>
Date:   Fri Nov 8 22:02:31 2024 +0800

    feat: voice print

commit a4c9eaf
Author: lloydzhou <[email protected]>
Date:   Fri Nov 8 13:43:13 2024 +0800

    do not save empty audio file

commit 50e6310
Author: lloydzhou <[email protected]>
Date:   Fri Nov 8 13:21:40 2024 +0800

    merge code and get analyser data

commit 48a1e8a
Author: Dogtiti <[email protected]>
Date:   Thu Nov 7 21:32:47 2024 +0800

    chore: i18n

commit e44ebe3
Author: Dogtiti <[email protected]>
Date:   Thu Nov 7 21:28:23 2024 +0800

    feat: realtime config

commit 108069a
Merge: fbb9385 d5bda29
Author: Lloyd Zhou <[email protected]>
Date:   Thu Nov 7 20:06:30 2024 +0800

    Merge pull request ChatGPTNextWeb#5788 from ConnectAI-E/fix-o1-maxtokens

    chore: o1模型使用max_completion_tokens

commit d5bda29
Author: DDMeaqua <[email protected]>
Date:   Thu Nov 7 19:45:27 2024 +0800

    chore: o1模型使用max_completion_tokens

commit 283caba
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 18:57:57 2024 +0800

    stop streaming play after get input audio.

commit b78e5db
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 17:55:51 2024 +0800

    add temperature config

commit 46c469b
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 17:47:55 2024 +0800

    add voice config

commit c00ebbe
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 17:40:03 2024 +0800

    update

commit c526ff8
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 17:23:20 2024 +0800

    update

commit 0037b0c
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 17:03:04 2024 +0800

    ts error

commit 6f81bb3
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 16:56:15 2024 +0800

    add context after connected

commit 7bdc45e
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 16:41:24 2024 +0800

    connect realtime model when open panel

commit 88cd3ac
Author: Dogtiti <[email protected]>
Date:   Thu Nov 7 12:16:11 2024 +0800

    fix: ts error

commit 4988d2e
Author: Dogtiti <[email protected]>
Date:   Thu Nov 7 11:56:58 2024 +0800

    fix: ts error

commit 8deb7a9
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 11:53:01 2024 +0800

    hotfix for update target session

commit db060d7
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 11:45:38 2024 +0800

    upload save record wav file

commit 5226278
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 09:36:22 2024 +0800

    upload save wav file logic

commit cf46d5a
Author: lloydzhou <[email protected]>
Date:   Thu Nov 7 01:12:08 2024 +0800

    upload response audio, and update audio_url to session message

commit a494152
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 22:30:02 2024 +0800

    feat: audio to message

commit f6e1f83
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 22:07:33 2024 +0800

    wip

commit d544eea
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 21:14:45 2024 +0800

    feat: realtime chat ui

commit fbb9385
Merge: 6ded4e9 18144c3
Author: Lloyd Zhou <[email protected]>
Date:   Wed Nov 6 20:33:51 2024 +0800

    Merge pull request ChatGPTNextWeb#5782 from ConnectAI-E/style/classname

    style: improve classname by clsx

commit 18144c3
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 20:16:38 2024 +0800

    chore: clsx

commit 64aa760
Author: opchips <[email protected]>
Date:   Wed Nov 6 19:18:05 2024 +0800

    update claude rank

commit e0bbb8b
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 16:58:26 2024 +0800

    style: improve classname by clsx

commit 6667ee1
Merge: 3086a2f 6ded4e9
Author: opchips <[email protected]>
Date:   Wed Nov 6 15:08:18 2024 +0800

    merge main

commit 6ded4e9
Merge: f4c9410 85cdcab
Author: Lloyd Zhou <[email protected]>
Date:   Wed Nov 6 15:04:46 2024 +0800

    Merge pull request ChatGPTNextWeb#5778 from ConnectAI-E/fix/5436

    fix: botMessage reply date

commit 85cdcab
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 14:53:08 2024 +0800

    fix: botMessage reply date

commit f4c9410
Merge: f526d6f adf7d82
Author: Lloyd Zhou <[email protected]>
Date:   Wed Nov 6 14:02:20 2024 +0800

    Merge pull request ChatGPTNextWeb#5776 from ConnectAI-E/feat-glm

    fix: glm chatpath

commit adf7d82
Author: DDMeaqua <[email protected]>
Date:   Wed Nov 6 13:55:57 2024 +0800

    fix: glm chatpath

commit 3086a2f
Author: opchips <[email protected]>
Date:   Wed Nov 6 12:56:24 2024 +0800

    add claude35haiku not vision

commit f526d6f
Merge: f3603e5 106461a
Author: Lloyd Zhou <[email protected]>
Date:   Wed Nov 6 11:16:33 2024 +0800

    Merge pull request ChatGPTNextWeb#5774 from ConnectAI-E/feature/update-target-session

    fix: updateCurrentSession => updateTargetSession

commit 106461a
Merge: c4e19db f3603e5
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 11:08:41 2024 +0800

    Merge branch 'main' of https://github.com/ConnectAI-E/ChatGPT-Next-Web into feature/update-target-session

commit c4e19db
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 11:06:18 2024 +0800

    fix: updateCurrentSession => updateTargetSession

commit f3603e5
Merge: 00d6cb2 8e2484f
Author: Dogtiti <[email protected]>
Date:   Wed Nov 6 10:49:28 2024 +0800

    Merge pull request ChatGPTNextWeb#5769 from ryanhex53/fix-model-multi@

    Custom model names can include the `@` symbol by itself.

commit 8e2484f
Author: ryanhex53 <[email protected]>
Date:   Tue Nov 5 13:52:54 2024 +0000

    Refactor: Replace all provider split occurrences with getModelProvider utility method

commit 00d6cb2
Author: lloydzhou <[email protected]>
Date:   Tue Nov 5 17:42:55 2024 +0800

    update version

commit b844045
Author: ryanhex53 <[email protected]>
Date:   Tue Nov 5 07:44:12 2024 +0000

    Custom model names can include the `@` symbol by itself.

    To specify the model's provider, append it after the model name using `@` as before.

    This format supports cases like `google vertex ai` with a model name like `claude-3-5-sonnet@20240620`.

    For instance, `claude-3-5-sonnet@20240620@vertex-ai` will be split by `split(/@(?!.*@)/)` into:

    `[ 'claude-3-5-sonnet@20240620', 'vertex-ai' ]`, where the former is the model name and the latter is the custom provider.

commit e49fe97
Merge: 14f7519 e49466f
Author: Lloyd Zhou <[email protected]>
Date:   Tue Nov 5 15:07:52 2024 +0800

    Merge pull request ChatGPTNextWeb#5765 from ConnectAI-E/feature/onfinish

    feat: update real 'currentSession'

commit 14f7519
Merge: 820ab54 0ec4233
Author: Dogtiti <[email protected]>
Date:   Tue Nov 5 11:07:52 2024 +0800

    Merge pull request ChatGPTNextWeb#5767 from ConnectAI-E/feat-glm

    chore: update readme

commit 0ec4233
Author: DDMeaqua <[email protected]>
Date:   Tue Nov 5 11:06:20 2024 +0800

    chore: update readme

commit 820ab54
Merge: 0dc4071 a6c1eb2
Author: Dogtiti <[email protected]>
Date:   Tue Nov 5 10:54:52 2024 +0800

    Merge pull request ChatGPTNextWeb#5766 from ConnectAI-E/feature/add-claude-haiku3.5

    Feature/add claude haiku3.5

commit a6c1eb2
Merge: 801dc41 0dc4071
Author: lloydzhou <[email protected]>
Date:   Tue Nov 5 10:23:15 2024 +0800

    add claude 3.5 haiku

commit 0dc4071
Merge: aef535f 4d39497
Author: Lloyd Zhou <[email protected]>
Date:   Tue Nov 5 01:10:06 2024 +0800

    Merge pull request ChatGPTNextWeb#5464 from endless-learner/main

    Added 1-click deployment link for Alibaba Cloud.

commit 4d39497
Author: Lloyd Zhou <[email protected]>
Date:   Tue Nov 5 01:09:27 2024 +0800

    merge main

commit aef535f
Merge: 686a80e fbb7a1e
Author: Dogtiti <[email protected]>
Date:   Mon Nov 4 21:41:11 2024 +0800

    Merge pull request ChatGPTNextWeb#5753 from ChatGPTNextWeb/feat-bt-doc

    Feat bt doc

commit 686a80e
Merge: 5733e3c 4b93370
Author: Dogtiti <[email protected]>
Date:   Mon Nov 4 21:37:34 2024 +0800

    Merge pull request ChatGPTNextWeb#5764 from ChatGPTNextWeb/dependabot/npm_and_yarn/testing-library/react-16.0.1

    chore(deps-dev): bump @testing-library/react from 16.0.0 to 16.0.1

commit e49466f
Author: Dogtiti <[email protected]>
Date:   Mon Nov 4 21:25:56 2024 +0800

    feat: update real 'currentSession'

commit 4b93370
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Nov 4 10:24:30 2024 +0000

    chore(deps-dev): bump @testing-library/react from 16.0.0 to 16.0.1

    Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 16.0.0 to 16.0.1.
    - [Release notes](https://github.com/testing-library/react-testing-library/releases)
    - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
    - [Commits](testing-library/react-testing-library@v16.0.0...v16.0.1)

    ---
    updated-dependencies:
    - dependency-name: "@testing-library/react"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <[email protected]>

commit 5733e3c
Merge: d66bfc6 44fc5b5
Author: Dogtiti <[email protected]>
Date:   Mon Nov 4 17:16:44 2024 +0800

    Merge pull request ChatGPTNextWeb#5759 from ConnectAI-E/feature/onfinish

    Feature/onfinish

commit 44fc5b5
Author: Dogtiti <[email protected]>
Date:   Mon Nov 4 17:00:45 2024 +0800

    fix: onfinish responseRes

commit 2d3f7c9
Author: Dogtiti <[email protected]>
Date:   Wed Oct 16 15:17:08 2024 +0800

    fix: vision model dalle3

commit fe8cca3
Merge: adf97c6 d66bfc6
Author: GH Action - Upstream Sync <[email protected]>
Date:   Sat Nov 2 01:12:09 2024 +0000

    Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web

commit fbb7a1e
Author: weige <[email protected]>
Date:   Fri Nov 1 18:20:16 2024 +0800

    fix

commit fb2c155
Author: weige <[email protected]>
Date:   Fri Nov 1 17:45:50 2024 +0800

    fix

commit c2c52a1
Author: weige <[email protected]>
Date:   Fri Nov 1 17:35:34 2024 +0800

    fix

commit 106ddc1
Author: weige <[email protected]>
Date:   Fri Nov 1 17:35:09 2024 +0800

    fix

commit 17d5209
Author: weige <[email protected]>
Date:   Fri Nov 1 17:28:20 2024 +0800

    add bt install doc

commit adf97c6
Merge: 7c466c9 0581e37
Author: GH Action - Upstream Sync <[email protected]>
Date:   Fri Nov 1 01:18:59 2024 +0000

    Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web

commit 7c466c9
Merge: b0d28eb a0fa4d7
Author: GH Action - Upstream Sync <[email protected]>
Date:   Thu Oct 31 01:14:28 2024 +0000

    Merge branch 'main' of https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web

commit b0d28eb
Merge: 064e964 613d67e
Author: endless-learner <[email protected]>
Date:   Tue Oct 29 14:38:49 2024 -0700

    Merge branch 'main' into main

commit 801dc41
Author: lloydzhou <[email protected]>
Date:   Thu Oct 24 15:28:05 2024 +0800

    add claude-3.5-haiku

commit 064e964
Author: endless-learner <[email protected]>
Date:   Tue Sep 24 23:05:32 2024 -0700

    Updated link to deploy on Alibaba Cloud, readable when not logged in, also, able to choose region.

commit 47fb40d
Merge: 9e18cc2 4c84182
Author: endless-learner <[email protected]>
Date:   Tue Sep 24 23:03:03 2024 -0700

    Merge branch 'ChatGPTNextWeb:main' into main

commit 9e18cc2
Author: endless-learner <[email protected]>
Date:   Tue Sep 24 13:55:00 2024 -0700

    Update README.md

    Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

commit 03268ce
Author: endless-learner <[email protected]>
Date:   Wed Sep 18 20:38:20 2024 -0700

    Added 1-click deployment link for Alibaba Cloud.
@coderabbitai coderabbitai bot mentioned this pull request Dec 12, 2024
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants