-Latest comment UI in table -Send comment/reply in modal
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1111 lines
87 KiB

4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Comment Thread Component</title>
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
  8. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css" integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  9. <link href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.css" rel="stylesheet" />
  10. <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.js"></script>
  11. <style>
  12. ul {
  13. list-style-type: none;
  14. padding-left: 0;
  15. }
  16. ul > li {
  17. margin-bottom: 5px;
  18. }
  19. ul > li > a {
  20. text-decoration: none;
  21. color: gray;
  22. }
  23. ul > li > a:hover {
  24. text-decoration: underline;
  25. color: black;
  26. }
  27. .nav-link {
  28. color: black;
  29. }
  30. .nav-link.active {
  31. background-color: black !important;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="container my-5">
  37. <div class="row">
  38. <div class="col-10">
  39. <h1>Comment Thread Component</h3>
  40. <h5 class="mt-4" id="component-a">No comment</h5>
  41. <p>No comment yet. Display clickable add comment text with icon.</p>
  42. <table class="table table-hover table-bordered">
  43. <thead class="table-light">
  44. <tr>
  45. <th scope="col">#</th>
  46. <th scope="col">First column</th>
  47. <th scope="col">Second column</th>
  48. <th scope="col" width="30%">Comment</th>
  49. </tr>
  50. </thead>
  51. <tbody>
  52. <tr>
  53. <th scope="row">1</th>
  54. <td>Lorem Ipsum 1</td>
  55. <td>Lorem Ipsum 2</td>
  56. <td>
  57. <div class="d-flex justify-content-center align-items-center gap-1 p-2 text-muted" style="cursor:pointer">
  58. <i class="far fa-comment text-muted"></i> Add Comment
  59. </div>
  60. </td>
  61. </tr>
  62. </tbody>
  63. </table>
  64. <!-- Code Preview -->
  65. <div class="row">
  66. <div class="col">
  67. <div class="card">
  68. <div class="card-header">
  69. <ul class="nav nav-pills" id="pills-tab" role="tablist">
  70. <li class="nav-item" role="presentation">
  71. <button class="nav-link active" id="pills-a-html-tab" data-bs-toggle="pill" data-bs-target="#pills-a-html" type="button" role="tab" aria-controls="pills-a-html" aria-selected="true">HTML</button>
  72. </li>
  73. <li class="nav-item" role="presentation">
  74. <button class="nav-link" id="pills-a-react-tab" data-bs-toggle="pill" data-bs-target="#pills-a-react" type="button" role="tab" aria-controls="pills-a-react" aria-selected="false">React</button>
  75. </li>
  76. <li class="nav-item" role="presentation">
  77. <button class="nav-link" id="pills-a-vue-tab" data-bs-toggle="pill" data-bs-target="#pills-a-vue" type="button" role="tab" aria-controls="pills-a-vue" aria-selected="false">Vue</button>
  78. </li>
  79. <li class="nav-item ms-auto">
  80. <button class="btn btn-outline-dark" onclick="copyToClipboard(this, 'pills-a-tabContent')">Copy</button>
  81. </li>
  82. </ul>
  83. </div>
  84. <div class="card-body p-0">
  85. <div class="tab-content" id="pills-a-tabContent">
  86. <div class="tab-pane fade active show" id="pills-a-html" role="tabpanel" aria-labelledby="pills-a-html-tab">
  87. <pre class="mt-0"><code class="language-html">
  88. &lt;table class="table table-hover table-bordered">
  89. &lt;thead class="table-light">
  90. &lt;tr>
  91. &lt;th scope="col">...&lt;/th>
  92. &lt;th scope="col">...&lt;/th>
  93. &lt;th scope="col">...&lt;/th>
  94. &lt;th scope="col" width="30%">...&lt;/th>
  95. &lt;/tr>
  96. &lt;/thead>
  97. &lt;tbody>
  98. &lt;tr>
  99. &lt;th scope="row">...&lt;/th>
  100. &lt;td>...&lt;/td>
  101. &lt;td>...&lt;/td>
  102. &lt;td>
  103. &lt;div class="d-flex justify-content-center align-items-center gap-1 p-2 text-muted" style="cursor:pointer">
  104. &lt;i class="far fa-comment text-muted">&lt;/i> Add Comment
  105. &lt;/div>
  106. &lt;/td>
  107. &lt;/tr>
  108. &lt;/tbody>
  109. &lt;/table>
  110. </code></pre>
  111. </div>
  112. <div class="tab-pane fade" id="pills-a-react" role="tabpanel" aria-labelledby="pills-a-react-tab">
  113. <pre class="mt-0"><code class="language-html">
  114. import React from 'react';
  115. import './styles.css'; // Assuming you have a CSS file for styling
  116. function MyTable() {
  117. return (
  118. &lt;table className="table table-hover table-bordered">
  119. &lt;thead>
  120. &lt;tr>
  121. &lt;th scope="col">#&lt;/th>
  122. &lt;th scope="col">First column&lt;/th>
  123. &lt;th scope="col">Second column&lt;/th>
  124. &lt;th scope="col" width="30%">Comment&lt;/th>
  125. &lt;/tr>
  126. &lt;/thead>
  127. &lt;tbody>
  128. &lt;tr>
  129. &lt;th scope="row">1&lt;/th>
  130. &lt;td>Lorem Ipsum 1&lt;/td>
  131. &lt;td>Lorem Ipsum 2&lt;/td>
  132. &lt;td>
  133. &lt;div className="d-flex justify-content-center align-items-center gap-1 p-2 text-muted" style={{ cursor: 'pointer' }}>
  134. &lt;i className="far fa-comment text-muted">&lt;/i> Add Comment
  135. &lt;/div>
  136. &lt;/td>
  137. &lt;/tr>
  138. &lt;/tbody>
  139. &lt;/table>
  140. );
  141. }
  142. export default MyTable;
  143. </code></pre>
  144. </div>
  145. <div class="tab-pane fade" id="pills-a-vue" role="tabpanel" aria-labelledby="pills-a-vue-tab">
  146. <pre class="mt-0"><code class="language-html">
  147. &lt;template>
  148. &lt;table class="table table-hover table-bordered">
  149. &lt;thead>
  150. &lt;tr>
  151. &lt;th scope="col">#&lt;/th>
  152. &lt;th scope="col">First column&lt;/th>
  153. &lt;th scope="col">Second column&lt;/th>
  154. &lt;th scope="col" width="30%">Comment&lt;/th>
  155. &lt;/tr>
  156. &lt;/thead>
  157. &lt;tbody>
  158. &lt;tr>
  159. &lt;th scope="row">1&lt;/th>
  160. &lt;td>Lorem Ipsum 1&lt;/td>
  161. &lt;td>Lorem Ipsum 2&lt;/td>
  162. &lt;td>
  163. &lt;div class="d-flex justify-content-center align-items-center gap-1 p-2 text-muted" style="cursor:pointer">
  164. &lt;i class="far fa-comment text-muted">&lt;/i> Add Comment
  165. &lt;/div>
  166. &lt;/td>
  167. &lt;/tr>
  168. &lt;/tbody>
  169. &lt;/table>
  170. &lt;/template>
  171. &lt;script>
  172. export default {
  173. name: 'MyTable',
  174. };
  175. &lt;/script>
  176. &lt;style scoped>
  177. /* Add your table-specific styles here */
  178. &lt;/style>
  179. </code></pre>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. <h5 class="mt-5" id="component-b">Opened Comment</h5>
  187. <p>Comment opened already.</p>
  188. <table class="table table-hover table-bordered">
  189. <thead class="table-light">
  190. <tr>
  191. <th scope="col">#</th>
  192. <th scope="col">First column</th>
  193. <th scope="col">Second column</th>
  194. <th scope="col" width="30%">Comment</th>
  195. </tr>
  196. </thead>
  197. <tbody>
  198. <tr>
  199. <th scope="row">1</th>
  200. <td>Lorem Ipsum 1</td>
  201. <td>Lorem Ipsum 2</td>
  202. <td>
  203. <div class="card bg-light rounded-4" style="cursor:pointer">
  204. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  205. <!-- Replace src based on your actual directory and file -->
  206. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:24px; max-width:26px">
  207. <div class="d-flex flex-column col" style="width:inherit !important">
  208. <div class="d-flex justify-content-between gap-4">
  209. <div class="card-title text-truncate text-xs">
  210. <!-- Username -->
  211. Juan Dela Cruz
  212. </div>
  213. <div class="text-end text-muted text-xxs">
  214. <!-- Latest comment date & time -->
  215. 08 Aug 2024 01:06 PM
  216. </div>
  217. </div>
  218. <p class="card-text text-truncate text-xs" style="width:300px !important">
  219. <!-- Cemment content here -->
  220. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  221. </p>
  222. </div>
  223. </div>
  224. </div>
  225. </td>
  226. </tr>
  227. </tbody>
  228. </table>
  229. <!-- Code Preview -->
  230. <div class="row">
  231. <div class="col">
  232. <div class="card">
  233. <div class="card-header">
  234. <ul class="nav nav-pills" id="pills-tab" role="tablist">
  235. <li class="nav-item" role="presentation">
  236. <button class="nav-link active" id="pills-b-html-tab" data-bs-toggle="pill" data-bs-target="#pills-b-html" type="button" role="tab" aria-controls="pills-b-html" aria-selected="true">HTML</button>
  237. </li>
  238. <li class="nav-item" role="presentation">
  239. <button class="nav-link" id="pills-b-react-tab" data-bs-toggle="pill" data-bs-target="#pills-b-react" type="button" role="tab" aria-controls="pills-b-react" aria-selected="false">React</button>
  240. </li>
  241. <li class="nav-item" role="presentation">
  242. <button class="nav-link" id="pills-b-vue-tab" data-bs-toggle="pill" data-bs-target="#pills-b-vue" type="button" role="tab" aria-controls="pills-b-vue" aria-selected="false">Vue</button>
  243. </li>
  244. <li class="nav-item ms-auto">
  245. <button class="btn btn-outline-dark" onclick="copyToClipboard(this, 'pills-b-tabContent')">Copy</button>
  246. </li>
  247. </ul>
  248. </div>
  249. <div class="card-body p-0">
  250. <div class="tab-content" id="pills-b-tabContent">
  251. <div class="tab-pane fade active show" id="pills-b-html" role="tabpanel" aria-labelledby="pills-b-html-tab">
  252. <pre class="mt-0"><code class="language-html">
  253. &lt;table class="table table-hover table-bordered">
  254. &lt;thead class="table-light">
  255. &lt;tr>
  256. &lt;th scope="col">...&lt;/th>
  257. &lt;th scope="col">...&lt;/th>
  258. &lt;th scope="col">...&lt;/th>
  259. &lt;th scope="col" width="30%">...&lt;/th>
  260. &lt;/tr>
  261. &lt;/thead>
  262. &lt;tbody>
  263. &lt;tr>
  264. &lt;th scope="row">...&lt;/th>
  265. &lt;td>...&lt;/td>
  266. &lt;td>...&lt;/td>
  267. &lt;td>
  268. &lt;div class="card bg-light rounded-4" style="cursor:pointer">
  269. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  270. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:24px; max-width:26px">
  271. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  272. &lt;div class="d-flex justify-content-between gap-4">
  273. &lt;div class="card-title text-truncate text-xs">
  274. Juan Dela Cruz
  275. &lt;/div>
  276. &lt;div class="text-end text-muted text-xxs">
  277. 08 Aug 2024 01:06 PM
  278. &lt;/div>
  279. &lt;/div>
  280. &lt;p class="card-text text-truncate text-xs" style="width:300px !important">
  281. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  282. &lt;/p>
  283. &lt;/div>
  284. &lt;/div>
  285. &lt;/div>
  286. &lt;/td>
  287. &lt;/tr>
  288. &lt;/tbody>
  289. &lt;/table>
  290. </code></pre>
  291. </div>
  292. <div class="tab-pane fade" id="pills-b-react" role="tabpanel" aria-labelledby="pills-b-react-tab">
  293. <pre class="mt-0"><code class="language-html">
  294. import React from 'react';
  295. import './styles.css'; // Assuming you have a CSS file for styling
  296. const TableComponent = () => {
  297. return (
  298. &lt;table className="table table-hover table-bordered">
  299. &lt;thead className="table-light">
  300. &lt;tr>
  301. &lt;th scope="col">...&lt;/th>
  302. &lt;th scope="col">...&lt;/th>
  303. &lt;th scope="col">...&lt;/th>
  304. &lt;th scope="col" style={{ width: '30%' }}>...&lt;/th>
  305. &lt;/tr>
  306. &lt;/thead>
  307. &lt;tbody>
  308. &lt;tr>
  309. &lt;th scope="row">...&lt;/th>
  310. &lt;td>...&lt;/td>
  311. &lt;td>...&lt;/td>
  312. &lt;td>
  313. &lt;div className="card bg-light rounded-4" style={{ cursor: 'pointer' }}>
  314. &lt;div className="card-body d-flex gap-1 gap-2 mb-0 p-2">
  315. &lt;img
  316. src="/public/default.png"
  317. alt="..."
  318. className="rounded-circle"
  319. style={{ height: 'auto', width: 'auto', maxHeight: '24px', maxWidth: '26px' }}
  320. />
  321. &lt;div className="d-flex flex-column col" style={{ width: 'inherit !important' }}>
  322. &lt;div className="d-flex justify-content-between gap-4">
  323. &lt;div className="card-title text-truncate text-xs">
  324. Juan Dela Cruz
  325. &lt;/div>
  326. &lt;div className="text-end text-muted text-xxs">
  327. 08 Aug 2024 01:06 PM
  328. &lt;/div>
  329. &lt;/div>
  330. &lt;p className="card-text text-truncate text-xs" style={{ width: '300px !important' }}>
  331. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  332. &lt;/p>
  333. &lt;/div>
  334. &lt;/div>
  335. &lt;/div>
  336. &lt;/td>
  337. &lt;/tr>
  338. &lt;/tbody>
  339. &lt;/table>
  340. );
  341. };
  342. export default TableComponent;
  343. </code></pre>
  344. </div>
  345. <div class="tab-pane fade" id="pills-b-vue" role="tabpanel" aria-labelledby="pills-b-vue-tab">
  346. <pre class="mt-0"><code class="language-html">
  347. &lt;template>
  348. &lt;table class="table table-hover table-bordered">
  349. &lt;thead class="table-light">
  350. &lt;tr>
  351. &lt;th scope="col">...&lt;/th>
  352. &lt;th scope="col">...&lt;/th>
  353. &lt;th scope="col">...&lt;/th>
  354. &lt;th scope="col" style="width: 30%;">...&lt;/th>
  355. &lt;/tr>
  356. &lt;/thead>
  357. &lt;tbody>
  358. &lt;tr>
  359. &lt;th scope="row">...&lt;/th>
  360. &lt;td>...&lt;/td>
  361. &lt;td>...&lt;/td>
  362. &lt;td>
  363. &lt;div class="card bg-light rounded-4" style="cursor: pointer;">
  364. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  365. &lt;img
  366. src="/public/default.png"
  367. alt="..."
  368. class="rounded-circle"
  369. style="height: auto; width: auto; max-height: 24px; max-width: 26px;"
  370. />
  371. &lt;div class="d-flex flex-column col" style="width: inherit !important;">
  372. &lt;div class="d-flex justify-content-between gap-4">
  373. &lt;div class="card-title text-truncate text-xs">
  374. Juan Dela Cruz
  375. &lt;/div>
  376. &lt;div class="text-end text-muted text-xxs">
  377. 08 Aug 2024 01:06 PM
  378. &lt;/div>
  379. &lt;/div>
  380. &lt;p class="card-text text-truncate text-xs" style="width: 300px !important;">
  381. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  382. &lt;/p>
  383. &lt;/div>
  384. &lt;/div>
  385. &lt;/div>
  386. &lt;/td>
  387. &lt;/tr>
  388. &lt;/tbody>
  389. &lt;/table>
  390. &lt;/template>
  391. &lt;script>
  392. export default {
  393. name: 'TableComponent',
  394. };
  395. &lt;/script>
  396. &lt;style scoped>
  397. /* Add scoped styles if necessary */
  398. &lt;/style>
  399. </code></pre>
  400. </div>
  401. </div>
  402. </div>
  403. </div>
  404. </div>
  405. </div>
  406. <h5 class="mt-5" id="component-c">Open Comment Modal</h5>
  407. <p>Click comment area to open comment modal.</p>
  408. <table class="table table-hover table-bordered">
  409. <thead class="table-light">
  410. <tr>
  411. <th scope="col">#</th>
  412. <th scope="col">First column</th>
  413. <th scope="col">Second column</th>
  414. <th scope="col" width="30%">Comment</th>
  415. </tr>
  416. </thead>
  417. <tbody>
  418. <tr>
  419. <th scope="row">1</th>
  420. <td>Lorem Ipsum 1</td>
  421. <td>Lorem Ipsum 2</td>
  422. <td>
  423. <div class="card bg-light rounded-4" style="cursor:pointer" data-bs-toggle="modal" data-bs-target="#exampleModal">
  424. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  425. <!-- Replace src based on your actual directory and file -->
  426. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:24px; max-width:26px">
  427. <div class="d-flex flex-column col" style="width:inherit !important">
  428. <div class="d-flex justify-content-between gap-4">
  429. <div class="card-title text-truncate fs-6 fw-bold">
  430. <!-- Username -->
  431. Juan Dela Cruz
  432. </div>
  433. <div class="text-end fs-6 fw-bold">
  434. <!-- Latest comment date & time -->
  435. 08 Aug 2024 01:06 PM
  436. </div>
  437. </div>
  438. <p class="card-text text-truncate fs-6 fw-bold" style="width:300px !important">
  439. <!-- Cemment content here -->
  440. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  441. </p>
  442. </div>
  443. </div>
  444. </div>
  445. </td>
  446. </tr>
  447. </tbody>
  448. </table>
  449. <!-- Code Preview -->
  450. <div class="row">
  451. <div class="col">
  452. <div class="card">
  453. <div class="card-header">
  454. <ul class="nav nav-pills" id="pills-tab" role="tablist">
  455. <li class="nav-item" role="presentation">
  456. <button class="nav-link active" id="pills-c-html-tab" data-bs-toggle="pill" data-bs-target="#pills-c-html" type="button" role="tab" aria-controls="pills-c-html" aria-selected="true">HTML</button>
  457. </li>
  458. <li class="nav-item" role="presentation">
  459. <button class="nav-link" id="pills-c-react-tab" data-bs-toggle="pill" data-bs-target="#pills-c-react" type="button" role="tab" aria-controls="pills-c-react" aria-selected="false">React</button>
  460. </li>
  461. <li class="nav-item" role="presentation">
  462. <button class="nav-link" id="pills-c-vue-tab" data-bs-toggle="pill" data-bs-target="#pills-c-vue" type="button" role="tab" aria-controls="pills-c-vue" aria-selected="false">Vue</button>
  463. </li>
  464. <li class="nav-item ms-auto">
  465. <button class="btn btn-outline-dark" onclick="copyToClipboard(this, 'pills-c-tabContent')">Copy</button>
  466. </li>
  467. </ul>
  468. </div>
  469. <div class="card-body p-0">
  470. <div class="tab-content" id="pills-c-tabContent">
  471. <div class="tab-pane fade active show" id="pills-c-html" role="tabpanel" aria-labelledby="pills-c-html-tab">
  472. <pre class="mt-0"><code class="language-html">
  473. &lt;div class="card bg-light rounded-4" style="cursor:pointer" data-bs-toggle="modal" data-bs-target="#exampleModal">
  474. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  475. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:24px; max-width:26px">
  476. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  477. &lt;div class="d-flex justify-content-between gap-4">
  478. &lt;div class="card-title text-truncate fs-6 fw-bold">
  479. Juan Dela Cruz
  480. &lt;/div>
  481. &lt;div class="text-end fs-6 fw-bold">
  482. 08 Aug 2024 01:06 PM
  483. &lt;/div>
  484. &lt;/div>
  485. &lt;p class="card-text text-truncate fs-6 fw-bold" style="width:300px !important">
  486. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  487. &lt;/p>
  488. &lt;/div>
  489. &lt;/div>
  490. &lt;/div>
  491. &lt;div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  492. &lt;div class="modal-dialog modal-lg modal-dialog-centered">
  493. &lt;div class="modal-content">
  494. &lt;div class="modal-header">
  495. &lt;h1 class="modal-title fs-5" id="exampleModalLabel">Comments&lt;/h1>
  496. &lt;button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">&lt;/button>
  497. &lt;/div>
  498. &lt;div class="modal-body">
  499. &lt;div class="card bg-body-secondary rounded-4" style="cursor:pointer">
  500. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  501. &lt;!-- Replace src based on your actual directory and file -->
  502. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  503. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  504. &lt;div class="d-flex justify-content-between gap-4">
  505. &lt;div class="card-title text-truncate fs-6">
  506. &lt;!-- Username -->
  507. Juan Dela Cruz &lt;span class="badge rounded-pill text-bg-secondary">Administrator&lt;/span>
  508. &lt;/div>
  509. &lt;div class="text-end fs-6">
  510. &lt;!-- Latest comment date & time -->
  511. 08 Aug 2024 01:06 PM
  512. &lt;/div>
  513. &lt;/div>
  514. &lt;p class="card-text fs-6">
  515. &lt;!-- Cemment content here -->
  516. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  517. &lt;/p>
  518. &lt;/div>
  519. &lt;/div>
  520. &lt;div class="card-footer d-flex justify-content-between">
  521. &lt;div class="ms-5">
  522. &lt;a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3">&lt;i class="fas fa-file-pdf text-danger me-1">&lt;/i>sample.pdf&lt;/a>
  523. &lt;/div>
  524. &lt;div class="d-flex">
  525. &lt;a href="#" class="btn">&lt;i class="fas fa-reply text-dark">&lt;/i>&lt;/a>
  526. &lt;a href="#" class="btn">&lt;i class="fas fa-comments text-dark me-1">&lt;/i>0&lt;/a>
  527. &lt;/div>
  528. &lt;/div>
  529. &lt;/div>
  530. &lt;!-- Comment with reply -->
  531. &lt;div class="card bg-body-secondary rounded-4 mt-3 " style="cursor:pointer">
  532. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  533. &lt;!-- Replace src based on your actual directory and file -->
  534. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  535. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  536. &lt;div class="d-flex justify-content-between gap-4">
  537. &lt;div class="card-title text-truncate fs-6">
  538. &lt;!-- Username -->
  539. Maria Delos Reyes &lt;span class="badge rounded-pill text-bg-secondary">Proponent&lt;/span>
  540. &lt;/div>
  541. &lt;div class="text-end fs-6">
  542. &lt;!-- Latest comment date & time -->
  543. 08 Aug 2024 01:06 PM
  544. &lt;/div>
  545. &lt;/div>
  546. &lt;p class="card-text fs-6">
  547. &lt;!-- Cemment content here -->
  548. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  549. &lt;/p>
  550. &lt;/div>
  551. &lt;/div>
  552. &lt;div class="card-footer d-flex justify-content-between">
  553. &lt;div class="ms-5">
  554. &lt;a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3">&lt;i class="fas fa-file-image text-danger me-1">&lt;/i>sample.jpg&lt;/a>
  555. &lt;/div>
  556. &lt;div class="d-flex">
  557. &lt;a href="#" class="btn">&lt;i class="fas fa-reply text-dark">&lt;/i>&lt;/a>
  558. &lt;a href="#" class="btn">&lt;i class="fas fa-comments text-dark me-1">&lt;/i>1&lt;/a>
  559. &lt;/div>
  560. &lt;/div>
  561. &lt;/div>
  562. &lt;!-- Replies -->
  563. &lt;div class="row">
  564. &lt;div class="col">&lt;/div>
  565. &lt;div class="col-10 border border-3 border-top-0 border-end-0 border-bottom-0 ps-5">
  566. &lt;div class="card bg-body-secondary rounded-4 mt-3" style="cursor:pointer">
  567. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  568. &lt;!-- Replace src based on your actual directory and file -->
  569. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  570. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  571. &lt;div class="d-flex justify-content-between gap-4">
  572. &lt;div class="card-title text-truncate fs-6">
  573. &lt;!-- Username -->
  574. Maria Delos Reyes &lt;span class="badge rounded-pill text-bg-secondary">Proponent&lt;/span>
  575. &lt;/div>
  576. &lt;div class="text-end fs-6">
  577. &lt;!-- Latest comment date & time -->
  578. 08 Aug 2024 01:06 PM
  579. &lt;/div>
  580. &lt;/div>
  581. &lt;p class="card-text fs-6">
  582. &lt;!-- Cemment content here -->
  583. Lorem ipsum dolor sit amet, consectetur adipiscing elit,
  584. &lt;/p>
  585. &lt;/div>
  586. &lt;/div>
  587. &lt;div class="card-footer d-flex justify-content-between">
  588. &lt;div class="ms-5">
  589. &lt;a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3">&lt;i class="fas fa-file-image text-danger me-1">&lt;/i>sample.jpg&lt;/a>
  590. &lt;/div>
  591. &lt;div class="d-flex">
  592. &lt;a href="#" class="btn">&lt;i class="fas fa-pen">&lt;/i>&lt;/a>
  593. &lt;a href="#" class="btn">&lt;i class="far fa-trash-alt text-danger">&lt;/i>&lt;/a>
  594. &lt;/div>
  595. &lt;/div>
  596. &lt;/div>
  597. &lt;!-- Send Reply Thread -->
  598. &lt;div class="card border-0 rounded-4 mt-2" style="cursor:pointer">
  599. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  600. &lt;!-- Replace src based on your actual directory and file -->
  601. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  602. &lt;div class="border border-dark rounded-4 w-100 p-2">
  603. &lt;textarea class="comment-textarea w-100" placeholder="Reply to this thread..." style="border:0; resize: none; outline:none">&lt;/textarea>
  604. &lt;div class="d-flex justify-content-between">
  605. &lt;div class="d-flex justify-content-between align-items-center border border-dark rounded border border-secondary text-bg-light">
  606. &lt;p class="p-1 mb-0 text-dark px-2 text-truncate">File.pdf&lt;/p>
  607. &lt;button type="button" class="btn text-danger font-weight-bold">&lt;i class="far fa-window-close">&lt;/i>&lt;/button>
  608. &lt;/div>
  609. &lt;div class="d-flex">
  610. &lt;a href="#" class="btn">&lt;i class="fas fa-paperclip">&lt;/i>&lt;/a>
  611. &lt;a href="#" class="btn">&lt;i class="fas fa-paper-plane text-info">&lt;/i>&lt;/a>
  612. &lt;/div>
  613. &lt;/div>
  614. &lt;/div>
  615. &lt;/div>
  616. &lt;/div>
  617. &lt;/div>
  618. &lt;/div>
  619. &lt;!-- Send Comment Thread -->
  620. &lt;div class="card border-0 rounded-4 mt-2" style="cursor:pointer">
  621. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  622. &lt;!-- Replace src based on your actual directory and file -->
  623. &lt;img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  624. &lt;div class="border border-dark rounded-4 w-100 p-2">
  625. &lt;textarea class="comment-textarea w-100" placeholder="Write a new comment..." style="border:0; resize: none; outline:none">&lt;/textarea>
  626. &lt;div class="d-flex justify-content-between">
  627. &lt;div class="d-flex justify-content-between align-items-center border border-dark rounded border border-secondary text-bg-light">
  628. &lt;p class="p-1 mb-0 text-dark px-2 text-truncate">File.pdf&lt;/p>
  629. &lt;button type="button" class="btn text-danger font-weight-bold">&lt;i class="far fa-window-close">&lt;/i>&lt;/button>
  630. &lt;/div>
  631. &lt;div class="d-flex">
  632. &lt;a href="#" class="btn">&lt;i class="fas fa-paperclip">&lt;/i>&lt;/a>
  633. &lt;a href="#" class="btn">&lt;i class="fas fa-paper-plane text-info">&lt;/i>&lt;/a>
  634. &lt;/div>
  635. &lt;/div>
  636. &lt;/div>
  637. &lt;/div>
  638. &lt;/div>
  639. &lt;/div>
  640. &lt;div class="modal-footer">
  641. &lt;button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close&lt;/button>
  642. &lt;/div>
  643. &lt;/div>
  644. &lt;/div>
  645. &lt;/div>
  646. </code></pre>
  647. </div>
  648. <div class="tab-pane fade" id="pills-c-react" role="tabpanel" aria-labelledby="pills-c-react-tab">
  649. <pre class="mt-0"><code class="language-html">
  650. import React, { useState } from 'react';
  651. const CommentsComponent = () => {
  652. const [showModal, setShowModal] = useState(false);
  653. return (
  654. &lt;div>
  655. &lt;!-- Card with user info -->
  656. &lt;div className="card bg-light rounded-4" style={{ cursor: 'pointer' }} onClick={() => setShowModal(true)}>
  657. &lt;div className="card-body d-flex gap-1 gap-2 mb-0 p-2">
  658. &lt;img src="/public/default.png" alt="..." className="rounded-circle" style={{ maxHeight: '24px', maxWidth: '26px' }} />
  659. &lt;div className="d-flex flex-column col" style={{ width: 'inherit' }}>
  660. &lt;div className="d-flex justify-content-between gap-4">
  661. &lt;div className="card-title text-truncate fs-6 fw-bold">Juan Dela Cruz&lt;/div>
  662. &lt;div className="text-end fs-6 fw-bold">08 Aug 2024 01:06 PM&lt;/div>
  663. &lt;/div>
  664. &lt;p className="card-text text-truncate fs-6 fw-bold" style={{ width: '300px' }}>
  665. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
  666. &lt;/p>
  667. &lt;/div>
  668. &lt;/div>
  669. &lt;/div>
  670. &lt;!-- Modal -->
  671. {showModal && (
  672. &lt;div className="modal fade show d-block" style={{ background: 'rgba(0, 0, 0, 0.5)' }}>
  673. &lt;div className="modal-dialog modal-lg modal-dialog-centered">
  674. &lt;div className="modal-content">
  675. &lt;div className="modal-header">
  676. &lt;h1 className="modal-title fs-5" id="exampleModalLabel">Comments&lt;/h1>
  677. &lt;button type="button" className="btn-close" onClick={() => setShowModal(false)} aria-label="Close">&lt;/button>
  678. &lt;/div>
  679. &lt;div className="modal-body">
  680. &lt;!-- Comment Card -->
  681. &lt;div className="card bg-body-secondary rounded-4" style={{ cursor: 'pointer' }}>
  682. &lt;div className="card-body d-flex gap-1 gap-2 mb-0 p-2">
  683. &lt;img src="/public/default.png" alt="..." className="rounded-circle" style={{ maxHeight: '45px', maxWidth: '48px' }} />
  684. &lt;div className="d-flex flex-column col">
  685. &lt;div className="d-flex justify-content-between gap-4">
  686. &lt;div className="card-title text-truncate fs-6">Juan Dela Cruz &lt;span className="badge rounded-pill text-bg-secondary">Administrator&lt;/span>&lt;/div>
  687. &lt;div className="text-end fs-6">08 Aug 2024 01:06 PM&lt;/div>
  688. &lt;/div>
  689. &lt;p className="card-text fs-6">
  690. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
  691. &lt;/p>
  692. &lt;/div>
  693. &lt;/div>
  694. &lt;div className="card-footer d-flex justify-content-between">
  695. &lt;div className="ms-5">
  696. &lt;a className="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3">&lt;i className="fas fa-file-pdf text-danger me-1">&lt;/i>sample.pdf&lt;/a>
  697. &lt;/div>
  698. &lt;div className="d-flex">
  699. &lt;a href="#" className="btn">&lt;i className="fas fa-reply text-dark">&lt;/i>&lt;/a>
  700. &lt;a href="#" className="btn">&lt;i className="fas fa-comments text-dark me-1">&lt;/i>0&lt;/a>
  701. &lt;/div>
  702. &lt;/div>
  703. &lt;/div>
  704. &lt;!-- Reply Card -->
  705. &lt;div className="card bg-body-secondary rounded-4 mt-3" style={{ cursor: 'pointer' }}>
  706. &lt;div className="card-body d-flex gap-1 gap-2 mb-0 p-2">
  707. &lt;img src="/public/default.png" alt="..." className="rounded-circle" style={{ maxHeight: '45px', maxWidth: '48px' }} />
  708. &lt;div className="d-flex flex-column col">
  709. &lt;div className="d-flex justify-content-between gap-4">
  710. &lt;div className="card-title text-truncate fs-6">Maria Delos Reyes &lt;span className="badge rounded-pill text-bg-secondary">Proponent&lt;/span>&lt;/div>
  711. &lt;div className="text-end fs-6">08 Aug 2024 01:06 PM&lt;/div>
  712. &lt;/div>
  713. &lt;p className="card-text fs-6">Lorem ipsum dolor sit amet, consectetur adipiscing elit.&lt;/p>
  714. &lt;/div>
  715. &lt;/div>
  716. &lt;div className="card-footer d-flex justify-content-between">
  717. &lt;div className="ms-5">
  718. &lt;a className="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3">&lt;i className="fas fa-file-image text-danger me-1">&lt;/i>sample.jpg&lt;/a>
  719. &lt;/div>
  720. &lt;div className="d-flex">
  721. &lt;a href="#" className="btn">&lt;i className="fas fa-reply text-dark">&lt;/i>&lt;/a>
  722. &lt;a href="#" className="btn">&lt;i className="fas fa-comments text-dark me-1">&lt;/i>1&lt;/a>
  723. &lt;/div>
  724. &lt;/div>
  725. &lt;/div>
  726. &lt;!-- Send Comment Thread -->
  727. &lt;div className="card border-0 rounded-4 mt-2">
  728. &lt;div className="card-body d-flex gap-1 gap-2 mb-0 p-2">
  729. &lt;img src="/public/default.png" alt="..." className="rounded-circle" style={{ maxHeight: '45px', maxWidth: '48px' }} />
  730. &lt;div className="border border-dark rounded-4 w-100 p-2">
  731. &lt;textarea className="comment-textarea w-100" placeholder="Write a new comment..." style={{ border: '0', resize: 'none', outline: 'none' }}>&lt;/textarea>
  732. &lt;div className="d-flex justify-content-between">
  733. &lt;div className="d-flex justify-content-between align-items-center border border-dark rounded px-2">
  734. &lt;p className="p-1 mb-0 text-dark text-truncate">File.pdf&lt;/p>
  735. &lt;button type="button" className="btn text-danger">&lt;i className="far fa-window-close">&lt;/i>&lt;/button>
  736. &lt;/div>
  737. &lt;div className="d-flex">
  738. &lt;a href="#" className="btn">&lt;i className="fas fa-paperclip">&lt;/i>&lt;/a>
  739. &lt;a href="#" className="btn">&lt;i className="fas fa-paper-plane text-info">&lt;/i>&lt;/a>
  740. &lt;/div>
  741. &lt;/div>
  742. &lt;/div>
  743. &lt;/div>
  744. &lt;/div>
  745. &lt;/div>
  746. &lt;div className="modal-footer">
  747. &lt;button type="button" className="btn btn-secondary" onClick={() => setShowModal(false)}>Close&lt;/button>
  748. &lt;/div>
  749. &lt;/div>
  750. &lt;/div>
  751. &lt;/div>
  752. )}
  753. &lt;/div>
  754. );
  755. };
  756. export default CommentsComponent;
  757. </code></pre>
  758. </div>
  759. <div class="tab-pane fade" id="pills-c-vue" role="tabpanel" aria-labelledby="pills-c-vue-tab">
  760. <pre class="mt-0"><code class="language-html">
  761. &lt;template>
  762. &lt;div>
  763. &lt;!-- Card Component -->
  764. &lt;div class="card bg-light rounded-4" style="cursor:pointer" @click="openModal">
  765. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  766. &lt;img :src="profileImage" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:24px; max-width:26px" />
  767. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  768. &lt;div class="d-flex justify-content-between gap-4">
  769. &lt;div class="card-title text-truncate fs-6 fw-bold">
  770. {{ username }}
  771. &lt;/div>
  772. &lt;div class="text-end fs-6 fw-bold">
  773. {{ commentDate }}
  774. &lt;/div>
  775. &lt;/div>
  776. &lt;p class="card-text text-truncate fs-6 fw-bold" style="width:300px !important">
  777. {{ commentText }}
  778. &lt;/p>
  779. &lt;/div>
  780. &lt;/div>
  781. &lt;/div>
  782. &lt;!-- Modal -->
  783. &lt;div v-if="isModalOpen" class="modal fade show d-block" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  784. &lt;div class="modal-dialog modal-lg modal-dialog-centered">
  785. &lt;div class="modal-content">
  786. &lt;div class="modal-header">
  787. &lt;h1 class="modal-title fs-5" id="exampleModalLabel">Comments&lt;/h1>
  788. &lt;button type="button" class="btn-close" @click="closeModal" aria-label="Close">&lt;/button>
  789. &lt;/div>
  790. &lt;div class="modal-body">
  791. &lt;!-- Comment Card -->
  792. &lt;div class="card bg-body-secondary rounded-4" style="cursor:pointer">
  793. &lt;div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  794. &lt;img :src="profileImage" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px" />
  795. &lt;div class="d-flex flex-column col" style="width:inherit !important">
  796. &lt;div class="d-flex justify-content-between gap-4">
  797. &lt;div class="card-title text-truncate fs-6">
  798. {{ username }} &lt;span class="badge rounded-pill text-bg-secondary">Administrator&lt;/span>
  799. &lt;/div>
  800. &lt;div class="text-end fs-6">
  801. {{ commentDate }}
  802. &lt;/div>
  803. &lt;/div>
  804. &lt;p class="card-text fs-6">
  805. {{ commentText }}
  806. &lt;/p>
  807. &lt;/div>
  808. &lt;/div>
  809. &lt;/div>
  810. &lt;/div>
  811. &lt;div class="modal-footer">
  812. &lt;button type="button" class="btn btn-secondary" @click="closeModal">Close&lt;/button>
  813. &lt;/div>
  814. &lt;/div>
  815. &lt;/div>
  816. &lt;/div>
  817. &lt;/div>
  818. &lt;/template>
  819. &lt;script>
  820. export default {
  821. data() {
  822. return {
  823. isModalOpen: false,
  824. username: "Juan Dela Cruz",
  825. commentDate: "08 Aug 2024 01:06 PM",
  826. commentText: "Lorem ipsum dolor sit amet, consectetur adipiscing elit...",
  827. profileImage: "/public/default.png",
  828. };
  829. },
  830. methods: {
  831. openModal() {
  832. this.isModalOpen = true;
  833. },
  834. closeModal() {
  835. this.isModalOpen = false;
  836. },
  837. },
  838. };
  839. &lt;/script>
  840. &lt;style scoped>
  841. .modal.show {
  842. display: block;
  843. background-color: rgba(0, 0, 0, 0.5);
  844. }
  845. &lt;/style>
  846. </code></pre>
  847. </div>
  848. </div>
  849. </div>
  850. </div>
  851. </div>
  852. </div>
  853. </div>
  854. <div class="col-2 text-muted">
  855. <div class="sticky-top">
  856. <p class="h6">CONTENTS</p>
  857. <hr>
  858. <ul>
  859. <li><a href="#component-a" class="mt-1">No Comment</a></li>
  860. <li><a href="#component-b">With/Opened Comment</a></li>
  861. <li><a href="#component-c">Unread/Open Comment Modal</a></li>
  862. </ul>
  863. </div>
  864. </div>
  865. </div>
  866. </div>
  867. <!-- Modal -->
  868. <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  869. <div class="modal-dialog modal-lg modal-dialog-centered">
  870. <div class="modal-content">
  871. <div class="modal-header">
  872. <h1 class="modal-title fs-5" id="exampleModalLabel">Comments</h1>
  873. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  874. </div>
  875. <div class="modal-body">
  876. <div class="card bg-body-secondary rounded-4" style="cursor:pointer">
  877. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  878. <!-- Replace src based on your actual directory and file -->
  879. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  880. <div class="d-flex flex-column col" style="width:inherit !important">
  881. <div class="d-flex justify-content-between gap-4">
  882. <div class="card-title text-truncate fs-6">
  883. <!-- Username -->
  884. Juan Dela Cruz <span class="badge rounded-pill text-bg-secondary">Administrator</span>
  885. </div>
  886. <div class="text-end fs-6">
  887. <!-- Latest comment date & time -->
  888. 08 Aug 2024 01:06 PM
  889. </div>
  890. </div>
  891. <p class="card-text fs-6">
  892. <!-- Cemment content here -->
  893. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  894. </p>
  895. </div>
  896. </div>
  897. <div class="card-footer d-flex justify-content-between">
  898. <div class="ms-5">
  899. <a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3"><i class="fas fa-file-pdf text-danger me-1"></i>sample.pdf</a>
  900. </div>
  901. <div class="d-flex">
  902. <a href="#" class="btn"><i class="fas fa-reply text-dark"></i></a>
  903. <a href="#" class="btn"><i class="fas fa-comments text-dark me-1"></i>0</a>
  904. </div>
  905. </div>
  906. </div>
  907. <!-- Comment with reply -->
  908. <div class="card bg-body-secondary rounded-4 mt-3 " style="cursor:pointer">
  909. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  910. <!-- Replace src based on your actual directory and file -->
  911. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  912. <div class="d-flex flex-column col" style="width:inherit !important">
  913. <div class="d-flex justify-content-between gap-4">
  914. <div class="card-title text-truncate fs-6">
  915. <!-- Username -->
  916. Maria Delos Reyes <span class="badge rounded-pill text-bg-secondary">Proponent</span>
  917. </div>
  918. <div class="text-end fs-6">
  919. <!-- Latest comment date & time -->
  920. 08 Aug 2024 01:06 PM
  921. </div>
  922. </div>
  923. <p class="card-text fs-6">
  924. <!-- Cemment content here -->
  925. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
  926. </p>
  927. </div>
  928. </div>
  929. <div class="card-footer d-flex justify-content-between">
  930. <div class="ms-5">
  931. <a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3"><i class="fas fa-file-image text-danger me-1"></i>sample.jpg</a>
  932. </div>
  933. <div class="d-flex">
  934. <a href="#" class="btn"><i class="fas fa-reply text-dark"></i></a>
  935. <a href="#" class="btn"><i class="fas fa-comments text-dark me-1"></i>1</a>
  936. </div>
  937. </div>
  938. </div>
  939. <!-- Replies -->
  940. <div class="row">
  941. <div class="col"></div>
  942. <div class="col-10 border border-3 border-top-0 border-end-0 border-bottom-0 ps-5">
  943. <div class="card bg-body-secondary rounded-4 mt-3" style="cursor:pointer">
  944. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  945. <!-- Replace src based on your actual directory and file -->
  946. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  947. <div class="d-flex flex-column col" style="width:inherit !important">
  948. <div class="d-flex justify-content-between gap-4">
  949. <div class="card-title text-truncate fs-6">
  950. <!-- Username -->
  951. Maria Delos Reyes <span class="badge rounded-pill text-bg-secondary">Proponent</span>
  952. </div>
  953. <div class="text-end fs-6">
  954. <!-- Latest comment date & time -->
  955. 08 Aug 2024 01:06 PM
  956. </div>
  957. </div>
  958. <p class="card-text fs-6">
  959. <!-- Cemment content here -->
  960. Lorem ipsum dolor sit amet, consectetur adipiscing elit,
  961. </p>
  962. </div>
  963. </div>
  964. <div class="card-footer d-flex justify-content-between">
  965. <div class="ms-5">
  966. <a class="btn btn-sm btn-light mb-0 rounded-pill border border-secondary text-truncate shadow-none px-3"><i class="fas fa-file-image text-danger me-1"></i>sample.jpg</a>
  967. </div>
  968. <div class="d-flex">
  969. <a href="#" class="btn"><i class="fas fa-pen"></i></a>
  970. <a href="#" class="btn"><i class="far fa-trash-alt text-danger"></i></a>
  971. </div>
  972. </div>
  973. </div>
  974. <!-- Send Reply Thread -->
  975. <div class="card border-0 rounded-4 mt-2" style="cursor:pointer">
  976. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  977. <!-- Replace src based on your actual directory and file -->
  978. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  979. <div class="border border-dark rounded-4 w-100 p-2">
  980. <textarea class="comment-textarea w-100" placeholder="Reply to this thread..." style="border:0; resize: none; outline:none"></textarea>
  981. <div class="d-flex justify-content-between">
  982. <div class="d-flex justify-content-between align-items-center border border-dark rounded border border-secondary text-bg-light">
  983. <p class="p-1 mb-0 text-dark px-2 text-truncate">File.pdf</p>
  984. <button type="button" class="btn text-danger font-weight-bold"><i class="far fa-window-close"></i></button>
  985. </div>
  986. <div class="d-flex">
  987. <a href="#" class="btn"><i class=" fas fa-paperclip"></i></a>
  988. <a href="#" class="btn"><i class=" fas fa-paper-plane text-info"></i></a>
  989. </div>
  990. </div>
  991. </div>
  992. </div>
  993. </div>
  994. </div>
  995. </div>
  996. <!-- Send Comment Thread -->
  997. <div class="card border-0 rounded-4 mt-2" style="cursor:pointer">
  998. <div class="card-body d-flex gap-1 gap-2 mb-0 p-2">
  999. <!-- Replace src based on your actual directory and file -->
  1000. <img src="/public/default.png" alt="..." class="rounded-circle" style="height:auto; width:auto; max-height:45px; max-width:48px">
  1001. <div class="border border-dark rounded-4 w-100 p-2">
  1002. <textarea class="comment-textarea w-100" placeholder="Write a new comment..." style="border:0; resize: none; outline:none"></textarea>
  1003. <div class="d-flex justify-content-between">
  1004. <div class="d-flex justify-content-between align-items-center border border-dark rounded border border-secondary text-bg-light">
  1005. <p class="p-1 mb-0 text-dark px-2 text-truncate">File.pdf</p>
  1006. <button type="button" class="btn text-danger font-weight-bold"><i class="far fa-window-close"></i></button>
  1007. </div>
  1008. <div class="d-flex">
  1009. <a href="#" class="btn"><i class=" fas fa-paperclip"></i></a>
  1010. <a href="#" class="btn"><i class=" fas fa-paper-plane text-info"></i></a>
  1011. </div>
  1012. </div>
  1013. </div>
  1014. </div>
  1015. </div>
  1016. </div>
  1017. <div class="modal-footer">
  1018. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
  1019. </div>
  1020. </div>
  1021. </div>
  1022. </div>
  1023. <footer class="bg-light">
  1024. <div class="text-center pt-3">
  1025. <p>
  1026. Copyright &copy; 2024
  1027. <strong>Comment Thread</strong> by <a href="https://github.com/princegideon15" target="_blank">Gerard Balde</a>.
  1028. Check out the source code on
  1029. <a href="https://github.com/princegideon15/comment-thread-component.git" target="_blank">GitHub</a>.
  1030. </p>
  1031. </div>
  1032. </footer>
  1033. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
  1034. <script>
  1035. // Function to copy the code block content
  1036. function copyToClipboard(element, tabPaneId) {
  1037. console.log("🚀 ~ copyToClipboard ~ element, tabPaneId:", tabPaneId)
  1038. const parentDiv = document.getElementById(tabPaneId);
  1039. const activeTabPane = parentDiv.querySelector('.tab-pane.fade.active.show');
  1040. console.log("🚀 ~ copyToClipboard ~ activeTabPane:", activeTabPane.id)
  1041. const codeElement = activeTabPane.querySelector('pre code');
  1042. const codeText = codeElement.textContent;
  1043. const tempElement = document.createElement('textarea');
  1044. tempElement.value = codeText;
  1045. document.body.appendChild(tempElement);
  1046. tempElement.select();
  1047. document.execCommand('copy');
  1048. element.textContent = 'Copied!';
  1049. element.classList.add('active');
  1050. setTimeout(function(){
  1051. element.textContent = 'Copy';
  1052. element.classList.remove('active');
  1053. }, 2000)
  1054. }
  1055. </script>
  1056. </body>
  1057. </html>