Browse Source

fix react bug

imwald
Silberengel 2 weeks ago
parent
commit
36fcb5acae
  1. 4
      package-lock.json
  2. 2
      package.json
  3. 2
      src/providers/FavoriteRelaysActivityProvider.tsx
  4. 17
      src/providers/FeedProvider.tsx

4
package-lock.json generated

@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
{
"name": "imwald",
"version": "23.1.1",
"version": "23.1.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "imwald",
"version": "23.1.1",
"version": "23.1.2",
"license": "MIT",
"dependencies": {
"@asciidoctor/core": "^3.0.4",

2
package.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"name": "imwald",
"version": "23.1.1",
"version": "23.1.2",
"description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery",
"private": true,
"type": "module",

2
src/providers/FavoriteRelaysActivityProvider.tsx

@ -227,7 +227,7 @@ export function FavoriteRelaysActivityProvider({ children }: { children: React.R @@ -227,7 +227,7 @@ export function FavoriteRelaysActivityProvider({ children }: { children: React.R
* Fixes race where pulse data arrives before NostrProvider has hydrated follow list from cache. */
useEffect(() => {
if (!viewerPubkey || followings.length > 0) {
setFallbackFollowings([])
setFallbackFollowings((prev) => (prev.length ? [] : prev))
return
}
let cancelled = false

17
src/providers/FeedProvider.tsx

@ -226,7 +226,22 @@ export function FeedProvider({ children }: { children: React.ReactNode }) { @@ -226,7 +226,22 @@ export function FeedProvider({ children }: { children: React.ReactNode }) {
const baseRelays = getFavoritesFeedRelayUrls(favoriteRelays, blockedRelays)
const finalRelays = mergeRelayUrlLayers([baseRelays, extraFeedRelayUrls], blockedRelays)
logger.debug('Updating relay URLs for all-favorites:', finalRelays)
setRelayUrls(finalRelays)
// Same logical list can be merged into a new array each run; keep the previous reference so
// feed consumers (RelaysFeed → NoteList relay subscription) do not re-enter effects in a tight loop.
const nextKey = finalRelays
.map((u) => normalizeAnyRelayUrl(u) || u)
.filter(Boolean)
.sort()
.join('\n')
setRelayUrls((prev) => {
const prevKey = prev
.map((u) => normalizeAnyRelayUrl(u) || u)
.filter(Boolean)
.sort()
.join('\n')
if (prevKey === nextKey) return prev
return finalRelays
})
}, [feedInfo.feedType, favoriteRelays, blockedRelays, extraFeedRelayUrls])
return (

Loading…
Cancel
Save