Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit b36e1c7

Browse files
committed
feature: prepare needed exports for integration
Signed-off-by: teobler <teobler@163.com>
1 parent adbe756 commit b36e1c7

File tree

7 files changed

+80
-58
lines changed

7 files changed

+80
-58
lines changed

package-lock.json

Lines changed: 44 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/click-prompt-button/package.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "click-prompt-button",
2+
"name": "@click-prompt/click-prompt-button",
33
"version": "0.1.0",
44
"description": "click prompt button is react component that can be used to execute a prompt from ChatGPT in any web page. It is a part of the ClickPrompt",
55
"type": "module",
@@ -17,12 +17,12 @@
1717
"@chakra-ui/react": "^2.5.1",
1818
"@chakra-ui/spinner": "^2.0.13",
1919
"@chakra-ui/system": "^2.5.1",
20-
"@emotion/react": "^11.10.6",
21-
"@emotion/styled": "^11.10.6",
20+
"@emotion/react": "11.10.6",
21+
"@emotion/styled": "11.10.6",
2222
"client-only": "^0.0.1",
2323
"mermaid": "^10.0.2",
24-
"react": "^18.2.0",
25-
"react-dom": "^18.2.0",
24+
"react": "18.2.0",
25+
"react-dom": "18.2.0",
2626
"react-markdown": "^8.0.5",
2727
"react-spinners": "^0.13.8",
2828
"react-syntax-highlighter": "^15.5.0",
@@ -40,6 +40,8 @@
4040
"peerDependencies": {
4141
"next": "^13.2.4",
4242
"react": "^18.2.0",
43-
"react-dom": "^18.2.0"
43+
"react-dom": "^18.2.0",
44+
"@emotion/react": "11.10.6",
45+
"@emotion/styled": "11.10.6"
4446
}
4547
}

packages/click-prompt-button/src/ClickPromptButton.tsx

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import React, { MouseEventHandler, useState } from "react";
2-
import { Box, Button, Text, Tooltip, useDisclosure } from "@chakra-ui/react";
2+
import { Box, Button, ButtonProps, Text, Tooltip, useDisclosure } from "@chakra-ui/react";
33
import { BeatLoader } from "react-spinners";
44
import { ClickPromptSmall } from "@/CustomIcon";
55
import { ButtonSize, StyledPromptButton } from "@/SharedButton";
66
import { LoggingDrawer } from "@/LoggingDrawer";
77
import { ClickPromptBird } from "@/ClickPromptBird";
88
import type { LlmServiceApi } from "@/types/llmServiceApi";
99

10-
interface ClickPromptButtonProps {
10+
interface ClickPromptButtonProps extends ButtonProps {
1111
loading?: boolean;
1212
onClick?: MouseEventHandler;
1313
size?: ButtonSize;
@@ -16,7 +16,15 @@ interface ClickPromptButtonProps {
1616
llmServiceApi: LlmServiceApi;
1717
}
1818

19-
export function ClickPromptButton({ children, size, text, onClick, loading, llmServiceApi }: ClickPromptButtonProps) {
19+
export function ClickPromptButton({
20+
children,
21+
size,
22+
text,
23+
onClick,
24+
loading,
25+
llmServiceApi,
26+
...rest
27+
}: ClickPromptButtonProps) {
2028
const [isLoading, setIsLoading] = useState(loading);
2129
const [isLoggedIn, setIsLoggedIn] = useState(false);
2230
const { isOpen, onOpen, onClose } = useDisclosure();
@@ -37,8 +45,7 @@ export function ClickPromptButton({ children, size, text, onClick, loading, llmS
3745
function NormalSize() {
3846
return (
3947
<StyledPromptButton>
40-
{/*TODO: check ...props with what is passed in*/}
41-
<Button colorScheme="twitter" className="bg-blue" onClick={handleClick}>
48+
<Button colorScheme="twitter" className="bg-blue" onClick={handleClick} {...rest}>
4249
{children}
4350
{!isLoading && <Text>Prompt</Text>}
4451
{isLoading && <BeatLoader size={8} color="black" />}
@@ -50,8 +57,7 @@ export function ClickPromptButton({ children, size, text, onClick, loading, llmS
5057

5158
function SmallSize() {
5259
return (
53-
// TODO: check ...props with what is passed in
54-
<Button variant="unstyled" onClick={handleClick}>
60+
<Button variant="unstyled" onClick={handleClick} {...rest}>
5561
{children}
5662
<Tooltip label="Execute ChatGPT Prompt" aria-label="A tooltip">
5763
<ClickPromptSmall width={32} height={32} />

packages/click-prompt-button/src/ExecutePromptButton.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ import { BeatLoader } from "react-spinners";
44
import { StyledPromptButton } from "@/SharedButton";
55
import { LoggingDrawer } from "@/LoggingDrawer";
66
import { ClickPromptBird } from "@/ClickPromptBird";
7-
import type { LlmServiceApi } from "@/types/llmServiceApi";
7+
import type { Chat, LlmServiceApi } from "@/types/llmServiceApi";
88

99
interface ExecButtonProps {
1010
loading?: boolean;
1111
text: string;
1212
children?: React.ReactNode;
13-
handleResponse?: (response: ReadableStream<Uint8Array> | null) => void;
13+
handleResponse?: (response: ReadableStream<Uint8Array> | Chat[] | null) => void;
1414
conversationId?: number;
1515
updateConversationId?: (conversationId: number) => void;
1616
llmServiceApi: LlmServiceApi;
@@ -56,7 +56,9 @@ export const ExecutePromptButton = ({
5656
}
5757

5858
if (newConversationId) {
59-
const response = await llmServiceApi.sendMsgWithStreamRes(newConversationId, text);
59+
const response = llmServiceApi.sendMsgWithStreamRes
60+
? await llmServiceApi.sendMsgWithStreamRes(newConversationId, text)
61+
: await llmServiceApi.sendMessage(newConversationId, text);
6062
if (response && handleResponse) {
6163
handleResponse(response);
6264
}

packages/click-prompt-button/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ export { ExecutePromptButton } from "@/ExecutePromptButton";
33
export { ChatGPTApp } from "@/chatgpt/ChatGPTApp";
44
export { ChatRoom } from "@/chatgpt/ChatRoom";
55
export { LoginPage } from "@/chatgpt/LoginPage";
6+
export type { Chat, LlmServiceApi } from "@/types/llmServiceApi";

packages/click-prompt-button/src/types/llmServiceApi.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export interface LlmServiceApi {
1+
export interface LlmServiceApi extends Required<Pick<SendMessages, "sendMsgWithStreamRes" | "sendMessage">> {
22
login: (key: string) => Promise<Response>;
33
logout: () => Promise<Response>;
44
isLoggedIn: () => Promise<boolean>;
@@ -7,11 +7,15 @@ export interface LlmServiceApi {
77
getChatsByConversationId: (conversationId: number) => Promise<Chat[]>;
88
deleteConversation: (conversationId: number) => Promise<Conversation>;
99
deleteAllConversations: () => Promise<Response>;
10-
sendMsgWithStreamRes: (
10+
}
11+
12+
interface SendMessages {
13+
sendMsgWithStreamRes?: (
1114
conversationId: number,
1215
message: string,
1316
name?: string
1417
) => Promise<ReadableStream<Uint8Array> | null>;
18+
sendMessage?: (conversationId: number, message: string, name?: string) => Promise<Chat[]>;
1519
}
1620

1721
export interface Conversation {

packages/click-prompt/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
"test:watch": "jest --watch"
1919
},
2020
"dependencies": {
21+
"@click-prompt/click-prompt-button": "0.1.0",
2122
"@chakra-ui/icons": "^2.0.17",
2223
"@chakra-ui/react": "^2.5.1",
2324
"@chakra-ui/spinner": "^2.0.13",
2425
"@chakra-ui/system": "^2.5.1",
25-
"@emotion/react": "^11.10.6",
26-
"@emotion/styled": "^11.10.6",
26+
"@emotion/react": "11.10.6",
27+
"@emotion/styled": "11.10.6",
2728
"@formatjs/intl-localematcher": "^0.2.32",
2829
"@planetscale/database": "^1.6.0",
2930
"@remirror/pm": "^2.0.4",

0 commit comments

Comments
 (0)