js: reorganize Javascript file structure.
Move Javascript files from app/components/**/*.js back to app/javascript/src/javascripts/*.js. This way Javascript files are in one place, which simplifies import paths and makes it easier to see all Javascript at once.
This commit is contained in:
52
app/javascript/src/javascripts/comment_component.js
Normal file
52
app/javascript/src/javascripts/comment_component.js
Normal file
@@ -0,0 +1,52 @@
|
||||
import Utility from "./utility";
|
||||
|
||||
class CommentComponent {
|
||||
static initialize() {
|
||||
if ($("#c-posts #a-show, #c-comments").length) {
|
||||
$(document).on("click.danbooru.comment", ".edit_comment_link", CommentComponent.showEditForm);
|
||||
$(document).on("click.danbooru.comment", ".expand-comment-response", CommentComponent.showNewCommentForm);
|
||||
$(document).on("click.danbooru.comment", ".unhide-comment-link", CommentComponent.unhideComment);
|
||||
$(document).on("click.danbooru.comment", ".comment-copy-id", CommentComponent.copyID);
|
||||
$(document).on("click.danbooru.comment", ".comment-copy-link", CommentComponent.copyLink);
|
||||
}
|
||||
}
|
||||
|
||||
static showNewCommentForm(e) {
|
||||
$(e.target).hide();
|
||||
var $form = $(e.target).closest("div.new-comment").find("form");
|
||||
$form.show();
|
||||
$form[0].scrollIntoView(false);
|
||||
$form.find("textarea").selectEnd();
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
static showEditForm(e) {
|
||||
$(this).closest(".comment").find(".edit_comment").show();
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
static unhideComment(e) {
|
||||
let $comment = $(this).closest(".comment");
|
||||
$comment.find(".unhide-comment-link").hide();
|
||||
$comment.find(".body").show();
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
static async copyID(e) {
|
||||
let id = $(this).closest(".comment").data("id");
|
||||
let link = `comment #${id}`;
|
||||
Utility.copyToClipboard(link);
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
static async copyLink(e) {
|
||||
let id = $(this).closest(".comment").data("id");
|
||||
let link = `${window.location.origin}/comments/${id}`;
|
||||
Utility.copyToClipboard(link);
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(CommentComponent.initialize);
|
||||
|
||||
export default CommentComponent;
|
||||
Reference in New Issue
Block a user