Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | 5x 17x 17x 17x 17x 17x 1x 1x 1x 1x 1x 17x 17x | import React from "react";
import { Button, Form } from "react-bootstrap";
import { useForm } from "react-hook-form";
import { useBackendMutation } from "main/utils/useBackend";
const ChatMessageCreate = ({ commonsId, submitAction }) => {
const testid = "ChatMessageCreate";
const initialMessagePageSize = 10;
const objectToAxiosParams = (newMessage) => ({
// Stryker disable next-line all : axiosMock post test works when mutated
url: `/api/chat/post?commonsId=${newMessage.commonsId}&content=${newMessage.content}`,
method: "POST",
data: newMessage
});
const mutation = useBackendMutation(
objectToAxiosParams,
{ },
// Stryker disable next-line all : hard to set up test for caching
[`/api/chat/get?page=0&size=${initialMessagePageSize}&commonsId=${commonsId}`]
);
submitAction = submitAction || (async (data) => {
const escapedContent = encodeURIComponent(data.message);
const escapedCommonsId = encodeURIComponent(Number(commonsId));
const params = { content: escapedContent, commonsId: escapedCommonsId };
mutation.mutate(params);
reset();
});
const {
register,
formState: {errors},
handleSubmit,
reset,
} = useForm( );
return (
<Form data-testid={testid} onSubmit={handleSubmit(submitAction)}
style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
<Form.Control
data-testid={`${testid}-Message`}
id="message"
type="text"
{...register("message", { required: "Message cannot be empty" })}
/>
<Form.Control.Feedback type="invalid">
{errors.message?.message}
</Form.Control.Feedback>
<Button type="submit" data-testid={`${testid}-Send`}>Send</Button>
</Form>
);
};
export default ChatMessageCreate; |