Skip to content

Commit 107a08f

Browse files
committed
fix(configuration): fix build errors
1 parent fb3bf4b commit 107a08f

File tree

5 files changed

+36
-24
lines changed

5 files changed

+36
-24
lines changed

fe_repo/src/App.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
import { Header, Content, ChatBox } from './pages'
22
import { useState } from "react";
3-
import { sendMessage } from "./functions/api.tsx";
3+
import { sendMessage } from "./functions/api.ts";
44

5+
export type Message = {
6+
text: string,
7+
isUser: boolean,
8+
}
59
function App() {
610

7-
const [messages, setMessages] = useState([])
11+
const [messages, setMessages] = useState<Message[]>([])
812

913
const onSendMessage = (message: string) => {
10-
setMessages((messages) => [...messages, { text: message, user: true }]);
14+
setMessages((messages) => [...messages, { text: message, isUser: true }]);
1115

1216
setTimeout(() => {
1317
// handle message sent, update conversation section
14-
const response = { text: sendMessage(message), user: false }
18+
const response = { text: sendMessage(message), isUser: false }
1519
setMessages((messages) => [...messages, response]);
1620
}, 1000);
1721
}

fe_repo/src/components/TextArea.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import * as React from 'react';
2-
import {TextareaAutosize as BaseTextareaAutosize} from '@mui/base/TextareaAutosize';
3-
import {styled} from '@mui/system';
1+
import { TextareaAutosize as BaseTextareaAutosize, TextareaAutosizeProps } from '@mui/base/TextareaAutosize';
2+
import { styled } from '@mui/system';
43

5-
type Textarea = {
4+
interface ITextarea extends TextareaAutosizeProps {
65
className?: string,
76
}
87

@@ -29,7 +28,7 @@ const grey = {
2928
};
3029

3130
const StyledTextarea = styled(BaseTextareaAutosize)(
32-
({theme}) => `
31+
({ theme }) => `
3332
box-sizing: border-box;
3433
width: 320px;
3534
font-family: 'IBM Plex Sans', sans-serif;
@@ -59,7 +58,7 @@ const StyledTextarea = styled(BaseTextareaAutosize)(
5958
`,
6059
);
6160

62-
export const Textarea = (props: Textarea) => {
61+
export const Textarea = (props: ITextarea) => {
6362
return (
6463
<StyledTextarea
6564
aria-label="Textarea"

fe_repo/src/pages/ChatBox.tsx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import {UploadIcon} from "../icons"
2-
import {Textarea} from '../components'
3-
import {useState} from "react";
4-
import {uploadFile} from "../functions/api.tsx";
1+
import { UploadIcon } from "../icons"
2+
import { Textarea } from '../components'
3+
import { useState } from "react";
4+
import { uploadFile } from "../functions/api.ts";
55

6-
export const ChatBox = ({onSendMessage}) => {
6+
interface IChatBoxProps {
7+
onSendMessage: (message: string) => void;
8+
}
9+
export const ChatBox = ({ onSendMessage }: IChatBoxProps) => {
710

811
const [message, setMessage] = useState("");
912

@@ -25,23 +28,24 @@ export const ChatBox = ({onSendMessage}) => {
2528
const input = document.createElement("input");
2629
input.type = 'file';
2730
input.accept = 'image/*,.pdf,.doc,.docx';
31+
// @ts-expect-error @Linchen
2832
input.onchange = handleFiles;
2933
input.click();
3034

31-
function handleFiles(event) {
32-
const file = event.target?.files[0];
35+
function handleFiles(event: { target: HTMLInputElement }) {
36+
if (!event.target || !event.target.files) return;
37+
const file = event.target.files[0];
3338
if (file) {
3439
// upload if file is valid
3540
uploadFile(file);
3641
}
3742
}
3843
}}
3944
>
40-
<UploadIcon/>
45+
<UploadIcon />
4146
</div>
4247
<Textarea
4348
className="flex-1"
44-
value={message}
4549
onChange={(e) => setMessage(e.target.value)}
4650
onKeyUp={(e) => {
4751
// listen for enter key

fe_repo/src/pages/Content.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { useEffect, useRef } from "react";
2+
import { Message } from "../App";
23

3-
export const Content = ({ messages }) => {
4-
const contentRef = useRef(null);
4+
interface IContentProps {
5+
messages: Message[];
6+
}
7+
8+
export const Content = ({ messages }: IContentProps) => {
9+
const contentRef = useRef<HTMLDivElement | null>(null);
510

611
useEffect(() => {
712
if (contentRef.current) {
@@ -15,12 +20,12 @@ export const Content = ({ messages }) => {
1520
<div
1621
key={index}
1722
/* set user's message to right and others to left */
18-
className={`p-2 flex ${msg.user ? 'justify-end' : 'justify-start'}`}
23+
className={`p-2 flex ${msg.isUser ? 'justify-end' : 'justify-start'}`}
1924
>
2025
<div
2126
className={`max-w-xs p-2 rounded-lg ${
2227
// set user's message to blue and others to green
23-
msg.user
28+
msg.isUser
2429
? 'bg-blue-500 text-green'
2530
: 'bg-green-500 text-black'
2631
}`}

fe_repo/tsconfig.app.tsbuildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/textarea.tsx","./src/components/index.ts","./src/icons/icons.tsx","./src/icons/index.ts","./src/pages/chatbox.tsx","./src/pages/content.tsx","./src/pages/header.tsx","./src/pages/index.ts"],"version":"5.6.2"}
1+
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/textarea.tsx","./src/components/index.ts","./src/functions/api.test.ts","./src/functions/api.ts","./src/icons/icons.tsx","./src/icons/index.ts","./src/pages/chatbox.tsx","./src/pages/content.tsx","./src/pages/header.tsx","./src/pages/index.ts"],"version":"5.6.2"}

0 commit comments

Comments
 (0)