From 4520822f1f6c609f34445532f3a1e828d7834d09 Mon Sep 17 00:00:00 2001
From: Lim Chee Aun <cheeaun@gmail.com>
Date: Mon, 6 Feb 2023 20:17:07 +0800
Subject: [PATCH] Use nested routes

---
 src/app.jsx          | 6 +++++-
 src/pages/public.jsx | 6 +++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/app.jsx b/src/app.jsx
index 20e2237e..20033223 100644
--- a/src/app.jsx
+++ b/src/app.jsx
@@ -185,7 +185,11 @@ function App() {
         {isLoggedIn && <Route path="/l/:id" element={<Lists />} />}
         <Route path="/:instance?/t/:hashtag" element={<Hashtags />} />
         <Route path="/:instance?/a/:id" element={<AccountStatuses />} />
-        <Route path="/:instance?/p/l?" element={<Public />} />
+        <Route path="/:instance?/p">
+          <Route index element={<Public />} />
+          <Route path="l" element={<Public local />} />
+        </Route>
+        {/* <Route path="/:instance?/p/l?" element={<Public />} /> */}
         {/* <Route path="/:anything" element={<NotFound />} /> */}
       </Routes>
       <Routes>
diff --git a/src/pages/public.jsx b/src/pages/public.jsx
index 09e350b8..70339411 100644
--- a/src/pages/public.jsx
+++ b/src/pages/public.jsx
@@ -1,6 +1,6 @@
 // EXPERIMENTAL: This is a work in progress and may not work as expected.
 import { useRef } from 'preact/hooks';
-import { useMatch, useParams } from 'react-router-dom';
+import { useParams } from 'react-router-dom';
 
 import Timeline from '../components/timeline';
 import { api } from '../utils/api';
@@ -8,8 +8,8 @@ import useTitle from '../utils/useTitle';
 
 const LIMIT = 20;
 
-function Public() {
-  const isLocal = !!useMatch('/:instance/p/l');
+function Public({ local }) {
+  const isLocal = !!local;
   const params = useParams();
   const { masto, instance } = api({ instance: params.instance });
   const title = `${instance} (${isLocal ? 'local' : 'federated'})`;