theme-ui#Message TypeScript Examples
The following examples show how to use
theme-ui#Message.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AddComment.tsx From use-comments with MIT License | 5 votes |
AddComment = ({ onSubmit }: AddCommentProps) => {
const [username, setUsername] = useState('');
const [comment, setComment] = useState('');
const [added, setAdded] = useState(false);
return (
<Box
as="form"
onSubmit={e => {
console.log({ e });
e.preventDefault();
onSubmit({ content: comment, author: username });
setAdded(true);
setComment('');
setUsername('');
}}
>
<Label htmlFor="username">Username</Label>
<Input
name="username"
id="username"
placeholder="Jon Doe"
value={username}
onChange={e => setUsername(e.target.value)}
sx={{ mb: 3 }}
autoComplete="off"
/>
<Label htmlFor="comment">Comment</Label>
<Textarea
name="comment"
id="comment"
rows={2}
placeholder="Tell me what you think ?"
value={comment}
onChange={e => setComment(e.target.value)}
sx={{ mb: 3, fontFamily: 'body' }}
/>
<Button
type="submit"
sx={{
mb: 3,
...((!username || !comment) && {
pointerEvents: 'none',
opacity: '0.5',
}),
}}
disabled={!username || !comment}
>
Add comment
</Button>
{added && (
<Message
variant="primary"
sx={{
fontSize: '0.8em',
}}
>
Thanks for your comment! ? Your comment status is{' '}
<i>waiting for approval</i>. Comments on this website need to be
approved before they are visible to others.
</Message>
)}
<Divider />
</Box>
);
}