index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { Modal,Button } from 'antd'
  2. import { useDropzone } from 'react-dropzone'
  3. import React, {useEffect } from 'react'
  4. import { UploadOutlined } from '@ant-design/icons'
  5. export const videoRegex = (/\.(mp4|mov|avi|wmv|avchd|webm|mpeg-2|3gpp|mp2|flv|3gp|mpg)$/i)
  6. export const ConstructorModal = ({
  7. title,
  8. children,
  9. isModalVisible,
  10. setIsModalVisible,
  11. }) => {
  12. const handleCancel = () => {
  13. setIsModalVisible(false)
  14. }
  15. return (
  16. <>
  17. <Modal
  18. title={title}
  19. centered
  20. bodyStyle={{ padding:'0px'}}
  21. className="Modal"
  22. footer={null}
  23. onCancel={handleCancel}
  24. visible={isModalVisible}
  25. >
  26. {children}
  27. </Modal>
  28. </>
  29. )
  30. }
  31. export function Dropzone({ onLoad }) {
  32. const { acceptedFiles, getRootProps, getInputProps } = useDropzone()
  33. const files = acceptedFiles.map((file) => (
  34. <li key={file.path}>
  35. {file.path} - {file.size} bytes
  36. </li>
  37. ))
  38. useEffect(() => {
  39. acceptedFiles[0] && onLoad(acceptedFiles[0])
  40. }, [acceptedFiles])
  41. return (
  42. <section className="container">
  43. <div {...getRootProps({ className: 'Dropzone' })}>
  44. <input {...getInputProps()} />
  45. <Button type="default" icon={<UploadOutlined />}>
  46. <span className='DropzoneText' >
  47. Drag 'n' drop some files here, or click to select files
  48. </span>
  49. </Button>
  50. </div>
  51. </section>
  52. )
  53. }
  54. export const validation = (password) =>
  55. !/(?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z])[0-9!@#$%^&*a-zA-Z]{8,}/g.test(
  56. password,
  57. )