From 3aea09fd4246c44901d10ad40a4e6bdff2f633fb Mon Sep 17 00:00:00 2001
From: Lim Chee Aun <cheeaun@gmail.com>
Date: Mon, 6 Feb 2023 19:09:25 +0800
Subject: [PATCH] Experimental feature to see post in currently logged-in
 instance

---
 src/pages/status.jsx | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/pages/status.jsx b/src/pages/status.jsx
index d8f750e1..74cb7d84 100644
--- a/src/pages/status.jsx
+++ b/src/pages/status.jsx
@@ -40,7 +40,7 @@ function resetScrollPosition(id) {
 
 function StatusPage() {
   const { id, ...params } = useParams();
-  const { masto, instance } = api({ instance: params.instance });
+  const { masto, instance, authenticated } = api({ instance: params.instance });
   const navigate = useNavigate();
   const snapStates = useSnapshot(states);
   const [statuses, setStatuses] = useState([]);
@@ -559,6 +559,34 @@ function StatusPage() {
               >
                 <Icon icon="eye-open" /> <span>Show all sensitive content</span>
               </MenuItem>
+              {import.meta.env.DEV && !authenticated && (
+                <MenuItem
+                  onClick={() => {
+                    (async () => {
+                      try {
+                        const { masto } = api();
+                        const results = await masto.v2.search({
+                          q: heroStatus.url,
+                          type: 'statuses',
+                          resolve: true,
+                          limit: 1,
+                        });
+                        if (results.statuses.length) {
+                          const status = results.statuses[0];
+                          navigate(`/s/${status.id}`);
+                        } else {
+                          throw new Error('No results');
+                        }
+                      } catch (e) {
+                        alert('Error: ' + e);
+                        console.error(e);
+                      }
+                    })();
+                  }}
+                >
+                  See post in currently logged-in instance
+                </MenuItem>
+              )}
             </Menu>
             <Link
               class="button plain deck-close"