+
+ {activeTab === "approved"
+ ? "Showing approved posts from groups you've joined"
+ : "Showing all posts from groups you've joined"}
+
+
+
+
+ {sortedPosts.map((post) => (
+
+ ))}
+
+
+
+
+
+
+ );
+}
\ No newline at end of file
From 6be8ea5628b78597de6dd0eda0d06ae41d75ee53 Mon Sep 17 00:00:00 2001
From: Liz Sweigart <127434495+NotThatKindOfDrLiz@users.noreply.github.com>
Date: Thu, 5 Jun 2025 19:03:24 -0500
Subject: [PATCH 2/3] Fix: Update group feed with NutzapButton, fix TypeScript
errors, and use Home icon for groups
---
src/components/groups/GroupPostItem.tsx | 30 +++++++++++++++++++++++++
src/components/ui/Header.tsx | 2 +-
src/pages/GroupPostsFeed.tsx | 6 ++---
3 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/components/groups/GroupPostItem.tsx b/src/components/groups/GroupPostItem.tsx
index ef117e46..cddfb375 100644
--- a/src/components/groups/GroupPostItem.tsx
+++ b/src/components/groups/GroupPostItem.tsx
@@ -14,6 +14,8 @@ import { useAuthor } from "@/hooks/useAuthor";
import { nip19 } from "nostr-tools";
import { NoteContent } from "../NoteContent";
import { EmojiReactionButton } from "@/components/EmojiReactionButton";
+import { NutzapButton } from "@/components/groups/NutzapButton";
+import { NutzapInterface } from "@/components/groups/NutzapInterface";
import { shareContent } from "@/lib/share";
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from "@/components/ui/tooltip";
@@ -72,6 +74,7 @@ export function GroupPostItem({ post }: GroupPost) {
const [groupInfo, setGroupInfo] = useState(null);
const [isLoading, setIsLoading] = useState(true);
const author = useAuthor(post.pubkey);
+ const [showZaps, setShowZaps] = useState(false);
// Fetch group information
useEffect(() => {
@@ -143,6 +146,11 @@ export function GroupPostItem({ post }: GroupPost) {
}
};
+ // Handle toggle between replies and zaps
+ const handleZapToggle = (isOpen: boolean) => {
+ setShowZaps(isOpen);
+ };
+
// Get author information for display
const metadata = author.data?.metadata;
const displayName = metadata?.name || post.pubkey.slice(0, 12);
@@ -286,6 +294,13 @@ export function GroupPostItem({ post }: GroupPost) {
+
+
+ {showZaps && (
+
+ {
+ // Call the refetch function if available
+ const refetchFn = (window as any)[`zapRefetch_${post.id}`];
+ if (refetchFn) refetchFn();
+ }}
+ />
+
+ )}
);
diff --git a/src/components/ui/Header.tsx b/src/components/ui/Header.tsx
index 269f3d98..b9bef088 100644
--- a/src/components/ui/Header.tsx
+++ b/src/components/ui/Header.tsx
@@ -46,7 +46,7 @@ const Header: React.FC = ({ className }) => {
: 'text-gray-500/60 hover:text-gray-700 dark:text-gray-400/60 dark:hover:text-gray-200'}
transition-all flex items-center`}
>
-
+ Groups
tag[0] === "p" && tag[3] === "moderator")
.map(tag => tag[1]) || [];
- // Get approved member pubkeys
+ // Get approved member pubkeys - using GROUP_APPROVED_MEMBERS_LIST instead of GROUP_MEMBER_APPROVAL
const approvedMembersResponse = await nostr.query([{
- kinds: [KINDS.GROUP_MEMBER_APPROVAL],
+ kinds: [KINDS.GROUP_APPROVED_MEMBERS_LIST],
"#a": [communityId],
limit: 100,
}], { signal: AbortSignal.timeout(5000) });
@@ -241,7 +241,7 @@ export default function GroupPostsFeed() {
for (const groupId of groupIds) {
try {
const banEvents = await nostr.query([{
- kinds: [KINDS.GROUP_USER_BANNING],
+ kinds: [KINDS.GROUP_BANNED_MEMBERS_LIST],
"#a": [groupId],
limit: 50,
}], { signal: AbortSignal.timeout(3000) });
From 1bcfdeb169b4104309d7a739ed0ca9428c3336b1 Mon Sep 17 00:00:00 2001
From: Liz Sweigart <127434495+NotThatKindOfDrLiz@users.noreply.github.com>
Date: Thu, 5 Jun 2025 19:14:59 -0500
Subject: [PATCH 3/3] Fix: Increase npm timeout to fix CI build issues with JSR
packages
---
.npmrc | 7 ++++++-
package.json | 14 +++++++-------
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/.npmrc b/.npmrc
index 41583e36..d9bedc97 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,6 @@
-@jsr:registry=https://npm.jsr.io
+fetch-timeout=600000
+fetch-retries=5
+fetch-retry-factor=2
+fetch-retry-mintimeout=20000
+fetch-retry-maxtimeout=120000
+registry=https://registry.npmjs.org/
\ No newline at end of file
diff --git a/package.json b/package.json
index 382eb90c..b8bcca80 100644
--- a/package.json
+++ b/package.json
@@ -4,12 +4,12 @@
"version": "0.0.0",
"type": "module",
"scripts": {
- "dev": "npm i && vite",
- "build": "npm i && vite build && cp dist/index.html dist/404.html",
- "build:dev": "npm i && vite build --mode development",
- "ci": "npm i && tsc -p tsconfig.app.json --noEmit && eslint && vite build",
- "lint": "npm i && eslint .",
- "preview": "npm i && vite preview",
+ "dev": "npm i --fetch-timeout=300000 && vite",
+ "build": "npm i --fetch-timeout=300000 && vite build && cp dist/index.html dist/404.html",
+ "build:dev": "npm i --fetch-timeout=300000 && vite build --mode development",
+ "ci": "npm i --fetch-timeout=300000 && tsc -p tsconfig.app.json --noEmit && eslint && vite build",
+ "lint": "npm i --fetch-timeout=300000 && eslint .",
+ "preview": "npm i --fetch-timeout=300000 && vite preview",
"deploy": "npm run build && npx -y surge@latest dist",
"dev:https": "vite --config vite.config.https.js"
},
@@ -95,4 +95,4 @@
"typescript-eslint": "^8.0.1",
"vite": "^6.3.5"
}
-}
+}
\ No newline at end of file