mirror of
https://github.com/aljazceru/mutiny-web.git
synced 2025-12-17 06:14:21 +01:00
Toggle diagnostic reporting
This commit is contained in:
committed by
Tony Giorgio
parent
44ceb44fc4
commit
d0ea5a5f7a
@@ -311,7 +311,11 @@
|
||||
"enable_zaps_to_hodl": "Enable zaps to hodl invoices?",
|
||||
"zaps_to_hodl_desc": "Zaps to hodl invoices can result in channel force closes, which results in high on-chain fees. Use at your own risk!",
|
||||
"zaps_to_hodl_enable": "Enable hodl zaps",
|
||||
"zaps_to_hodl_disable": "Disable hodl zaps"
|
||||
"zaps_to_hodl_disable": "Disable hodl zaps",
|
||||
"enable_report_diagnostics": "Enable diagnostic reporting?",
|
||||
"report_diagnostics_desc": "Automatically report critical errors to the developers. All transaction data or other personal information is scrubed and anonymized.",
|
||||
"report_diagnostics_enable": "Enable diagnostics",
|
||||
"report_diagnostics_disable": "Disable diagnostics"
|
||||
}
|
||||
},
|
||||
"backup": {
|
||||
|
||||
@@ -24,6 +24,7 @@ import {
|
||||
showToast,
|
||||
SimpleErrorDisplay,
|
||||
ToggleHodl,
|
||||
ToggleReportDiagnostics,
|
||||
VStack
|
||||
} from "~/components";
|
||||
import { useI18n } from "~/i18n/context";
|
||||
@@ -572,6 +573,8 @@ export function KitchenSink() {
|
||||
<Hr />
|
||||
<Restart />
|
||||
<Hr />
|
||||
<ToggleReportDiagnostics />
|
||||
<Hr />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
46
src/components/ToggleReportDiagnostics.tsx
Normal file
46
src/components/ToggleReportDiagnostics.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
import { Button, InnerCard, NiceP, VStack } from "~/components";
|
||||
import { useI18n } from "~/i18n/context";
|
||||
import { useMegaStore } from "~/state/megaStore";
|
||||
|
||||
export function ToggleReportDiagnostics() {
|
||||
const i18n = useI18n();
|
||||
const [state, actions] = useMegaStore();
|
||||
|
||||
async function toggle() {
|
||||
try {
|
||||
await actions.toggleReportDiagnostics();
|
||||
window.location.href = "/";
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<InnerCard
|
||||
title={i18n.t(
|
||||
"settings.admin.kitchen_sink.enable_report_diagnostics"
|
||||
)}
|
||||
>
|
||||
<VStack>
|
||||
<NiceP>
|
||||
{i18n.t(
|
||||
"settings.admin.kitchen_sink.report_diagnostics_desc"
|
||||
)}
|
||||
</NiceP>
|
||||
|
||||
<Button
|
||||
intent={state.report_diagnostics ? "green" : "red"}
|
||||
onClick={toggle}
|
||||
>
|
||||
{state.report_diagnostics
|
||||
? i18n.t(
|
||||
"settings.admin.kitchen_sink.report_diagnostics_disable"
|
||||
)
|
||||
: i18n.t(
|
||||
"settings.admin.kitchen_sink.report_diagnostics_enable"
|
||||
)}
|
||||
</Button>
|
||||
</VStack>
|
||||
</InnerCard>
|
||||
);
|
||||
}
|
||||
@@ -39,6 +39,7 @@ export * from "./Toaster";
|
||||
export * from "./NostrActivity";
|
||||
export * from "./MutinyPlusCta";
|
||||
export * from "./ToggleHodl";
|
||||
export * from "./ToggleReportDiagnostics";
|
||||
export * from "./IOSbanner";
|
||||
export * from "./HomePrompt";
|
||||
export * from "./BigMoney";
|
||||
|
||||
@@ -5,8 +5,8 @@ import { useNavigate, useSearchParams } from "@solidjs/router";
|
||||
import { SecureStoragePlugin } from "capacitor-secure-storage-plugin";
|
||||
import { Remote } from "comlink";
|
||||
import {
|
||||
DEV,
|
||||
createContext,
|
||||
DEV,
|
||||
onCleanup,
|
||||
onMount,
|
||||
ParentComponent,
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
MutinyWalletSettingStrings,
|
||||
Network,
|
||||
setSettings
|
||||
// setupMutinyWallet
|
||||
} from "~/logic/mutinyWalletSetup";
|
||||
import { ParsedParams, toParsedParams } from "~/logic/waila";
|
||||
import { MutinyFederationIdentity } from "~/routes/settings";
|
||||
@@ -44,14 +43,17 @@ type LoadStage =
|
||||
export type WalletWorker = Remote<typeof import("../workers/walletWorker")>;
|
||||
|
||||
const RELEASE_VERSION = import.meta.env.__RELEASE_VERSION__;
|
||||
const sentryenv = import.meta.env.VITE_SENTRY_ENVIRONMENT || (DEV ? "dev" : "prod");
|
||||
const sentryenv =
|
||||
import.meta.env.VITE_SENTRY_ENVIRONMENT || (DEV ? "dev" : "prod");
|
||||
|
||||
export const makeMegaStoreContext = () => {
|
||||
const [searchParams] = useSearchParams();
|
||||
const navigate = useNavigate();
|
||||
const reportDiagnostics =
|
||||
localStorage.getItem("report_diagnostics") === "true";
|
||||
|
||||
// initialize both inside worker and outside
|
||||
// TODO figure out when to set or not
|
||||
if (reportDiagnostics) {
|
||||
Sentry.init({
|
||||
dsn: "https://192c556849619517322719962a057376@sen.mutinywallet.com/2",
|
||||
environment: sentryenv,
|
||||
@@ -71,13 +73,17 @@ export const makeMegaStoreContext = () => {
|
||||
tracesSampleRate: 1.0,
|
||||
|
||||
// Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled
|
||||
tracePropagationTargets: ["localhost", /^https:\/\/mutinywallet\.com/],
|
||||
tracePropagationTargets: [
|
||||
"localhost",
|
||||
/^https:\/\/mutinywallet\.com/
|
||||
],
|
||||
|
||||
// Capture Replay for 10% of all sessions,
|
||||
// plus 100% of sessions with an error
|
||||
replaysSessionSampleRate: 0.1,
|
||||
replaysOnErrorSampleRate: 1.0
|
||||
});
|
||||
}
|
||||
|
||||
// Not actually a shared worker, but it's the same code
|
||||
const sw = new ComlinkWorker<typeof import("../workers/walletWorker")>(
|
||||
@@ -118,6 +124,7 @@ export const makeMegaStoreContext = () => {
|
||||
lang: localStorage.getItem("i18nexLng") || undefined,
|
||||
preferredInvoiceType: "unified" as "unified" | "lightning" | "onchain",
|
||||
should_zap_hodl: localStorage.getItem("should_zap_hodl") === "true",
|
||||
report_diagnostics: reportDiagnostics,
|
||||
testflightPromptDismissed:
|
||||
localStorage.getItem("testflightPromptDismissed") === "true",
|
||||
federations: undefined as MutinyFederationIdentity[] | undefined,
|
||||
@@ -267,6 +274,7 @@ export const makeMegaStoreContext = () => {
|
||||
password,
|
||||
state.safe_mode,
|
||||
state.should_zap_hodl,
|
||||
state.report_diagnostics,
|
||||
nsec
|
||||
);
|
||||
|
||||
@@ -544,6 +552,14 @@ export const makeMegaStoreContext = () => {
|
||||
localStorage.setItem("should_zap_hodl", should_zap_hodl.toString());
|
||||
setState({ should_zap_hodl });
|
||||
},
|
||||
toggleReportDiagnostics() {
|
||||
const report_diagnostics = !state.report_diagnostics;
|
||||
localStorage.setItem(
|
||||
"report_diagnostics",
|
||||
report_diagnostics.toString()
|
||||
);
|
||||
setState({ report_diagnostics });
|
||||
},
|
||||
async refreshFederations() {
|
||||
const federations = await sw.list_federations();
|
||||
|
||||
|
||||
@@ -99,10 +99,11 @@ export async function setupMutinyWallet(
|
||||
password?: string,
|
||||
safeMode?: boolean,
|
||||
shouldZapHodl?: boolean,
|
||||
reportDiagnostics?: boolean,
|
||||
nsec?: string
|
||||
): Promise<boolean> {
|
||||
// initialize both inside worker and outside
|
||||
// TODO figure out when to set or not
|
||||
if (reportDiagnostics) {
|
||||
Sentry.init({
|
||||
dsn: "https://192c556849619517322719962a057376@sen.mutinywallet.com/2",
|
||||
environment: sentryenv,
|
||||
@@ -138,13 +139,17 @@ export async function setupMutinyWallet(
|
||||
tracesSampleRate: 1.0,
|
||||
|
||||
// Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled
|
||||
tracePropagationTargets: ["localhost", /^https:\/\/mutinywallet\.com/],
|
||||
tracePropagationTargets: [
|
||||
"localhost",
|
||||
/^https:\/\/mutinywallet\.com/
|
||||
],
|
||||
|
||||
// Capture Replay for 10% of all sessions,
|
||||
// plus 100% of sessions with an error
|
||||
replaysSessionSampleRate: 0.1,
|
||||
replaysOnErrorSampleRate: 1.0
|
||||
});
|
||||
}
|
||||
|
||||
console.log("Starting setup...");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user