|
1 | | -import {JSX, useEffect, useState} from "react"; |
2 | | - |
3 | | -import LBRY from "./LBRY"; |
4 | | -import ClaimPreviewTile from "./components/ClaimPreviewTile"; |
5 | | - |
6 | | -const notTags = ["porn","porno","nsfw","mature","xxx","sex","creampie","blowjob","handjob","vagina","boobs","big boobs","big dick","pussy","cumshot","anal","hard fucking","ass","fuck","hentai"]; |
7 | | - |
8 | | -function App(): JSX.Element { |
9 | | - const [row1,setRow1] = useState([]); |
10 | | - const [row2,setRow2] = useState([]); |
11 | | - const [row3,setRow3] = useState([]); |
12 | | - |
13 | | - useEffect((): void => { |
14 | | - LBRY.rpc(import.meta.env.VITE_DAEMON_DEFAULT,'claim_search',{"page_size":4,"claim_type":["stream","repost","channel"],"no_totals":true,"any_tags":[],"not_tags":notTags,"channel_ids":["80d2590ad04e36fb1d077a9b9e3a8bba76defdf8","b58dfaeab6c70754d792cdd9b56ff59b90aea334"],"not_channel_ids":[],"order_by":["release_time"],"has_source":true,"release_time":">1731193200","include_purchase_receipt":true},null,import.meta.env.VITE_DAEMON_PROXY==='true').then(json => { |
15 | | - setRow1(json.result.items); |
16 | | - }); |
17 | | - },[]); |
18 | | - |
19 | | - useEffect((): void => { |
20 | | - LBRY.rpc(import.meta.env.VITE_DAEMON_DEFAULT,'claim_search',{"page_size":4,"claim_type":["stream"],"no_totals":true,"any_tags":[],"not_tags":notTags,"channel_ids":[],"not_channel_ids":[],"order_by":["effective_amount"],"has_source":true,"release_time":">1762902000","limit_claims_per_channel":2,"include_purchase_receipt":true},null,import.meta.env.VITE_DAEMON_PROXY==='true').then(json => { |
21 | | - setRow2(json.result.items); |
22 | | - }); |
23 | | - },[]); |
24 | | - |
25 | | - useEffect((): void => { |
26 | | - LBRY.rpc(import.meta.env.VITE_DAEMON_DEFAULT,'claim_search',{"page_size":4,"claim_type":["stream","repost","channel"],"no_totals":true,"any_tags":[],"not_tags":notTags,"channel_ids":["3fda836a92faaceedfe398225fb9b2ee2ed1f01a"],"not_channel_ids":[],"order_by":["release_time"],"has_source":true,"include_purchase_receipt":true},null,import.meta.env.VITE_DAEMON_PROXY==='true').then(json => { |
27 | | - setRow3(json.result.items); |
28 | | - }); |
29 | | - },[]); |
30 | | - |
31 | | - return ( |
32 | | - <> |
33 | | - <div className="claim-preview-section"> |
34 | | - {row1.map((cell: unknown, i: number) => ( |
35 | | - <ClaimPreviewTile claim={cell} key={i}/> |
36 | | - ))} |
37 | | - </div> |
38 | | - {row2.length > 0 ? <h2>Top Content from Today</h2> : null} |
39 | | - <div className="claim-preview-section"> |
40 | | - {row2.map((cell: unknown, i: number) => ( |
41 | | - <ClaimPreviewTile claim={cell} key={i}/> |
42 | | - ))} |
43 | | - </div> |
44 | | - {row3.length > 0 ? <h2>Latest From @lbry</h2> : null} |
45 | | - <div className="claim-preview-section"> |
46 | | - {row3.map((cell: unknown, i: number) => ( |
47 | | - <ClaimPreviewTile claim={cell} key={i}/> |
48 | | - ))} |
49 | | - </div> |
50 | | - </> |
51 | | - ); |
| 1 | +import React, {JSX, StrictMode, useState} from "react"; |
| 2 | +import {Route, Routes} from "react-router"; |
| 3 | + |
| 4 | +import AppRouter from "./AppRouter"; |
| 5 | +import Home from "./Home"; |
| 6 | +import ClaimPage from "./ClaimPage"; |
| 7 | +import WalletPage from "./WalletPage"; |
| 8 | +import SearchPage from "./SearchPage"; |
| 9 | +import SettingsPage from "./SettingsPage"; |
| 10 | +import NotFound from "./NotFound"; |
| 11 | + |
| 12 | +import Aside from "./components/Aside"; |
| 13 | +import Header from "./components/Header"; |
| 14 | +// import Footer from "./components/Footer"; |
| 15 | + |
| 16 | +function App(): JSX.Element{ |
| 17 | + const [isMenuOpen,setMenuOpen] = useState(false); |
| 18 | + |
| 19 | + return ( |
| 20 | + <StrictMode> |
| 21 | + <AppRouter> |
| 22 | + <Header menuOpen={isMenuOpen} menuOpenSetter={setMenuOpen}/> |
| 23 | + <Aside open={isMenuOpen}/> |
| 24 | + <main> |
| 25 | + <Routes> |
| 26 | + <Route index path="/" element={<Home/>}/> |
| 27 | + <Route path="/about" element={<Home/>}/> |
| 28 | + <Route path="/claim/*" element={<ClaimPage/>}/> |
| 29 | + <Route path="/wallet" element={<WalletPage/>}/> |
| 30 | + <Route path="/search" element={<SearchPage/>}/> |
| 31 | + <Route path="/settings" element={<SettingsPage/>}/> |
| 32 | + <Route path="*" element={<NotFound/>}/> |
| 33 | + </Routes> |
| 34 | + </main> |
| 35 | + {/*<Footer/>*/} |
| 36 | + </AppRouter> |
| 37 | + </StrictMode> |
| 38 | + ); |
52 | 39 | } |
53 | 40 |
|
54 | 41 | export default App; |
0 commit comments