MarkdownForm.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { useState } from "react";
  2. import { useIntl } from "react-intl";
  3. import { ProForm, ProFormTextArea } from "@ant-design/pro-components";
  4. import { message } from "antd";
  5. import MDEditor from "@uiw/react-md-editor";
  6. interface IFormData {
  7. plain: string;
  8. }
  9. const Widget = () => {
  10. const intl = useIntl();
  11. const [mdValue, setMdValue] = useState("**Hello mint!!!**");
  12. return (
  13. <ProForm<IFormData>
  14. onFinish={async (values: IFormData) => {
  15. // TODO
  16. console.log(mdValue, values);
  17. message.success(intl.formatMessage({ id: "flashes.success" }));
  18. }}
  19. >
  20. <ProForm.Group>
  21. <ProFormTextArea
  22. width="md"
  23. name="plain"
  24. required
  25. label="Plain text"
  26. rules={[{ required: true }]}
  27. />
  28. </ProForm.Group>
  29. <ProForm.Group>
  30. <MDEditor
  31. value={mdValue}
  32. onChange={(value: string | undefined) => {
  33. if (value) {
  34. setMdValue(value);
  35. }
  36. }}
  37. />
  38. </ProForm.Group>
  39. </ProForm>
  40. );
  41. };
  42. export default Widget;