abadesalex's picture
Update to Qdrant db
47b5f0c
raw
history blame
2.46 kB
import SendIcon from "@mui/icons-material/Send";
import { Button, TextField, useTheme } from "@mui/material";
import Grid from "@mui/material/Unstable_Grid2";
import { useState } from "react";
import { useSnackbar } from "notistack";
import postData from "../../services/api/basePostData";
export default function SendMessage({ fetchMessages }) {
const [userMessage, setUserMessage] = useState("");
const { enqueueSnackbar } = useSnackbar();
const theme = useTheme();
const onMessageChange = (e) => {
setUserMessage(e.target.value);
};
const onPressButton = () => {
const url = `/query/query_search`;
if (!userMessage.trim()) {
enqueueSnackbar("Please enter a message.", {
variant: "warning",
});
return;
}
const data = { q: userMessage };
postData(url, data)
.then(fetchMessages)
.catch((error) => {
enqueueSnackbar(error.detail || error.message, {
variant: "error",
});
});
setUserMessage("");
};
return (
<>
<Grid
container
alignItems={"center"}
xs={12}
sm={12}
p={2}
pl={3}
border={1}
borderRadius={2}
borderColor={theme.palette.border.default}
sx={{
backgroundColor: theme.palette.background.default,
}}
>
<Grid item xs={12} sm={10}>
<TextField
fullWidth
size="small"
label="Ask me anything"
value={userMessage}
onChange={onMessageChange}
slotProps={{
input: {
sx: {
backgroundColor: "white",
borderRadius: "4px",
},
},
}}
/>
</Grid>
<Grid
ml={4}
item
xs={12}
border={1}
borderColor={theme.palette.border.default}
borderRadius={20}
display="flex"
justifyContent="center"
alignItems="center"
sx={{
backgroundColor: theme.palette.secondary.main,
width: 35,
height: 35,
}}
>
<Button onClick={onPressButton}>
<SendIcon
fontSize="small"
sx={{
color: theme.palette.border.default,
}}
/>
</Button>
</Grid>
</Grid>
</>
);
}