import {remote} from "electron"; import fs from "fs"; import path from "path"; import SendFeedback from "@electron-elements/send-feedback"; const {app} = remote; customElements.define("send-feedback", SendFeedback); export const sendFeedback: SendFeedback = document.querySelector( "send-feedback", ); export const feedbackHolder = sendFeedback.parentElement; // Make the button color match zulip app's theme sendFeedback.customStylesheet = "css/feedback.css"; // Customize the fields of custom elements sendFeedback.title = "Report Issue"; sendFeedback.titleLabel = "Issue title:"; sendFeedback.titlePlaceholder = "Enter issue title"; sendFeedback.textareaLabel = "Describe the issue:"; sendFeedback.textareaPlaceholder = "Succinctly describe your issue and steps to reproduce it..."; sendFeedback.buttonLabel = "Report Issue"; sendFeedback.loaderSuccessText = ""; sendFeedback.useReporter("emailReporter", { email: "support@zulip.com", }); feedbackHolder.addEventListener("click", (event: Event) => { // Only remove the class if the grey out faded // part is clicked and not the feedback element itself if (event.target === event.currentTarget) { feedbackHolder.classList.remove("show"); } }); sendFeedback.addEventListener("feedback-submitted", () => { setTimeout(() => { feedbackHolder.classList.remove("show"); }, 1000); }); sendFeedback.addEventListener("feedback-cancelled", () => { feedbackHolder.classList.remove("show"); }); const dataDir = app.getPath("userData"); const logsDir = path.join(dataDir, "/Logs"); sendFeedback.logs.push( ...fs.readdirSync(logsDir).map((file) => path.join(logsDir, file)), );