mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
@@ -1,5 +1,6 @@
|
||||
# docs https://github.com/marketplace/actions/create-release
|
||||
# docs https://github.com/ncipollo/release-action
|
||||
# docs https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job#choosing-github-hosted-runners
|
||||
|
||||
name: release
|
||||
|
||||
@@ -10,7 +11,7 @@ on:
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-20.04
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
@@ -21,7 +22,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 18
|
||||
- run: yarn install --frozen-lockfile
|
||||
# make sure the ipfs executable is executable
|
||||
- run: node electron/download-ipfs && sudo chmod +x bin/linux/ipfs
|
||||
@@ -40,7 +41,7 @@ jobs:
|
||||
allowUpdates: true
|
||||
|
||||
mac:
|
||||
runs-on: macOS-latest
|
||||
runs-on: macOS-13
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
@@ -51,7 +52,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 18
|
||||
|
||||
# install missing dep for sqlite
|
||||
- run: python3 -m ensurepip
|
||||
@@ -75,7 +76,7 @@ jobs:
|
||||
allowUpdates: true
|
||||
|
||||
windows:
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2022
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
@@ -86,7 +87,7 @@ jobs:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 18
|
||||
- run: yarn install --frozen-lockfile
|
||||
- run: yarn build
|
||||
- run: yarn electron:build:windows
|
||||
@@ -103,7 +104,7 @@ jobs:
|
||||
allowUpdates: true
|
||||
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-20.04
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
@@ -120,7 +121,7 @@ jobs:
|
||||
gradle-version: 7.6
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 18
|
||||
- run: sudo apt install -y apksigner zipalign
|
||||
|
||||
# build react app
|
||||
|
||||
+231
-2
@@ -1,3 +1,232 @@
|
||||
## [0.2.1](https://github.com/plebbit/plebchan/compare/v0.2.0...v0.2.1) (2024-06-20)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* incorrect assets path ([4cca4a5](https://github.com/plebbit/plebchan/commit/4cca4a58dd0a8e4913cb10e7ab7bd19b46b57146))
|
||||
|
||||
|
||||
|
||||
# [0.2.0](https://github.com/plebbit/plebchan/compare/v0.1.17...v0.2.0) (2024-06-20)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **app:** prevent scrollbar glitch on board layout routes, also hiding unnecessary scrollbar in home ([61f2344](https://github.com/plebbit/plebchan/commit/61f23443ca6c2d48b9fdddce7e78ef948bb5ca6a))
|
||||
* audio elements were displaced in catalog ([9090c18](https://github.com/plebbit/plebchan/commit/9090c186528ce79cb3da1d14ec48bb6a054997ba))
|
||||
* **board banner:** subplebbit short address was wrong ([c491b07](https://github.com/plebbit/plebchan/commit/c491b0729588cc6f58094bea269c945fc0429de6))
|
||||
* **board buttons:** don't show subscribe button in multiboards ([22657ff](https://github.com/plebbit/plebchan/commit/22657ff90a709349597cf6fbc01ef58ba0da76db))
|
||||
* **board buttons:** link for return button was broken ([7086d6b](https://github.com/plebbit/plebchan/commit/7086d6b77711b3f45f707fead2f89d2d6ae17c4f))
|
||||
* **board buttons:** return button was broken, subscribe button shouldn't render in p/all and p/subscriptions ([6f003f9](https://github.com/plebbit/plebchan/commit/6f003f9c11bac3579b8cdab0e1d6fbfa7924550e))
|
||||
* **board stats:** table warning, margin ([b6f38b5](https://github.com/plebbit/plebchan/commit/b6f38b532a5ed51e74c6b3a623b208a1f2efa0cc))
|
||||
* **board:** don't show description and rules until feed loads ([0f07e1e](https://github.com/plebbit/plebchan/commit/0f07e1eedeb3ea9f23657739a410755ea71a07c0))
|
||||
* **catalog filter:** force show op comment for text-only threads ([da86c2f](https://github.com/plebbit/plebchan/commit/da86c2f17f37068cc0cf026a486dd2266c6237c2))
|
||||
* **catalog post:** display title inline ([9ebf3b7](https://github.com/plebbit/plebchan/commit/9ebf3b79b69cdd0a0947bc5fc26a182cdefab7f5))
|
||||
* **catalog post:** don't render markdown embeds and hr ([05f7977](https://github.com/plebbit/plebchan/commit/05f79774671a5d681182572fdb95ab1a95323464))
|
||||
* **catalog:** don't show description or rules if they are defined but empty ([e191e40](https://github.com/plebbit/plebchan/commit/e191e403dbfd0e81dd6e80252255e3226b30b2ce))
|
||||
* **challenge modal:** disable draggable on mobile ([9c2036a](https://github.com/plebbit/plebchan/commit/9c2036a6a17534b00198a2c2eda1e46b5a6ed580))
|
||||
* **challenge modal:** react-draggable requires nodeRef in React StrictMode ([ef1580e](https://github.com/plebbit/plebchan/commit/ef1580e8c0c269363f52fc23013359637bf134f7))
|
||||
* **comment media:** only show link if valid, show webpage links on mobile ([b778b88](https://github.com/plebbit/plebchan/commit/b778b887081772d4e468146d08e814b4f287388a))
|
||||
* **comment media:** rename, refactor, fix performance ([e8c60fc](https://github.com/plebbit/plebchan/commit/e8c60fc5bec7ce7ee2afa809b1192a979e129027))
|
||||
* **crypto wallets:** update translation ([40a95fd](https://github.com/plebbit/plebchan/commit/40a95fd6d83640967d2569addce4ed34fafb0517))
|
||||
* **description:** escape character wasn't excluded from translation ([7648ef1](https://github.com/plebbit/plebchan/commit/7648ef1432e0bb2ce4c9aa18e68f6987314f9779))
|
||||
* don't consider 'anti' tag as nsfw tag ([62b4c71](https://github.com/plebbit/plebchan/commit/62b4c71eb5b2077f82b86d1496accd1211ec8e45))
|
||||
* don't show 'sub might be offline' alert in multisubs ([937abf8](https://github.com/plebbit/plebchan/commit/937abf8dcac03c1f6c5134449c5552f043a779cb))
|
||||
* don't show subplebbit stats in multiboard feeds ([c83169e](https://github.com/plebbit/plebchan/commit/c83169ea1276c58d26dff33c32f24642c61b1464))
|
||||
* **edit menu:** fix input value warning ([f20a5f2](https://github.com/plebbit/plebchan/commit/f20a5f21f9d76ea8735dd22385b112a36b359a92))
|
||||
* **edit menu:** mod and author edits were conflicting ([efc9a98](https://github.com/plebbit/plebchan/commit/efc9a98f47777c45f7ea54b2b2821aa6c6709714))
|
||||
* **embed:** detect uppercase extension in link ([86738de](https://github.com/plebbit/plebchan/commit/86738de226a57ae0b85601fbf0eef4dc591a82df))
|
||||
* **embeds:** pass origin to youtube or popular videos won't load ([e91bb58](https://github.com/plebbit/plebchan/commit/e91bb587a1cbfa20fcaa6dd9e180157b35cbf806))
|
||||
* **feed:** show last 5 replies of thread in feed, not first 5 replies ([608aa63](https://github.com/plebbit/plebchan/commit/608aa632d4c6ac19b4065b18e2215b07ff5e9984))
|
||||
* hiding/blocking comments wouldn't work because useBlock takes cid, not address ([743bd9b](https://github.com/plebbit/plebchan/commit/743bd9b4c8312da4897297d297b95eb1a7bec6e7))
|
||||
* **home:** allow button and search bar to resize for other languages ([b13734a](https://github.com/plebbit/plebchan/commit/b13734aedf8a285e05a0dfe419c7dcd0b6fee301))
|
||||
* **home:** update twitter link ([019972a](https://github.com/plebbit/plebchan/commit/019972a7ffb86de82ee74a131b1b304d83da9ca7))
|
||||
* incorrect pathname check would scroll to reply unexpectedly ([81972c9](https://github.com/plebbit/plebchan/commit/81972c9c8551ee6e6bf4f8fe50c3957fd2cd83bf))
|
||||
* **index.html:** add no-referrer meta tag to resolve CORP-related media access issues ([f25978f](https://github.com/plebbit/plebchan/commit/f25978f180a39054ec118b662a74f6c9b758fd3b))
|
||||
* **index.html:** disable auto zoom on some mobile browsers ([c042611](https://github.com/plebbit/plebchan/commit/c0426116e2e9ffb594c9f4b4144ebd59ba347cdb))
|
||||
* link type in post form should be next to link field ([a048887](https://github.com/plebbit/plebchan/commit/a048887a58bfcd312b5ad3bb052dbd0f4d17db64))
|
||||
* **markdown:** remove spoiler text, there's no syntax for it yet ([3108107](https://github.com/plebbit/plebchan/commit/31081079bca4d490c094ea1999c0842252c170e1))
|
||||
* **markdown:** show single break ([967f781](https://github.com/plebbit/plebchan/commit/967f781cfd43841582b26eaff00205dfa1adc302))
|
||||
* **multisubs:** don't show subscribe button ([07af318](https://github.com/plebbit/plebchan/commit/07af3187c69bc0357a58d4bfef15525eef87a609))
|
||||
* **not found:** check if subplebbitAddress is valid before displaying 'back to' buttton ([f7ce689](https://github.com/plebbit/plebchan/commit/f7ce6890ec183cc6d287f34dc2d7fc8c5d914ed1))
|
||||
* **not found:** force yotsuba theme with ref, not with params in app because they can't be detected in app ([5e8d743](https://github.com/plebbit/plebchan/commit/5e8d7436f9b09b39d1a5b5e8e1e2d03292a2d6c8))
|
||||
* only show catalog post preview on mouse over thumbnail ([a8e3ce8](https://github.com/plebbit/plebchan/commit/a8e3ce8429f4d119e74649577a18ce9b7639b12d))
|
||||
* **pending post:** settings were not shown correctly ([ddd063f](https://github.com/plebbit/plebchan/commit/ddd063fdef245d6a76637ce7de83f56f753aca81))
|
||||
* performance, logic ([3eb9c5c](https://github.com/plebbit/plebchan/commit/3eb9c5c20f604f8081b913e2577d84992fbfbd60))
|
||||
* **popular threads box:** default to worksafe content and show 8 posts for single subplebbit ([c6a1283](https://github.com/plebbit/plebchan/commit/c6a1283b56b0953d9513d7aa32d0d8c59a5cdfee))
|
||||
* position floating catalog post preview relative to thumbnail dimensions ([2a5ecf9](https://github.com/plebbit/plebchan/commit/2a5ecf90ee7372cc8aeb7d59ee14b29b3e8bb749))
|
||||
* **post form:** close after publish, reset fields ([359031c](https://github.com/plebbit/plebchan/commit/359031c1df344a2eea81c571b1fceb60bca453e1))
|
||||
* **post menu mobile:** close after hiding reply ([bbc3f30](https://github.com/plebbit/plebchan/commit/bbc3f30e18903b1fbfe076e2ed50b18976a68713))
|
||||
* **post menu:** use floating ui to dynamically position dropdowns based on available space ([d964590](https://github.com/plebbit/plebchan/commit/d964590f544029ae126a5e0dd4fec9f44ee86845))
|
||||
* **post mobile:** clearfix for floating media ([84dae0a](https://github.com/plebbit/plebchan/commit/84dae0a19bfc46205091b2b0677308b0ac6c0caa))
|
||||
* **post:** break words on mobile to prevent overflow ([8e6aca6](https://github.com/plebbit/plebchan/commit/8e6aca6e324889bc7ef05e02de9c27c235d5b441))
|
||||
* **post:** don't show replies in pending post page ([b785d00](https://github.com/plebbit/plebchan/commit/b785d00ec429214d6ca805941367b8e5b1c3c25d))
|
||||
* **post:** limit displayName length ([607aad9](https://github.com/plebbit/plebchan/commit/607aad93796b567824ed38c8f1da7187f4e58393))
|
||||
* **post:** post menu position was wrong on some browsers ([cc06d54](https://github.com/plebbit/plebchan/commit/cc06d54c81e89bf2b2a565e9dfd5bff67a08eb00))
|
||||
* **post:** prioritize 'failed' state over 'pending' ([fc459d9](https://github.com/plebbit/plebchan/commit/fc459d9533505cd911760fb36e92a70e42d45c1d))
|
||||
* **post:** remove margin to fix virtuoso glitch on desktop ([af75215](https://github.com/plebbit/plebchan/commit/af752159383b94d7c228e6e16f2518744b5ee6a8))
|
||||
* **reply modal:** add minimal timeout to allow rerender when already opened ([05cc3c4](https://github.com/plebbit/plebchan/commit/05cc3c41740a96c64bd7b30e9c09a98c76cff3b5))
|
||||
* **reply modal:** autofocus caused auto scroll to top on mobile ([952d446](https://github.com/plebbit/plebchan/commit/952d446c4d41a742139c543fdfc21fb32f4f26a9))
|
||||
* **reply modal:** do nothing when clicking another cid while modal is opened ([4fa6f60](https://github.com/plebbit/plebchan/commit/4fa6f6079216b6e74c9fd1cf0616ea243bb91c75))
|
||||
* **reply modal:** get mobile scroll position from hook before render ([1e91119](https://github.com/plebbit/plebchan/commit/1e9111968730f05adac0267cf4efdbd146042485))
|
||||
* **reply modal:** improve c/parentCid styling in textarea ([148e6f1](https://github.com/plebbit/plebchan/commit/148e6f1989586db81222d80cb2cbf1d04e8932fd))
|
||||
* **settings:** decode subplebbit address with emoji to fix pathname ([2ecedcc](https://github.com/plebbit/plebchan/commit/2ecedcc956b456b84966b8e1a148a878af8a083b))
|
||||
* spoiler text wasn't rendering on mobile ([656c31c](https://github.com/plebbit/plebchan/commit/656c31c0132559cd23da09c3641cfaf1451b3c88))
|
||||
* **subplebbit description:** prevent escaping characters in translation ([aac20c4](https://github.com/plebbit/plebchan/commit/aac20c4671bbd07cd6756217ff270510bbf2464c))
|
||||
* **subscriptions:** show info if no subs found ([b07a06f](https://github.com/plebbit/plebchan/commit/b07a06fa129fd926201f3e6cb2310c40d38c3226))
|
||||
* time filter appeared twice on mobile ([ae1b860](https://github.com/plebbit/plebchan/commit/ae1b860f3b4a9248399ec9bbf4d34cd5329af788))
|
||||
* **topbar:** settings link would 404 ([1aff0d3](https://github.com/plebbit/plebchan/commit/1aff0d3adaec753e23a00276382b34641a88979b))
|
||||
* **use-replies.ts:** flatten and display replies of replies not yet published ([6e20b86](https://github.com/plebbit/plebchan/commit/6e20b86b7bb0bdabd524154bce01152662ee9c9a))
|
||||
* **use-replies.ts:** flatten comment pages ([087d4ab](https://github.com/plebbit/plebchan/commit/087d4ab738967d460e392daee291c220759bc473))
|
||||
* **use-replies:** sort by timestamp and move pinned replies to the top ([8b000a0](https://github.com/plebbit/plebchan/commit/8b000a0bdb225040319829b8ae92d77aa1501b83))
|
||||
* **use-subplebbits-stats:** hook would fetch the same stats if pending fetching ([79b660e](https://github.com/plebbit/plebchan/commit/79b660eaa02e3dac9923064b36013965be560844))
|
||||
* **use-theme:** body css would bug out on navigation ([73f4136](https://github.com/plebbit/plebchan/commit/73f4136f535bc221c8f29abd2d29e991c09d6287))
|
||||
* video thumbnails stuck on loading, post page overflow ([0036508](https://github.com/plebbit/plebchan/commit/00365086623dd05ea5a81be04790a68fba45bb25))
|
||||
* wrong document titles ([19164db](https://github.com/plebbit/plebchan/commit/19164db606a71ea9dc2e293586d7b6c9ea52c444))
|
||||
* wrong mobile value ([3a6d2f1](https://github.com/plebbit/plebchan/commit/3a6d2f16b0023607680c70929eb12dfaf888bb90))
|
||||
* wrong route check, default time filter value, missing translation ([0831e75](https://github.com/plebbit/plebchan/commit/0831e757bb13aecf0ff3039b077fcf5f7b2fbae1))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **account settings:** improve UI ([c31c0a4](https://github.com/plebbit/plebchan/commit/c31c0a4482943be76d2c372fcb919a64153da521))
|
||||
* add '(You)' in quote links ([5f792f4](https://github.com/plebbit/plebchan/commit/5f792f40f059dc6dbfa1c572c4a3c6d56f9a2429))
|
||||
* add 'not found' view ([5d124d2](https://github.com/plebbit/plebchan/commit/5d124d21211bec05cf0380bb58334871d6720fe9))
|
||||
* add "hidden threads" counter and button in catalog and board view, store and hook ([fd092f1](https://github.com/plebbit/plebchan/commit/fd092f1bee9899a25167e156f7f82c40bfa9ba7e))
|
||||
* add backlink highlight and scroll ([1911b62](https://github.com/plebbit/plebchan/commit/1911b623d9cbe56e9684ef4cef002f495ac1dd57))
|
||||
* add board-banner ([b99e9f1](https://github.com/plebbit/plebchan/commit/b99e9f143b40c71d04147aec5634235a5704384a))
|
||||
* add challenge modal ([cc5d042](https://github.com/plebbit/plebchan/commit/cc5d04288981ecbe2fec851d4669fcf874ddc216))
|
||||
* add edit menu on mobile ([1d84526](https://github.com/plebbit/plebchan/commit/1d8452684b45f6ac4391591d49af6301ce385d9c))
|
||||
* add floating quote preview to mobile replies ([84c0490](https://github.com/plebbit/plebchan/commit/84c04904f3ae370810a6ee66dd28ff6c1da6b928))
|
||||
* add mod menu ([daaba0f](https://github.com/plebbit/plebchan/commit/daaba0f006b9b8f639775c1e6ff32f25485adb95))
|
||||
* add new banner image ([a269e10](https://github.com/plebbit/plebchan/commit/a269e102e4c01aad8e4fbde27042dfde944d6ff7))
|
||||
* add offline icon to board title, show alert before posting if sub appears offline ([a2c1ec4](https://github.com/plebbit/plebchan/commit/a2c1ec441f005562792185195b3a2d53bdfd6c54))
|
||||
* add post-menu-mobile ([475d9ae](https://github.com/plebbit/plebchan/commit/475d9ae4166e887748e0211776dff7cb23e4db8a))
|
||||
* add reply modal ([0962c10](https://github.com/plebbit/plebchan/commit/0962c10685e914162796526419ab315fa439bd5e))
|
||||
* add spoiler image ([9f5f92f](https://github.com/plebbit/plebchan/commit/9f5f92f714a1305ce71fab78be5d962c3918d0d4))
|
||||
* add spoiler text ([70a2045](https://github.com/plebbit/plebchan/commit/70a20450bbf37943038cc310d894c32fac8798af))
|
||||
* add time filter to p/all and p/subscriptions ([15bffe8](https://github.com/plebbit/plebchan/commit/15bffe89bf7a82ef7d9d7b4c125136bd7bdeb87e))
|
||||
* **android:** update icon ([0391b24](https://github.com/plebbit/plebchan/commit/0391b249df9b7b6ea882b13eff7ffecd369319de))
|
||||
* **app:** add description and rules views ([a508059](https://github.com/plebbit/plebchan/commit/a508059af1dca5ab1c1d9c53c6c10522f44335e3))
|
||||
* **app:** add pending post view ([394c7d8](https://github.com/plebbit/plebchan/commit/394c7d8a810fe8c2b95db4c656cd3f574d00b691))
|
||||
* **app:** add post page ([dcd29a4](https://github.com/plebbit/plebchan/commit/dcd29a46bb4032a3de934f3409a643a5dd5b3e5c))
|
||||
* **board buttons:** improve layout, increase dimensions of post form on mobile, add refresh buttons ([bc74a9f](https://github.com/plebbit/plebchan/commit/bc74a9ff77aa3dda194ac966a6d3cac505c100c1))
|
||||
* **board nav:** add home and settings buttons ([9096eca](https://github.com/plebbit/plebchan/commit/9096eca4fbb8994a92fa5af087f9f63599af7f5f))
|
||||
* **board nav:** add sticky header animation to mobile ([bb9d53f](https://github.com/plebbit/plebchan/commit/bb9d53f47c847159c2b25b2c5bbd2f64ca0c6cac))
|
||||
* **board nav:** if in catalog view, navigate to select sub's catalog view ([32e95dd](https://github.com/plebbit/plebchan/commit/32e95dda525bb9d2b11b3ca43455027e3858660c))
|
||||
* **board nav:** order board list by multisub category ([474dede](https://github.com/plebbit/plebchan/commit/474dede5db55c5e9ce2dec41518f1c544af5db57))
|
||||
* **board nav:** update mobile navbar animation on scroll ([6a386fa](https://github.com/plebbit/plebchan/commit/6a386fa1747af83aedae72d85d0dd7a22bec7bcb))
|
||||
* **board nav:** use titles from multisub ([6aa5f38](https://github.com/plebbit/plebchan/commit/6aa5f3806379eae435ab275e2446d937666048ff))
|
||||
* **board:** add p/all and p/subscriptions ([86223bb](https://github.com/plebbit/plebchan/commit/86223bb249685d9147dd9b99229d62de95910ba8))
|
||||
* **board:** add post form UI on desktop with link type previewer ([a5a7a97](https://github.com/plebbit/plebchan/commit/a5a7a97e4712c6f27fe028d604fd508b23728593))
|
||||
* **board:** show error in feed near loading string ([4b2a602](https://github.com/plebbit/plebchan/commit/4b2a6025d39d70987dea62346ee40b8e7003f706))
|
||||
* **catalog post:** add hidden style ([8959945](https://github.com/plebbit/plebchan/commit/89599457228a8835575ff9a18f1a755c2910396d))
|
||||
* **catalog post:** add loading skeleton for image, "file deleted" fallback img ([2aa5dc0](https://github.com/plebbit/plebchan/commit/2aa5dc01eb0955af5829e426a1c4a9481f4b442e))
|
||||
* **catalog post:** add spoiler styling and text, add markdown to content ([914a7de](https://github.com/plebbit/plebchan/commit/914a7dee185826fa1e77e1457af764ba186e7854))
|
||||
* **catalog post:** allow selecting text in posts with media thumbnails ([a7c7464](https://github.com/plebbit/plebchan/commit/a7c74640779dbd729560b58644192cc31e5fb373))
|
||||
* **catalog post:** close menu button with second click ([38e958b](https://github.com/plebbit/plebchan/commit/38e958bed8ba6b2c3943b7f5b0ecf2f29345e2fa))
|
||||
* **catalog row:** add post menu button ([a6ae543](https://github.com/plebbit/plebchan/commit/a6ae543b4a589d8664f596a09a0e4c2c5a0d5fdc))
|
||||
* **catalog:** add 'image size' and 'show OP comment' options ([7f3630e](https://github.com/plebbit/plebchan/commit/7f3630e28907c9dbd75d593f6b02910d6d128175))
|
||||
* **catalog:** add catalog post previews ([88dcfca](https://github.com/plebbit/plebchan/commit/88dcfcaca8cdfb38d3bc3f25863451abefb0d1d2))
|
||||
* **catalog:** add filter to hide text-only threads, turned on by default ([ce93915](https://github.com/plebbit/plebchan/commit/ce93915919041e00de43426a1fd08ef75b45834a))
|
||||
* **catalog:** add filters modal for text-only posts, nsfw boards in p/all ([aa63ab0](https://github.com/plebbit/plebchan/commit/aa63ab0f1b69e0e4a6f7a2d685dd1ade9f53586d))
|
||||
* **catalog:** add filters to mobile ([e860593](https://github.com/plebbit/plebchan/commit/e860593650715838b48ddc1170adab0808e70733))
|
||||
* **catalog:** add media, styling ([65c99ab](https://github.com/plebbit/plebchan/commit/65c99ab1887a99d3bdaf04a7641c7883699a574a))
|
||||
* **catalog:** add post menu ([572eb3b](https://github.com/plebbit/plebchan/commit/572eb3b4e203b870469543af37261d434bf7cf82))
|
||||
* **catalog:** add refresh button ([9c9249d](https://github.com/plebbit/plebchan/commit/9c9249da94c9d6ca4b253aa7a49961f5509d5f62))
|
||||
* **catalog:** add sorting option ([1ecb2ba](https://github.com/plebbit/plebchan/commit/1ecb2ba13dcf5b379b578a88c5efb5294de9b336))
|
||||
* **catalog:** add sticky and closed icons ([2fc12bb](https://github.com/plebbit/plebchan/commit/2fc12bbafeba0d3802c0421ddac5912683c92b95))
|
||||
* **catalog:** apply filter for text-only threads to rules and description ([d9234c4](https://github.com/plebbit/plebchan/commit/d9234c4e2a926c13fba62c78527896994b79c535))
|
||||
* **crypto wallets setting:** improve UI ([65b3b99](https://github.com/plebbit/plebchan/commit/65b3b997fb7d44e11852fe12d36be3b9b625fa29))
|
||||
* **edit menu:** add comment edit and delete for authors ([2fabd3c](https://github.com/plebbit/plebchan/commit/2fabd3cf549f53da890bb30557fcaa734d8de92a))
|
||||
* **embed:** add support for soundcloud embeds, show webpage links on mobile, adjust audio embeds ([7dba08c](https://github.com/plebbit/plebchan/commit/7dba08ca00befd82d6a103f1cc36e03e55b3e495))
|
||||
* **feed:** add description and rules ([dcf0dd9](https://github.com/plebbit/plebchan/commit/dcf0dd98e4b4857a0bba33a23c2b33ef4fec3e60))
|
||||
* hide button for posts soft hides them persistently without blocking the cid ([67e3bc8](https://github.com/plebbit/plebchan/commit/67e3bc8d685711e042cb76f28e49e0ed7b88c07f))
|
||||
* hide media if spoiler ([052476a](https://github.com/plebbit/plebchan/commit/052476ad1ad839cb56c17bfe271b6fbe82f5df1e))
|
||||
* highlight reply if visible, render it as floating preview if not visible ([fc21d87](https://github.com/plebbit/plebchan/commit/fc21d876ff253a0dd14a5ba37683bfa854bc4230))
|
||||
* **home:** add custom hook for stats functionality ([798dfc4](https://github.com/plebbit/plebchan/commit/798dfc424ff48823a19b4e978b1a7f67070d09af))
|
||||
* **home:** add filter options to boards box ([8d4c440](https://github.com/plebbit/plebchan/commit/8d4c4404c3a66bf6d4f950b7e1f0c61009915e5d))
|
||||
* **home:** add multisub boards with categories, subscriptions list, moderating boards list ([de81073](https://github.com/plebbit/plebchan/commit/de8107372f92082f891ce8e41fe7654ca491e4bb))
|
||||
* **home:** add offline icon for subs in board list ([6b71d90](https://github.com/plebbit/plebchan/commit/6b71d9009af580b19cc813af6259d33ca6fc32fe))
|
||||
* **home:** add options to popular threads box ([fabcc1d](https://github.com/plebbit/plebchan/commit/fabcc1d2e1448223bcb29434e613c8bf5707e349))
|
||||
* **home:** add popular threads box ([02b287f](https://github.com/plebbit/plebchan/commit/02b287fc12a17ab4228c2fd140b630bee8f0941d))
|
||||
* **home:** add version in footer ([4614e5d](https://github.com/plebbit/plebchan/commit/4614e5dbc49e794c3dba55816f38969f47da341b))
|
||||
* **home:** in popular threads box, show more posts per sub depending on available subs ([98c52e6](https://github.com/plebbit/plebchan/commit/98c52e65daf8feba38a4c82b1f14fac62c5fc02f))
|
||||
* **home:** mark board as nsfw if it has at least one of nsfw tags in multisub ([c33c546](https://github.com/plebbit/plebchan/commit/c33c54613dcf0f055fcd95fc33069d526922535a))
|
||||
* **home:** user can connect to a sub with search bar ([568189b](https://github.com/plebbit/plebchan/commit/568189bfea9848fcaf5555157bf7309055f7e249))
|
||||
* **home:** user can download desktop client from footer button ([e59a229](https://github.com/plebbit/plebchan/commit/e59a2290ab8c37db054e1a687d4019bc8789aa6c))
|
||||
* **loading ellipsis:** improve animation ([eddc098](https://github.com/plebbit/plebchan/commit/eddc0982bb5c8cf1f086af4ca96b011de9146c3b))
|
||||
* **media:** add support for audio links ([0a52944](https://github.com/plebbit/plebchan/commit/0a52944a07d0dff523f4e35704e4bd235e284e73))
|
||||
* **multisubs:** add catalog view ([cc2a640](https://github.com/plebbit/plebchan/commit/cc2a640ae247845b2ee3bf9a4d94da513dd08b91))
|
||||
* **multisubs:** add settings modal ([970c726](https://github.com/plebbit/plebchan/commit/970c726720f065c2c5790f42dde5c79b5817751b))
|
||||
* **multisubs:** add subplebbit address in post info ([82fe238](https://github.com/plebbit/plebchan/commit/82fe23897992f31eb28848bb2831c01d02a33912))
|
||||
* **p/all:** add description view ([09f05ac](https://github.com/plebbit/plebchan/commit/09f05ac8a0eb5b655e31f21e45c83e6e7ef8b57d))
|
||||
* **p/all:** use multisub title, description and createdAt in mock description and board header ([11d1424](https://github.com/plebbit/plebchan/commit/11d1424c0a890b43a5fecb048d894d3c81b7340f))
|
||||
* **post desktop:** add hide/unhide replies ([8b60172](https://github.com/plebbit/plebchan/commit/8b601726aeaffdabc6a55d129794e24aec96411e))
|
||||
* **post form:** add on mobile ([3573b65](https://github.com/plebbit/plebchan/commit/3573b65ffa8f2f96df1c1a6c6e72e6194a939bed))
|
||||
* **post form:** add reply publishing in post page ([cf7d59c](https://github.com/plebbit/plebchan/commit/cf7d59c9b86a2e33370b2a56d6821a1b0a0a4799))
|
||||
* **post form:** add row for link type, add spoiler option ([6223cb0](https://github.com/plebbit/plebchan/commit/6223cb0b24fc2b74c42695e458ad768e8aaf7bcc))
|
||||
* **post form:** enable posting from p/all or p/subscriptions ([797d665](https://github.com/plebbit/plebchan/commit/797d66515021a181ba7b8bc9ca92aab0bda6c4cd))
|
||||
* **post form:** replace single return with double return on submit, because markdown is mandatory on plebbit, but a user from 4chan won't know that ([ccb75fc](https://github.com/plebbit/plebchan/commit/ccb75fcf3a6057a0a09e1fcd0456654a1af1bc00))
|
||||
* **post menu:** add copy link button (share link) ([caacd77](https://github.com/plebbit/plebchan/commit/caacd77bbabc26aada1845c68791144797105e86))
|
||||
* **post menu:** add reverse image search ([677407c](https://github.com/plebbit/plebchan/commit/677407cd52f5f25be24b56c20d500dda9692df81))
|
||||
* **post mobile:** add hide and unhide posts and replies ([0c02a6b](https://github.com/plebbit/plebchan/commit/0c02a6b9b68e5f525a784b68cc294a8c6ac91948))
|
||||
* **post page:** add view specific buttons ([f5fefd5](https://github.com/plebbit/plebchan/commit/f5fefd51cf537b41ae7bf14b085505824185f7ef))
|
||||
* **post page:** scroll to top, show full content, no hide thread ([e960f79](https://github.com/plebbit/plebchan/commit/e960f791b98063da7f2b3bde40df41f5e8b80712))
|
||||
* **post:** add 'this thread is closed" alert for locked, removed, deleted comments ([84f5555](https://github.com/plebbit/plebchan/commit/84f55557c1cd5c5b477990e8e1ba62801cbebc8f))
|
||||
* **post:** add "file deleted" img on error ([1882446](https://github.com/plebbit/plebchan/commit/18824468d403d68e313d2223bd6083067d0c0ba4))
|
||||
* **post:** add "show original" button to content edit ([e4febb9](https://github.com/plebbit/plebchan/commit/e4febb9df087cacbc495de235687e68d078d8194))
|
||||
* **post:** add "time ago" tooltip to dates ([19222a6](https://github.com/plebbit/plebchan/commit/19222a66fe6a98160bf0c28be265a3411e15d160))
|
||||
* **post:** add block options to mobile menu ([3206631](https://github.com/plebbit/plebchan/commit/3206631e897218b84e41fd6c33028c2760668e3a))
|
||||
* **post:** add content, links, buttons, optimize for feed scroll ([67f9334](https://github.com/plebbit/plebchan/commit/67f93349dd137d27c0e361855a7117aba52b3e2a))
|
||||
* **post:** add deleted and removed styling, mod reason, file deleted ([05a8e91](https://github.com/plebbit/plebchan/commit/05a8e913313b40c40f64ca737b57abf2f12af384))
|
||||
* **post:** add embed button and media to links in post content detected as valid embed links ([6bfa899](https://github.com/plebbit/plebchan/commit/6bfa899722f7f2e627d823a11edcbb0a8b288d28))
|
||||
* **post:** add floating preview of media from link in post content ([39a48c9](https://github.com/plebbit/plebchan/commit/39a48c95159b259b95e11c4ed3144633bcf29cb4))
|
||||
* **post:** add links and media info, including embed ([d0a3e95](https://github.com/plebbit/plebchan/commit/d0a3e959fcc1f76a067b6f726a39ddf8796e5dc7))
|
||||
* **post:** add mod role to display name ([ebf1e42](https://github.com/plebbit/plebchan/commit/ebf1e426f596dc6a4004c73982a8fe444fab6d91))
|
||||
* **post:** add post info row, update themes ([992ed5d](https://github.com/plebbit/plebchan/commit/992ed5dbb02f15af6d2841c25333c0e3494b709d))
|
||||
* **post:** add post menu component with links to other clients ([08cb073](https://github.com/plebbit/plebchan/commit/08cb0736daee6dabbc9f5e3ec0e6165ed008c04b))
|
||||
* **post:** block posts via the minus button (to collapse) or via the post menu ([32f5220](https://github.com/plebbit/plebchan/commit/32f52200b74d7160a6fbd94e080cd4483c0ddb52))
|
||||
* **post:** choose date/time format from translations locale ([d9ac34e](https://github.com/plebbit/plebchan/commit/d9ac34ef0f2400b3d1aa7088aa38d17dfc926b6c))
|
||||
* **post:** don't show link if it's not a valid url ([3524803](https://github.com/plebbit/plebchan/commit/3524803196e49dc12e578c5d8c0b059f8fbba634))
|
||||
* **replies:** add backlinks ([cbc99f4](https://github.com/plebbit/plebchan/commit/cbc99f42b04e0170d2f441624cdf3fe13d84965a))
|
||||
* **replies:** sort by timestamp ([35572de](https://github.com/plebbit/plebchan/commit/35572ded55bc0736b4559afde480300b1ad426cb))
|
||||
* **reply modal:** add c/parentCid above textarea, fix tomorrow theme ([5f3ff17](https://github.com/plebbit/plebchan/commit/5f3ff17eccf3bf875493d1b1a0f4d4723f046f32))
|
||||
* **reply modal:** add link type previewer, spoiler option ([c5d55a9](https://github.com/plebbit/plebchan/commit/c5d55a9dd5e6b0d9072f34e9abe636ad1a121c50))
|
||||
* **reply modal:** change displayName from name field, style focused inputs, translate title ([1e5c675](https://github.com/plebbit/plebchan/commit/1e5c675e95f9c7a9eb5f96204a4e4788cc32ab3b))
|
||||
* **reply modal:** disable draggable on mobile and calculate absolute top position ([d6179d0](https://github.com/plebbit/plebchan/commit/d6179d0fdca562a376cf0fd8bb18f1fa9cc7144c))
|
||||
* **reply modal:** show alert before posting if subplebbit might be offline ([d71889a](https://github.com/plebbit/plebchan/commit/d71889a3de40de6a0347c82cc7ece2b178e6be54))
|
||||
* **reply:** add floating quote preview ([b44fb15](https://github.com/plebbit/plebchan/commit/b44fb150785ac7f04e73fb1e251eb25a635087b9))
|
||||
* **settings:** add 'check for updates' button ([ca22841](https://github.com/plebbit/plebchan/commit/ca22841ea48114e5fbf143587911d0ae608da0c9))
|
||||
* **settings:** add account data settings ([b2bfc24](https://github.com/plebbit/plebchan/commit/b2bfc2440da171e967fb3bc883df50c00fb32b80))
|
||||
* **settings:** add blocked addresses setting ([42a6fb4](https://github.com/plebbit/plebchan/commit/42a6fb4a701898aae89657a98744290a423bad61))
|
||||
* **settings:** add crypto wallets ([ae02eba](https://github.com/plebbit/plebchan/commit/ae02eba4df7253e4a01deb4a9a6065e71bc74e9d))
|
||||
* **settings:** add expand all button ([91d2a5a](https://github.com/plebbit/plebchan/commit/91d2a5ae014dd8498cb9d3284904db333fb2bf5d))
|
||||
* **settings:** add interface settings category ([d78924f](https://github.com/plebbit/plebchan/commit/d78924facbd6c86995ee5c21075a0416b555a799))
|
||||
* **settings:** add plebbit options ([bf09de9](https://github.com/plebbit/plebchan/commit/bf09de98f9ddf68965252d975c3fad72a097428a))
|
||||
* **subplebbit:** add automatic theme based on nsfw or sfw tags ([22c1acd](https://github.com/plebbit/plebchan/commit/22c1acdd3dbe29cab05626018538dd4361b28933))
|
||||
* **subplebbit:** add feed, posts ([f1af55e](https://github.com/plebbit/plebchan/commit/f1af55edf0069da7c3f016d93b2a67b7b68ab4dc))
|
||||
* **topbar:** add search bar ([e39c171](https://github.com/plebbit/plebchan/commit/e39c171eac566daa447153e8bb6f3a71b494dcc6))
|
||||
|
||||
|
||||
### Performance Improvements
|
||||
|
||||
* abstract reply modal logic into hook for post page and board page ([ff8882c](https://github.com/plebbit/plebchan/commit/ff8882ce9c32aac0034a6b09b18979eca0d26d1b))
|
||||
* **app:** limit load of subplebbit with preload of layout ([9626c6c](https://github.com/plebbit/plebchan/commit/9626c6c9d8a24859ea9a206c41c3cdb0785f5750))
|
||||
* apply cachebuster to not found img and board banners ([1f4213a](https://github.com/plebbit/plebchan/commit/1f4213ae0bc7279b6ba3cf441611b3fb3f3d9ad6))
|
||||
* **app:** memoize board layout, update subplebbit view ([f4dba57](https://github.com/plebbit/plebchan/commit/f4dba57945cc70e624d57cf770f06a5fb9294e4d))
|
||||
* **app:** optimize subs loading as much as possible ([311896d](https://github.com/plebbit/plebchan/commit/311896d1220477e2979b9bb8bd09afb0688d1639))
|
||||
* **board nav:** reduce animation rerenders with useRef ([3eabe70](https://github.com/plebbit/plebchan/commit/3eabe70e1cf4e393be551dccc2367f04542d3974))
|
||||
* **catalog:** optimize feed row rendering ([34f79bf](https://github.com/plebbit/plebchan/commit/34f79bf67d2e0c92c9e9967ac805fadea7d819de))
|
||||
* **feed:** optimize postsPerPage ([b1e3400](https://github.com/plebbit/plebchan/commit/b1e3400d4424e5a0314077df6bdc32ef87ec099a))
|
||||
* improve responsiveness ([62b83bf](https://github.com/plebbit/plebchan/commit/62b83bf7ea236404fe5d4b421ad084560eb88574))
|
||||
* **markdown:** memoize ([af5a544](https://github.com/plebbit/plebchan/commit/af5a5443a717755f94a4819909fd0ae280485ac3))
|
||||
* **post:** load post components conditionally ([50df786](https://github.com/plebbit/plebchan/commit/50df786a86e5efa8baa21afd89464a30ced1a78b))
|
||||
* rewrite plebchan completely ([c4a5cfe](https://github.com/plebbit/plebchan/commit/c4a5cfec49c54f00f13599dd082b1b7140b0ce87))
|
||||
* **use-theme:** refactor for performance, fix initial theme load after refresh ([3bb1b2f](https://github.com/plebbit/plebchan/commit/3bb1b2f8c1895349d6685cb73b5ef7aa213a7795))
|
||||
|
||||
|
||||
|
||||
## [0.1.17](https://github.com/plebbit/plebchan/compare/v0.1.16...v0.1.17) (2023-12-20)
|
||||
|
||||
|
||||
@@ -28,10 +257,10 @@
|
||||
|
||||
### Features
|
||||
|
||||
* add 'view on plebchan' links ([83c93c5](https://github.com/plebbit/plebchan/commit/83c93c5861cf96edfa9f0912eafa82f7c4d5ee80))
|
||||
* add 'view on seedit' links ([83c93c5](https://github.com/plebbit/plebchan/commit/83c93c5861cf96edfa9f0912eafa82f7c4d5ee80))
|
||||
* **electron:** add plebbit rpc ([03b9b82](https://github.com/plebbit/plebchan/commit/03b9b82a6fbecba4658cc68d43523b9e862da298))
|
||||
* **SettingsModal:** add export/import full account data ([07daa4e](https://github.com/plebbit/plebchan/commit/07daa4eeb315d13f756e4196253fe02d8a989284))
|
||||
* **share:** add plebchan to share button ([a13fe45](https://github.com/plebbit/plebchan/commit/a13fe45c6446527f52dac9dd25e32c4e23c364e3))
|
||||
* **share:** add seedit to share button ([a13fe45](https://github.com/plebbit/plebchan/commit/a13fe45c6446527f52dac9dd25e32c4e23c364e3))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
// hook that runs after electron-build
|
||||
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
const { execSync } = require('child_process');
|
||||
const rootPath = path.resolve(__dirname, '..');
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import { execSync } from 'child_process';
|
||||
import packageJson from '../package.json' assert { type: 'json' };
|
||||
import { fileURLToPath } from 'url';
|
||||
const rootPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const distFolderPath = path.resolve(rootPath, 'dist');
|
||||
|
||||
const addPortableToPortableExecutableFileName = () => {
|
||||
@@ -21,9 +23,8 @@ const createHtmlArchive = () => {
|
||||
if (process.platform !== 'linux') {
|
||||
return;
|
||||
}
|
||||
const { version } = require('../package.json');
|
||||
const zipBinPath = path.resolve(rootPath, 'node_modules', '7zip-bin', 'linux', 'x64', '7za');
|
||||
const plebchanHtmlFolderName = `plebchan-html-${version}`;
|
||||
const plebchanHtmlFolderName = `plebchan-html-${packageJson.version}`;
|
||||
const outputFile = path.resolve(distFolderPath, `${plebchanHtmlFolderName}.zip`);
|
||||
const inputFolder = path.resolve(rootPath, 'build');
|
||||
try {
|
||||
@@ -37,7 +38,7 @@ const createHtmlArchive = () => {
|
||||
}
|
||||
};
|
||||
|
||||
exports.default = async (buildResult) => {
|
||||
export default async (buildResult) => {
|
||||
addPortableToPortableExecutableFileName();
|
||||
createHtmlArchive();
|
||||
};
|
||||
|
||||
+9
-10
@@ -1,11 +1,12 @@
|
||||
// download the ipfs binaries before building the electron clients
|
||||
|
||||
const fs = require('fs-extra');
|
||||
const ProgressBar = require('progress');
|
||||
const https = require('https');
|
||||
const decompress = require('decompress');
|
||||
const path = require('path');
|
||||
const ipfsClientsPath = path.join(__dirname, '..', 'bin');
|
||||
import fs from 'fs-extra';
|
||||
import ProgressBar from 'progress';
|
||||
import https from 'https';
|
||||
import decompress from 'decompress';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
const ipfsClientsPath = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'bin');
|
||||
const ipfsClientWindowsPath = path.join(ipfsClientsPath, 'win');
|
||||
const ipfsClientMacPath = path.join(ipfsClientsPath, 'mac');
|
||||
const ipfsClientLinuxPath = path.join(ipfsClientsPath, 'linux');
|
||||
@@ -98,14 +99,12 @@ const downloadAndExtract = async (url, destinationPath) => {
|
||||
fs.removeSync(dowloadPath);
|
||||
};
|
||||
|
||||
const downloadIpfsClients = async () => {
|
||||
export const downloadIpfsClients = async () => {
|
||||
await downloadAndExtract(ipfsClientWindowsUrl, ipfsClientWindowsPath);
|
||||
await downloadAndExtract(ipfsClientMacUrl, ipfsClientMacPath);
|
||||
await downloadAndExtract(ipfsClientLinuxPUrl, ipfsClientLinuxPath);
|
||||
};
|
||||
|
||||
exports.downloadIpfsClients = downloadIpfsClients;
|
||||
|
||||
exports.default = async (context) => {
|
||||
export default async (context) => {
|
||||
await downloadIpfsClients();
|
||||
};
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
const downloadIpfsClients = require('./before-pack').downloadIpfsClients;
|
||||
import { downloadIpfsClients } from './before-pack.js';
|
||||
downloadIpfsClients();
|
||||
|
||||
+5
-4
@@ -1,9 +1,10 @@
|
||||
// require this file to log to file in case there's a crash
|
||||
|
||||
const envPaths = require('env-paths').default('plebbit', { suffix: false });
|
||||
const util = require('util');
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
import util from 'util';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import EnvPaths from 'env-paths';
|
||||
const envPaths = EnvPaths('plebbit', { suffix: false });
|
||||
|
||||
// previous version created a file instead of folder
|
||||
// we should remove this at some point
|
||||
|
||||
+22
-13
@@ -1,10 +1,15 @@
|
||||
require('./log');
|
||||
const { app, BrowserWindow, Menu, MenuItem, Tray, screen: electronScreen, shell, dialog } = require('electron');
|
||||
const isDev = require('electron-is-dev');
|
||||
const path = require('path');
|
||||
const startIpfs = require('./start-ipfs');
|
||||
const startPlebbitRpcServer = require('./start-plebbit-rpc');
|
||||
const { URL } = require('node:url');
|
||||
import './log.js';
|
||||
import { app, BrowserWindow, Menu, MenuItem, Tray, screen as electronScreen, shell, dialog, nativeTheme, ipcMain } from 'electron';
|
||||
import isDev from 'electron-is-dev';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import EnvPaths from 'env-paths';
|
||||
import startIpfs from './start-ipfs.js';
|
||||
import './start-plebbit-rpc.js';
|
||||
import { URL, fileURLToPath } from 'node:url';
|
||||
import contextMenu from 'electron-context-menu';
|
||||
import packageJson from '../package.json' assert { type: 'json' };
|
||||
const dirname = path.join(path.dirname(fileURLToPath(import.meta.url)));
|
||||
|
||||
let startIpfsError;
|
||||
startIpfs.onError = (error) => {
|
||||
@@ -16,6 +21,11 @@ startIpfs.onError = (error) => {
|
||||
}
|
||||
};
|
||||
|
||||
// send plebbit rpc auth key to renderer
|
||||
const plebbitDataPath = !isDev ? EnvPaths('plebbit', { suffix: false }).data : path.join(dirname, '..', '.plebbit');
|
||||
const plebbitRpcAuthKey = fs.readFileSync(path.join(plebbitDataPath, 'auth-key'), 'utf8');
|
||||
ipcMain.on('get-plebbit-rpc-auth-key', (event) => event.reply('plebbit-rpc-auth-key', plebbitRpcAuthKey));
|
||||
|
||||
// use common user agent instead of electron so img, video, audio, iframe elements don't get blocked
|
||||
// https://www.whatismybrowser.com/guides/the-latest-version/chrome
|
||||
// https://www.whatismybrowser.com/guides/the-latest-user-agent/chrome
|
||||
@@ -23,10 +33,9 @@ startIpfs.onError = (error) => {
|
||||
let fakeUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36';
|
||||
if (process.platform === 'darwin') fakeUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36';
|
||||
if (process.platform === 'linux') fakeUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36';
|
||||
const realUserAgent = `plebchan/${require('../package.json').version}`;
|
||||
const realUserAgent = `plebchan/${packageJson.version}`;
|
||||
|
||||
// add right click menu
|
||||
const contextMenu = require('electron-context-menu');
|
||||
contextMenu({
|
||||
// prepend custom buttons to top
|
||||
prepend: (defaultActions, parameters, browserWindow) => [
|
||||
@@ -63,13 +72,13 @@ const createMainWindow = () => {
|
||||
width: 1000,
|
||||
height: 600,
|
||||
show: false,
|
||||
backgroundColor: '#fffee',
|
||||
backgroundColor: nativeTheme.shouldUseDarkColors ? '#000000' : '#ffffff',
|
||||
webPreferences: {
|
||||
webSecurity: true, // must be true or iframe embeds like youtube can do remote code execution
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
devTools: true, // TODO: change to isDev when no bugs left
|
||||
preload: path.join(__dirname, 'preload.js'),
|
||||
preload: path.join(dirname, 'preload.js'),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -115,7 +124,7 @@ const createMainWindow = () => {
|
||||
callback({ responseHeaders: details.responseHeaders });
|
||||
});
|
||||
|
||||
const startURL = isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, '../build/index.html')}`;
|
||||
const startURL = isDev ? 'http://localhost:3000' : `file://${path.join(dirname, '../build/index.html')}`;
|
||||
|
||||
mainWindow.loadURL(startURL);
|
||||
|
||||
@@ -219,7 +228,7 @@ const createMainWindow = () => {
|
||||
|
||||
if (process.platform !== 'darwin') {
|
||||
// tray
|
||||
const trayIconPath = path.join(__dirname, '..', isDev ? 'public' : 'build', 'electron-tray-icon.png');
|
||||
const trayIconPath = path.join(dirname, '..', isDev ? 'public' : 'build', 'electron-tray-icon.png');
|
||||
const tray = new Tray(trayIconPath);
|
||||
tray.setToolTip('plebchan');
|
||||
const trayMenu = Menu.buildFromTemplate([
|
||||
|
||||
+5
-3
@@ -1,4 +1,4 @@
|
||||
const { contextBridge } = require('electron');
|
||||
const { contextBridge, ipcRenderer } = require('electron');
|
||||
|
||||
// dev uses http://localhost, prod uses file://...index.html
|
||||
const isDev = window.location.protocol === 'http:';
|
||||
@@ -8,9 +8,11 @@ const defaultPlebbitOptions = {
|
||||
};
|
||||
|
||||
contextBridge.exposeInMainWorld('defaultPlebbitOptions', defaultPlebbitOptions);
|
||||
contextBridge.exposeInMainWorld('defaultMediaIpfsGatewayUrl', 'http://localhost:6473');
|
||||
|
||||
// expose a flag to indicate that we are running in electron
|
||||
contextBridge.exposeInMainWorld('electron', { isElectron: true });
|
||||
// receive plebbit rpc auth key from main
|
||||
ipcRenderer.on('plebbit-rpc-auth-key', (event, plebbitRpcAuthKey) => contextBridge.exposeInMainWorld('plebbitRpcAuthKey', plebbitRpcAuthKey));
|
||||
ipcRenderer.send('get-plebbit-rpc-auth-key');
|
||||
|
||||
// uncomment for logs
|
||||
// localStorage.debug = 'plebbit-js:*,plebbit-react-hooks:*,plebchan:*'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// use this proxy server to debug ipfs api requests made by electron
|
||||
|
||||
const http = require('http');
|
||||
const httpProxy = require('http-proxy');
|
||||
import http from 'http';
|
||||
import httpProxy from 'http-proxy';
|
||||
|
||||
// start proxy
|
||||
const proxy = httpProxy.createProxyServer({});
|
||||
@@ -45,4 +45,4 @@ const start = ({ proxyPort, targetPort } = {}) => {
|
||||
console.log(`proxy server listening on port ${proxyPort}`);
|
||||
};
|
||||
|
||||
module.exports = { start };
|
||||
export default { start };
|
||||
|
||||
+19
-11
@@ -1,11 +1,14 @@
|
||||
const isDev = require('electron-is-dev');
|
||||
const path = require('path');
|
||||
const { spawn } = require('child_process');
|
||||
const fs = require('fs-extra');
|
||||
const envPaths = require('env-paths').default('plebbit', { suffix: false });
|
||||
const ps = require('node:process');
|
||||
const proxyServer = require('./proxy-server');
|
||||
const tcpPortUsed = require('tcp-port-used');
|
||||
import isDev from 'electron-is-dev';
|
||||
import path from 'path';
|
||||
import { spawn } from 'child_process';
|
||||
import fs from 'fs-extra';
|
||||
import ps from 'node:process';
|
||||
import proxyServer from './proxy-server.js';
|
||||
import tcpPortUsed from 'tcp-port-used';
|
||||
import EnvPaths from 'env-paths';
|
||||
import { fileURLToPath } from 'url';
|
||||
const dirname = path.join(path.dirname(fileURLToPath(import.meta.url)));
|
||||
const envPaths = EnvPaths('plebbit', { suffix: false });
|
||||
|
||||
// use this custom function instead of spawnSync for better logging
|
||||
// also spawnSync might have been causing crash on start on windows
|
||||
@@ -37,8 +40,8 @@ const startIpfs = async () => {
|
||||
if (process.platform === 'darwin') {
|
||||
binFolderName = 'mac';
|
||||
}
|
||||
ipfsPath = path.join(__dirname, '..', 'bin', binFolderName, ipfsFileName);
|
||||
ipfsDataPath = path.join(__dirname, '..', '.plebbit', 'ipfs');
|
||||
ipfsPath = path.join(dirname, '..', 'bin', binFolderName, ipfsFileName);
|
||||
ipfsDataPath = path.join(dirname, '..', '.plebbit', 'ipfs');
|
||||
}
|
||||
|
||||
if (!fs.existsSync(ipfsPath)) {
|
||||
@@ -104,6 +107,8 @@ const startIpfs = async () => {
|
||||
});
|
||||
};
|
||||
|
||||
const DefaultExport = {};
|
||||
|
||||
let pendingStart = false;
|
||||
const start = async () => {
|
||||
if (pendingStart) {
|
||||
@@ -120,7 +125,7 @@ const start = async () => {
|
||||
console.log('failed starting ipfs', e);
|
||||
try {
|
||||
// try to run exported onError callback, can be undefined
|
||||
module.exports.onError(e)?.catch?.(console.log);
|
||||
DefaultExport.onError(e)?.catch?.(console.log);
|
||||
} catch (e) {}
|
||||
}
|
||||
pendingStart = false;
|
||||
@@ -132,3 +137,6 @@ start();
|
||||
setInterval(() => {
|
||||
start();
|
||||
}, 1000);
|
||||
|
||||
DefaultExport.start = start;
|
||||
export default DefaultExport;
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
const tcpPortUsed = require('tcp-port-used');
|
||||
const { PlebbitWsServer } = require('@plebbit/plebbit-js/rpc');
|
||||
const path = require('path');
|
||||
const envPaths = require('env-paths').default('plebbit', { suffix: false });
|
||||
const { randomBytes } = require('crypto');
|
||||
const fs = require('fs-extra');
|
||||
|
||||
let isDev = true;
|
||||
try {
|
||||
isDev = require('electron-is-dev');
|
||||
} catch (e) {}
|
||||
import tcpPortUsed from 'tcp-port-used';
|
||||
import EnvPaths from 'env-paths';
|
||||
import { randomBytes } from 'crypto';
|
||||
import fs from 'fs-extra';
|
||||
import PlebbitRpc from '@plebbit/plebbit-js/dist/node/rpc/src/index.js';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
import isDev from 'electron-is-dev';
|
||||
const dirname = path.join(path.dirname(fileURLToPath(import.meta.url)));
|
||||
const envPaths = EnvPaths('plebbit', { suffix: false });
|
||||
|
||||
// PLEB, always run plebbit rpc on this port so all clients can use it
|
||||
const port = 9138;
|
||||
const defaultPlebbitOptions = {
|
||||
// find the user's OS data path
|
||||
dataPath: !isDev ? envPaths.data : path.join(__dirname, '..', '.plebbit'),
|
||||
dataPath: !isDev ? envPaths.data : path.join(dirname, '..', '.plebbit'),
|
||||
ipfsHttpClientsOptions: ['http://localhost:5001/api/v0'],
|
||||
// TODO: having to define pubsubHttpClientsOptions and ipfsHttpClientsOptions is a bug with plebbit-js
|
||||
pubsubHttpClientsOptions: ['http://localhost:5001/api/v0'],
|
||||
@@ -42,7 +41,7 @@ const start = async () => {
|
||||
if (started) {
|
||||
return;
|
||||
}
|
||||
const plebbitWebSocketServer = await PlebbitWsServer({ port, plebbitOptions: defaultPlebbitOptions, authKey: plebbitRpcAuthKey });
|
||||
const plebbitWebSocketServer = await PlebbitRpc.PlebbitWsServer({ port, plebbitOptions: defaultPlebbitOptions, authKey: plebbitRpcAuthKey });
|
||||
|
||||
console.log(`plebbit rpc: listening on ws://localhost:${port} (local connections only)`);
|
||||
console.log(`plebbit rpc: listening on ws://localhost:${port}/${plebbitRpcAuthKey} (secret auth key for remote connections)`);
|
||||
|
||||
+4
-3
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"name": "plebchan",
|
||||
"version": "0.1.17",
|
||||
"version": "0.2.1",
|
||||
"description": "A GUI for plebbit similar to 4chan",
|
||||
"type": "module",
|
||||
"author": "plebeius.eth",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
@@ -93,8 +94,8 @@
|
||||
"cross-env": "7.0.3",
|
||||
"cz-conventional-changelog": "3.3.0",
|
||||
"decompress": "4.2.1",
|
||||
"electron": "19.1.8",
|
||||
"electron-builder": "23.0.9",
|
||||
"electron": "28.2.3",
|
||||
"electron-builder": "24.13.2",
|
||||
"husky": "4.3.8",
|
||||
"lint-staged": "12.3.8",
|
||||
"wait-on": "7.0.1"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
const {execSync} = require('child_process')
|
||||
const path = require('path')
|
||||
const conventionalChangelog = path.join('node_modules', '.bin', 'conventional-changelog')
|
||||
import {execSync} from 'child_process'
|
||||
import path from 'path'
|
||||
import {fileURLToPath} from 'url'
|
||||
const dirname = path.join(path.dirname(fileURLToPath(import.meta.url)))
|
||||
const conventionalChangelog = path.join(dirname, '..', 'node_modules', '.bin', 'conventional-changelog')
|
||||
|
||||
// sometimes release-count 1 is empty
|
||||
let releaseChangelog =
|
||||
|
||||
@@ -2,13 +2,12 @@ import { useTranslation } from 'react-i18next';
|
||||
import { Link, useLocation, useNavigate, useParams } from 'react-router-dom';
|
||||
import { useAccountComment, useSubscribe } from '@plebbit/plebbit-react-hooks';
|
||||
import { isAllView, isCatalogView, isPendingPostView, isPostPageView, isSubscriptionsView } from '../../lib/utils/view-utils';
|
||||
import useSortingStore from '../../stores/use-sorting-store';
|
||||
import useCatalogStyleStore from '../../stores/use-catalog-style-store';
|
||||
import useFeedResetStore from '../../stores/use-feed-reset-store';
|
||||
import useSortingStore from '../../stores/use-sorting-store';
|
||||
import useTimeFilter from '../../hooks/use-time-filter';
|
||||
import CatalogFilters from '../../views/catalog/catalog-filters/';
|
||||
import styles from './board-buttons.module.css';
|
||||
import useCatalogFiltersStore from '../../stores/use-catalog-filters-store';
|
||||
import useCatalogStyleStore from '../../stores/use-catalog-style-store';
|
||||
|
||||
interface BoardButtonsProps {
|
||||
address?: string | undefined;
|
||||
|
||||
@@ -10,7 +10,7 @@ const totalBanners = 59;
|
||||
const ImageBanner = () => {
|
||||
const [imagePath] = useState(() => {
|
||||
const randomBannerIndex = Math.floor(Math.random() * totalBanners) + 1;
|
||||
return `/assets/banners/banner-${randomBannerIndex}.jpg`;
|
||||
return `assets/banners/banner-${randomBannerIndex}.jpg`;
|
||||
});
|
||||
|
||||
return <img src={imagePath} alt='' />;
|
||||
|
||||
@@ -86,7 +86,7 @@ export const CatalogPostMedia = ({ commentMediaInfo, isOutOfFeed, linkWidth, lin
|
||||
return (
|
||||
<div className={hasError ? '' : styles.mediaWrapper} style={CSSProperties}>
|
||||
{!isLoaded && !hasError && type !== 'video' && type !== 'audio' && <span className={styles.loadingSkeleton} />}
|
||||
{hasError ? <img className={styles.fileDeleted} src='/assets/filedeleted-res.gif' alt='' /> : thumbnailComponent}
|
||||
{hasError ? <img className={styles.fileDeleted} src='assets/filedeleted-res.gif' alt='' /> : thumbnailComponent}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -223,7 +223,7 @@ const CatalogPost = ({ post }: { post: Comment }) => {
|
||||
>
|
||||
{threadIcons}
|
||||
{spoiler ? (
|
||||
<img src='/assets/spoiler.png' alt='' />
|
||||
<img src='assets/spoiler.png' alt='' />
|
||||
) : (
|
||||
<CatalogPostMedia commentMediaInfo={commentMediaInfo} isOutOfFeed={isDescription || isRules} linkWidth={linkWidth} linkHeight={linkHeight} />
|
||||
)}
|
||||
|
||||
@@ -7,7 +7,6 @@ import { getHostname } from '../../lib/utils/url-utils';
|
||||
import useFetchGifFirstFrame from '../../hooks/use-fetch-gif-first-frame';
|
||||
import useIsMobile from '../../hooks/use-is-mobile';
|
||||
import Embed, { canEmbed } from '../embed';
|
||||
import _ from 'lodash';
|
||||
|
||||
interface MediaProps {
|
||||
commentMediaInfo?: CommentMediaInfo;
|
||||
@@ -79,9 +78,9 @@ const Thumbnail = ({ commentMediaInfo, isFloatingEmbed, post, setShowThumbnail }
|
||||
const linkWithoutThumbnail = url && new URL(url);
|
||||
|
||||
return hasError || isDeleted ? (
|
||||
<img className={styles.fileDeleted} src='/assets/filedeleted-res.gif' alt='File deleted' />
|
||||
<img className={styles.fileDeleted} src='assets/filedeleted-res.gif' alt='File deleted' />
|
||||
) : spoiler ? (
|
||||
<img className={styles.spoiler} src='/assets/spoiler.png' alt='' onClick={() => setShowThumbnail(false)} />
|
||||
<img className={styles.spoiler} src='assets/spoiler.png' alt='' onClick={() => setShowThumbnail(false)} />
|
||||
) : isOutOfFeed ? (
|
||||
<span className={`${isFloatingEmbed ? styles.floatingEmbed : styles.subplebbitAvatar}`}>{thumbnailComponent}</span>
|
||||
) : isMobile || isReply ? (
|
||||
|
||||
@@ -86,12 +86,12 @@ const PostInfo = ({ openReplyModal, post, roles, isHidden }: PostProps) => {
|
||||
)}
|
||||
{pinned && (
|
||||
<span className={`${styles.stickyIconWrapper} ${!locked && styles.addPaddingBeforeReply}`}>
|
||||
<img src='/assets/icons/sticky.gif' alt='' className={styles.stickyIcon} title={t('sticky')} />
|
||||
<img src='assets/icons/sticky.gif' alt='' className={styles.stickyIcon} title={t('sticky')} />
|
||||
</span>
|
||||
)}
|
||||
{locked && (
|
||||
<span className={`${styles.closedIconWrapper} ${styles.addPaddingBeforeReply} ${pinned && styles.addPaddingInBetween}`}>
|
||||
<img src='/assets/icons/closed.gif' alt='' className={styles.closedIcon} title={t('closed')} />
|
||||
<img src='assets/icons/closed.gif' alt='' className={styles.closedIcon} title={t('closed')} />
|
||||
</span>
|
||||
)}
|
||||
{!isInPostView && !isReply && !isHidden && (
|
||||
@@ -163,12 +163,11 @@ const PostMedia = ({ post }: PostProps) => {
|
||||
};
|
||||
|
||||
const PostMessage = ({ post }: PostProps) => {
|
||||
const { cid, deleted, edit, original, parentCid, postCid, reason, removed, spoiler, state, subplebbitAddress } = post || {};
|
||||
const { cid, content, deleted, edit, original, parentCid, postCid, reason, removed, spoiler, state, subplebbitAddress } = post || {};
|
||||
const { t } = useTranslation();
|
||||
const params = useParams();
|
||||
const location = useLocation();
|
||||
const isInPostView = isPostPageView(location.pathname, params);
|
||||
const [content, setContent] = useState(post?.content);
|
||||
const [showOriginal, setShowOriginal] = useState(false);
|
||||
|
||||
const displayContent = content && !isInPostView && content.length > 1000 ? content?.slice(0, 1000) + '(...)' : content;
|
||||
@@ -193,19 +192,14 @@ const PostMessage = ({ post }: PostProps) => {
|
||||
<span className={styles.deletedContent}>{t('user_deleted_this_post')}</span>
|
||||
) : (
|
||||
<>
|
||||
<Markdown content={displayContent} spoiler={spoiler} />
|
||||
{!showOriginal && <Markdown content={displayContent} spoiler={spoiler} />}
|
||||
{edit && original?.content !== post?.content && (
|
||||
<span className={styles.editedInfo}>
|
||||
{showOriginal && <Markdown content={original?.content} />}
|
||||
<br />
|
||||
(Edited at {getFormattedDate(edit?.timestamp)},{' '}
|
||||
<span
|
||||
className={styles.showOriginal}
|
||||
onClick={() => {
|
||||
setContent(showOriginal ? post?.content : original?.content);
|
||||
setShowOriginal(!showOriginal);
|
||||
}}
|
||||
>
|
||||
show {showOriginal ? 'edited' : 'original'}
|
||||
<span className={styles.showOriginal} onClick={() => setShowOriginal(!showOriginal)}>
|
||||
{showOriginal ? 'hide original' : 'show original'}
|
||||
</span>
|
||||
)
|
||||
</span>
|
||||
|
||||
@@ -58,12 +58,12 @@ const PostInfoAndMedia = ({ openReplyModal, post, roles }: PostProps) => {
|
||||
{!(isDescription || isRules) && <span className={styles.address}>(u/{shortAddress || accountShortAddress})</span>}
|
||||
{pinned && (
|
||||
<span className={styles.stickyIconWrapper}>
|
||||
<img src='/assets/icons/sticky.gif' alt='' className={styles.stickyIcon} title={t('sticky')} />
|
||||
<img src='assets/icons/sticky.gif' alt='' className={styles.stickyIcon} title={t('sticky')} />
|
||||
</span>
|
||||
)}
|
||||
{locked && (
|
||||
<span className={`${styles.closedIconWrapper} ${pinned && styles.addPaddingInBetween}`}>
|
||||
<img src='/assets/icons/closed.gif' alt='' className={styles.closedIcon} title={t('closed')} />
|
||||
<img src='assets/icons/closed.gif' alt='' className={styles.closedIcon} title={t('closed')} />
|
||||
</span>
|
||||
)}
|
||||
{title && (
|
||||
@@ -119,8 +119,7 @@ const ReplyBacklinks = ({ post }: PostProps) => {
|
||||
|
||||
const PostMessageMobile = ({ post }: PostProps) => {
|
||||
const { t } = useTranslation();
|
||||
const { cid, deleted, edit, original, parentCid, postCid, reason, removed, spoiler, state, subplebbitAddress } = post || {};
|
||||
const [content, setContent] = useState(post?.content);
|
||||
const { cid, content, deleted, edit, original, parentCid, postCid, reason, removed, spoiler, state, subplebbitAddress } = post || {};
|
||||
const [showOriginal, setShowOriginal] = useState(false);
|
||||
|
||||
const params = useParams();
|
||||
@@ -150,19 +149,14 @@ const PostMessageMobile = ({ post }: PostProps) => {
|
||||
<span className={styles.removedContent}>{t('user_deleted_this_post')}</span>
|
||||
) : (
|
||||
<>
|
||||
<Markdown content={displayContent} spoiler={spoiler} />
|
||||
{!showOriginal && <Markdown content={displayContent} spoiler={spoiler} />}
|
||||
{edit && original?.content !== post?.content && (
|
||||
<span className={styles.editedInfo}>
|
||||
{showOriginal && <Markdown content={original?.content} />}
|
||||
<br />
|
||||
(Edited at {getFormattedDate(edit?.timestamp)},{' '}
|
||||
<span
|
||||
className={styles.showOriginal}
|
||||
onClick={() => {
|
||||
setContent(showOriginal ? post?.content : original?.content);
|
||||
setShowOriginal(!showOriginal);
|
||||
}}
|
||||
>
|
||||
show {showOriginal ? 'edited' : 'original'}
|
||||
<span className={styles.showOriginal} onClick={() => setShowOriginal(!showOriginal)}>
|
||||
{showOriginal ? 'hide original' : 'show original'}
|
||||
</span>
|
||||
)
|
||||
</span>
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useState, useEffect } from 'react';
|
||||
import { useLocation, useParams } from 'react-router-dom';
|
||||
import { isAllView, isSubscriptionsView } from '../lib/utils/view-utils';
|
||||
import useThemeStore from '../stores/use-theme-store';
|
||||
import determineInitialTheme from './use-initial-theme';
|
||||
import useInitialTheme from './use-initial-theme';
|
||||
|
||||
const useTheme = (): [string, (theme: string) => void] => {
|
||||
const location = useLocation();
|
||||
@@ -20,14 +20,18 @@ const useTheme = (): [string, (theme: string) => void] => {
|
||||
load();
|
||||
}, [loadThemes]);
|
||||
|
||||
const initialTheme = determineInitialTheme();
|
||||
const initialTheme = useInitialTheme();
|
||||
|
||||
const [theme, setLocalTheme] = useState(initialTheme);
|
||||
|
||||
useEffect(() => {
|
||||
const previousTheme = document.body.className;
|
||||
document.body.classList.add(initialTheme);
|
||||
return () => {
|
||||
document.body.classList.remove(initialTheme);
|
||||
if (previousTheme) {
|
||||
document.body.classList.add(previousTheme);
|
||||
}
|
||||
};
|
||||
}, [initialTheme]);
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ const useFeedRows = (columnCount: number, feed: any, isFeedLoaded: boolean, subp
|
||||
});
|
||||
}
|
||||
return _feed;
|
||||
}, [feed, description, rules, address, isFeedLoaded, createdAt, title, shortAddress, avatarUrl, t, isInAllView, multisub]);
|
||||
}, [feed, description, rules, address, isFeedLoaded, createdAt, title, shortAddress, avatarUrl, t, isInAllView, multisub, showTextOnlyThreads, suggested?.avatarUrl]);
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const rows = [];
|
||||
|
||||
@@ -204,7 +204,7 @@ export const HomeLogo = () => {
|
||||
return (
|
||||
<Link to='/'>
|
||||
<div className={styles.logo}>
|
||||
<img alt='' src='/assets/logo/logo-transparent.png' />
|
||||
<img alt='' src='assets/logo/logo-transparent.png' />
|
||||
</div>
|
||||
</Link>
|
||||
);
|
||||
|
||||
@@ -9,7 +9,7 @@ const totalNotFoundImages = 2;
|
||||
const NotFoundImage = () => {
|
||||
const [imagePath] = useState(() => {
|
||||
const randomBannerIndex = Math.floor(Math.random() * totalNotFoundImages) + 1;
|
||||
return `/assets/not-found/not-found-${randomBannerIndex}.jpg`;
|
||||
return `assets/not-found/not-found-${randomBannerIndex}.jpg`;
|
||||
});
|
||||
|
||||
return <img src={imagePath} alt='' />;
|
||||
|
||||
Reference in New Issue
Block a user