From 079b4ff9a9749716b3099feb573312e0fc76696e Mon Sep 17 00:00:00 2001 From: Kieran Date: Sat, 21 Jan 2023 17:00:09 +0000 Subject: [PATCH] feat: copy event json --- src/Element/NoteFooter.tsx | 11 ++++++++++- src/Pages/settings/Preferences.tsx | 9 +++++++++ src/State/Login.ts | 10 ++++++++-- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/Element/NoteFooter.tsx b/src/Element/NoteFooter.tsx index 21c69fe..aaa453f 100644 --- a/src/Element/NoteFooter.tsx +++ b/src/Element/NoteFooter.tsx @@ -141,6 +141,10 @@ export default function NoteFooter(props: NoteFooterProps) { await navigator.clipboard.writeText(hexToBech32("note", ev.Id)); } + async function copyEvent() { + await navigator.clipboard.writeText(JSON.stringify(ev.Original, undefined, ' ')); + } + function menuItems() { return ( <> @@ -160,7 +164,12 @@ export default function NoteFooter(props: NoteFooterProps) { Copy ID - + {prefs.showDebugMenus && ( + copyEvent()}> + + Copy Event JSON + + )} {isMine && ( deleteEvent()}> diff --git a/src/Pages/settings/Preferences.tsx b/src/Pages/settings/Preferences.tsx index b1604af..c09800e 100644 --- a/src/Pages/settings/Preferences.tsx +++ b/src/Pages/settings/Preferences.tsx @@ -50,6 +50,15 @@ const PreferencesPage = () => { dispatch(setPreferences({ ...perf, confirmReposts: e.target.checked }))} /> +
+
+
Debug Menus
+ Shows extra options to help with debugging data +
+
+ dispatch(setPreferences({ ...perf, showDebugMenus: e.target.checked }))} /> +
+
) } diff --git a/src/State/Login.ts b/src/State/Login.ts index 9535c25..5ceaac7 100644 --- a/src/State/Login.ts +++ b/src/State/Login.ts @@ -29,7 +29,12 @@ export interface UserPreferences { /** * Ask for confirmation when reposting notes */ - confirmReposts: boolean + confirmReposts: boolean, + + /** + * Show debugging menus to help diagnose issues + */ + showDebugMenus: boolean } export interface LoginStore { @@ -104,7 +109,8 @@ const InitState = { enableReactions: true, autoLoadMedia: true, theme: "system", - confirmReposts: false + confirmReposts: false, + showDebugMenus: false } } as LoginStore;