mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-23 15:09:33 +01:00
feat: send userId with bug report
This commit is contained in:
@@ -4,8 +4,11 @@ import Field from "../field";
|
|||||||
import Dialog from "./dialog";
|
import Dialog from "./dialog";
|
||||||
import platform from "platform";
|
import platform from "platform";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { db } from "../../common/db";
|
|
||||||
import { confirm } from "../../common/dialog-controller";
|
import { confirm } from "../../common/dialog-controller";
|
||||||
|
import { isUserPremium } from "../../hooks/use-is-user-premium";
|
||||||
|
import * as clipboard from "clipboard-polyfill/text";
|
||||||
|
import { store as userstore } from "../../stores/user-store";
|
||||||
|
import { db } from "../../common/db";
|
||||||
|
|
||||||
const PLACEHOLDERS = {
|
const PLACEHOLDERS = {
|
||||||
title: "Briefly describe what happened",
|
title: "Briefly describe what happened",
|
||||||
@@ -26,7 +29,8 @@ function getDeviceInfo() {
|
|||||||
|
|
||||||
return `App version: ${appVersion}
|
return `App version: ${appVersion}
|
||||||
OS: ${os}
|
OS: ${os}
|
||||||
Browser: ${browser}`;
|
Browser: ${browser}
|
||||||
|
Pro: ${isUserPremium()}`;
|
||||||
}
|
}
|
||||||
const BODY_TEMPLATE = (body) => {
|
const BODY_TEMPLATE = (body) => {
|
||||||
const info = `**Device information:**\n${getDeviceInfo()}`;
|
const info = `**Device information:**\n${getDeviceInfo()}`;
|
||||||
@@ -71,21 +75,12 @@ function IssueDialog(props) {
|
|||||||
const requestData = Object.fromEntries(formData.entries());
|
const requestData = Object.fromEntries(formData.entries());
|
||||||
if (!requestData.title.trim() || !requestData.body.trim()) return;
|
if (!requestData.title.trim() || !requestData.body.trim()) return;
|
||||||
requestData.body = BODY_TEMPLATE(requestData.body);
|
requestData.body = BODY_TEMPLATE(requestData.body);
|
||||||
const url = await db.debug.report(
|
const url = await db.debug.report({
|
||||||
requestData.title,
|
title: requestData.title,
|
||||||
requestData.body
|
body: requestData.body,
|
||||||
);
|
userId: userstore.get().user?.id,
|
||||||
confirm({
|
|
||||||
title: "Thank you for reporting!",
|
|
||||||
message: (
|
|
||||||
<>
|
|
||||||
You can track your bug report at{" "}
|
|
||||||
<Text as="a" href={url} sx={{ lineBreak: "anywhere" }}>
|
|
||||||
{url}
|
|
||||||
</Text>
|
|
||||||
</>
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
await showIssueReportedDialog({ url });
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setError(e.message);
|
setError(e.message);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -137,3 +132,36 @@ function IssueDialog(props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default IssueDialog;
|
export default IssueDialog;
|
||||||
|
|
||||||
|
function showIssueReportedDialog({ url }) {
|
||||||
|
return confirm({
|
||||||
|
title: "Thank you for reporting!",
|
||||||
|
yesAction: () => clipboard.writeText(url),
|
||||||
|
yesText: "Copy link",
|
||||||
|
message: (
|
||||||
|
<>
|
||||||
|
<p>
|
||||||
|
You can track your bug report at{" "}
|
||||||
|
<Text as="a" href={url} sx={{ lineBreak: "anywhere" }}>
|
||||||
|
{url}
|
||||||
|
</Text>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Please note that we will respond to your bug report on the link above.{" "}
|
||||||
|
<b>
|
||||||
|
We recommended that you save the above link for later reference.
|
||||||
|
</b>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If your issue is critical (e.g. notes not syncing, crashes etc.),
|
||||||
|
please{" "}
|
||||||
|
<a href="https://discord.com/invite/zQBK97EE22">
|
||||||
|
join our Discord community
|
||||||
|
</a>{" "}
|
||||||
|
for one-to-one support.
|
||||||
|
</p>
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user