Modul.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import React, { useRef, Component } from 'react';
  2. import { Row, Col, Button, Popover, PopoverHeader, PopoverBody, Card, CardBody, Modal, ModalBody, ModalFooter } from "reactstrap";
  3. import ComponentToPrint from "./Modul_print";
  4. import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
  5. import id from 'date-fns/locale/id';
  6. import CopyToClipboard from "react-copy-to-clipboard";
  7. import { ENV } from '../../env';
  8. import Swal from 'sweetalert2';
  9. import Datetime from "react-datetime";
  10. class Modul extends Component {
  11. constructor(props) {
  12. super(props);
  13. this.state = {
  14. selectedPeserta: "",
  15. copiedd: false,
  16. };
  17. };
  18. handleOpenAlert = () => {
  19. Swal.fire({
  20. icon: 'error',
  21. title: 'Oops...',
  22. html: 'Maaf anda tidak memiliki akses untuk menyelesaikan<p> proses ini.</p>',
  23. confirmButtonColor: "#3e3a8e",
  24. confirmButtonText: 'Oke'
  25. })
  26. };
  27. CloseCopiedd = () => {
  28. setTimeout(() => {
  29. this.setState({
  30. copiedd: !this.state.copiedd
  31. });
  32. }, 1000);
  33. }
  34. Copiedd = () => this.setState({
  35. copiedd: !this.state.copiedd
  36. })
  37. render() {
  38. const { dataLaporan, daftarPeserta } = this.props
  39. return (
  40. <div>
  41. <div className=' content-heading border-radius-login'>
  42. <span className="btn-radius">
  43. {this.props.role === 2024 ?
  44. <Button color className="btn-labeled-4" onClick={this.handleOpenAlert}>
  45. <h4 className="p-0 mt-2">Print dan Download</h4>
  46. </Button> :
  47. <ReactToPrint
  48. trigger={() => {
  49. return <span>
  50. <Button color className="btn-labeled-4">
  51. <h4 className="p-0 mt-2">Print dan Download</h4>
  52. </Button>
  53. </span>
  54. }}
  55. content={() => this.componentRef}
  56. />
  57. }
  58. </span>
  59. </div>
  60. <div style={{ display: "none" }}>
  61. <ComponentToPrint ref={el => (this.componentRef = el)} query={this.props.query} />
  62. </div>
  63. {ENV === "local" &&
  64. <CopyToClipboard
  65. text={`http://localhost:3000/signature/modul/${dataLaporan.data?._id}`}
  66. options={{ asHtml: true }}
  67. >
  68. <div>
  69. <span className="btn-radius">
  70. <Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
  71. this.CloseCopiedd()
  72. }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" />&nbsp;Link Dokumen Berita Acara</span>
  73. {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> &nbsp;Link Dokumen Berita Acara</h5> */}
  74. </Button>
  75. </span>
  76. <Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
  77. <PopoverHeader>Link Berhasil Disalin</PopoverHeader>
  78. </Popover>
  79. </div>
  80. </CopyToClipboard>
  81. }
  82. {ENV === "production" &&
  83. <CopyToClipboard
  84. text={`https://sidali.kemdikbud.go.id/signature/modul/${dataLaporan.data?._id}`}
  85. options={{ asHtml: true }}
  86. >
  87. <div>
  88. <span className="btn-radius">
  89. <Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
  90. this.CloseCopiedd()
  91. }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" />&nbsp;Link Dokumen Berita Acara</span>
  92. {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> &nbsp;Link Dokumen Berita Acara</h5> */}
  93. </Button>
  94. </span>
  95. <Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
  96. <PopoverHeader>Link Berhasil Disalin</PopoverHeader>
  97. </Popover>
  98. </div>
  99. </CopyToClipboard>
  100. }
  101. {ENV === "development" &&
  102. <CopyToClipboard
  103. text={`https://dev.sidali.kemdikbud.go.id/signature/modul/${dataLaporan.data?._id}`}
  104. options={{ asHtml: true }}
  105. >
  106. <div>
  107. <span className="btn-radius">
  108. <Button color id="Popover1" className="ml-0 mt-2 mb-2 btn-v1-outline-purple" onClick={() => {
  109. this.CloseCopiedd()
  110. }} ><span><em className="fas fa-project-diagram float-left mt-1 mr-1" />&nbsp;Link Dokumen Berita Acara</span>
  111. {/* <h5 className="p-0 mt-3 float-right"> <em className="fas fa-project-diagram float-left mt-1" /> &nbsp;Link Dokumen Berita Acara</h5> */}
  112. </Button>
  113. </span>
  114. <Popover placement="bottom" isOpen={this.state.copiedd} target="Popover1" toggle={this.Copiedd}>
  115. <PopoverHeader>Link Berhasil Disalin</PopoverHeader>
  116. </Popover>
  117. </div>
  118. </CopyToClipboard>
  119. }
  120. <div >
  121. <div className='header-ttd signature-border pt-1 pb-1'>
  122. <text className='header-ttd font-weight-bold '>PESERTA RAPAT</text>
  123. </div>
  124. <div id="ttd">
  125. {daftarPeserta
  126. ? daftarPeserta.data?.daftar_kehadiran_peserta?.map((value) => (
  127. <div className='ttd-div'>
  128. <div className='sign-ttd'>
  129. <img
  130. className='sign-ttd'
  131. src={value.ttd.path} />
  132. </div>
  133. <div className='sign-nama'>
  134. <text>
  135. {value.nama}
  136. </text>
  137. </div>
  138. </div>
  139. )) : ""}
  140. </div>
  141. </div>
  142. </div>
  143. )
  144. }
  145. }
  146. export default Modul