Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
316 commits
Select commit Hold shift + click to select a range
5f13e5a
done with sitemaps
Ebube111 Aug 27, 2025
3872ac0
done with sitemaps
Ebube111 Aug 27, 2025
60812b3
Merge pull request #452 from PotLock/sitemap
Ebube111 Aug 27, 2025
93acf41
done with changes
Ebube111 Sep 8, 2025
72d3e40
Merge pull request #454 from PotLock/env-change-2
Ebube111 Sep 8, 2025
46e4d18
Merge pull request #455 from PotLock/staging
Ebube111 Sep 8, 2025
e47d0c9
hotfix: Adjust social profile revalidation strategy
akaia-shadowfox Sep 22, 2025
d5cc800
Enable DAO accounts (#451)
akaia-shadowfox Sep 29, 2025
6bd6db5
Merge branch 'main' of github.com:PotLock/potlock-nextjs-app into sta…
akaia-shadowfox Sep 29, 2025
ce713c4
hotfix: Allow submitting prefilled social profiles for registration
akaia-shadowfox Sep 30, 2025
3fb30bc
hotfix: Keep contract SWR fetchers deactivated on server
akaia-shadowfox Sep 30, 2025
6ac6ff3
hotfix: Adjust DAO listing application proposal gas
akaia-shadowfox Sep 30, 2025
825c1c3
hotfix: Prevent redundant profile editor rerenders
akaia-shadowfox Sep 30, 2025
e3f4d3f
Provide alternative toast description for DAO profile update proposal…
akaia-shadowfox Sep 30, 2025
be8b5ef
Fixed bug with donation referral
Ebube111 Oct 16, 2025
b1ad7ac
fixing vercel bugs
Ebube111 Oct 16, 2025
1ee228f
Merge pull request #459 from PotLock/donate-referral-bug
Ebube111 Oct 16, 2025
32ddd69
fixing vercel bugs
Ebube111 Oct 16, 2025
734f185
done with changes
Ebube111 Oct 16, 2025
b60ed6b
Merge pull request #461 from PotLock/prod-donate-fix
Ebube111 Oct 16, 2025
47a3955
campaigns homepage done
Ebube111 Oct 22, 2025
e288929
campaigns homepage done
Ebube111 Oct 22, 2025
e3c29ea
Merge pull request #463 from PotLock/campaign-home
Ebube111 Oct 22, 2025
c7a333c
Merge pull request #464 from PotLock/staging
Ebube111 Oct 22, 2025
47eac44
done with changes
Ebube111 Oct 22, 2025
f1b9a5f
done with changes
Ebube111 Oct 22, 2025
d9cd04a
Merge pull request #465 from PotLock/fixed-campaign-home
Ebube111 Oct 22, 2025
f4628f2
Merge pull request #466 from PotLock/staging
Ebube111 Oct 22, 2025
2cd59f7
changes done
Ebube111 Oct 23, 2025
1735076
Merge pull request #467 from PotLock/fixed-c-success
Ebube111 Oct 23, 2025
5839c5a
Merge pull request #468 from PotLock/staging
Ebube111 Oct 23, 2025
8463bf9
updated featured campaigns
Ebube111 Nov 10, 2025
628e1f5
Merge pull request #469 from PotLock/f-cam
Ebube111 Nov 10, 2025
4ac12f3
Merge pull request #470 from PotLock/staging
Ebube111 Nov 10, 2025
912989c
done with changes
Ebube111 Nov 11, 2025
8508957
Merge pull request #471 from PotLock/f-cam-2
Ebube111 Nov 11, 2025
3d9296f
Merge pull request #472 from PotLock/staging
Ebube111 Nov 11, 2025
d06d516
done with changes
Ebube111 Nov 11, 2025
cc70fc4
Merge pull request #473 from PotLock/p-sap
Ebube111 Nov 11, 2025
468bc67
Merge pull request #474 from PotLock/prod
Ebube111 Nov 11, 2025
080d7cf
implemented cross donation
Ebube111 Nov 18, 2025
fd5a808
implemented cross donation
Ebube111 Nov 18, 2025
cecf131
done with cross donation"
Ebube111 Nov 19, 2025
4fea210
done with cross donation"
Ebube111 Nov 19, 2025
9779b89
Merge pull request #475 from PotLock/cross-donation
Ebube111 Nov 19, 2025
0a010a1
Merge pull request #476 from PotLock/staging
Ebube111 Nov 19, 2025
a196d81
done with changes
Ebube111 Nov 20, 2025
70df0eb
done with changes
Ebube111 Nov 20, 2025
e4b8c17
Merge pull request #477 from PotLock/donation-c-fixes
Ebube111 Nov 20, 2025
b3ef4e1
Merge pull request #478 from PotLock/staging
Ebube111 Nov 20, 2025
ac4953d
changes to cross chain
Ebube111 Nov 24, 2025
533238d
done to fixes
Ebube111 Nov 24, 2025
8f1b71d
Merge pull request #480 from PotLock/cross-chain-fix
Ebube111 Nov 24, 2025
48797d8
Merge pull request #481 from PotLock/staging
Ebube111 Nov 24, 2025
94839df
cross chain fix 2
Ebube111 Nov 25, 2025
7ed2e39
cross chain fix 2
Ebube111 Nov 25, 2025
e10f376
Merge pull request #482 from PotLock/cross-chain-fix-2
Ebube111 Nov 25, 2025
6f00be7
done with adding monad chain
Ebube111 Nov 27, 2025
4b8ed8a
done with adding monad chain
Ebube111 Nov 27, 2025
7da33ba
Merge pull request #484 from PotLock/monad-cross-chain
Ebube111 Nov 27, 2025
e141781
Merge pull request #483 from PotLock/staging
Ebube111 Nov 27, 2025
cfa5816
feedbacks worked on
Ebube111 Dec 2, 2025
7959ea7
feedbacks worked on
Ebube111 Dec 2, 2025
8cb25b9
Merge pull request #486 from PotLock/feedback-10
Ebube111 Dec 2, 2025
87d107f
Merge pull request #487 from PotLock/staging
Ebube111 Dec 2, 2025
b53d8f0
added official tag
Ebube111 Dec 2, 2025
c16a243
Merge pull request #488 from PotLock/official-tag
Ebube111 Dec 2, 2025
0df8c93
Merge pull request #489 from PotLock/staging
Ebube111 Dec 2, 2025
c00e931
done with bypass fees
Ebube111 Dec 5, 2025
22e0355
done with bypass fees and donation to project and pot
Ebube111 Dec 5, 2025
9bdfee2
Merge pull request #490 from PotLock/optional-fees
Ebube111 Dec 5, 2025
2791876
Merge pull request #491 from PotLock/staging
Ebube111 Dec 5, 2025
499699d
leader board fix
Ebube111 Dec 9, 2025
314a6ce
leader board fix
Ebube111 Dec 9, 2025
6aaf90d
Merge pull request #492 from PotLock/leaderboard-fix
Ebube111 Dec 9, 2025
cdb30ed
Merge pull request #493 from PotLock/staging
Ebube111 Dec 9, 2025
1636fd7
done with feedback fix
Ebube111 Dec 11, 2025
aa5fc94
done with feedback fix
Ebube111 Dec 11, 2025
2de75dc
added pagination to query
Ebube111 Dec 11, 2025
a5384d9
added pagination to query
Ebube111 Dec 11, 2025
7160c5a
Merge pull request #494 from PotLock/feedback-fix
Ebube111 Dec 11, 2025
2ece8ea
Merge pull request #495 from PotLock/staging
Ebube111 Dec 11, 2025
d050e2e
featured campaign changes
Ebube111 Dec 15, 2025
d892180
featured campaign changes
Ebube111 Dec 15, 2025
1fa48f9
Merge pull request #502 from PotLock/featured-c
Ebube111 Dec 15, 2025
18b86d7
Merge pull request #503 from PotLock/staging
Ebube111 Dec 15, 2025
37121e3
past funding round
Ebube111 Dec 19, 2025
7c5b8ab
Merge pull request #505 from PotLock/f-round
Ebube111 Dec 19, 2025
45ab6f3
Merge pull request #506 from PotLock/staging
Ebube111 Dec 19, 2025
43d1796
done with changes
Ebube111 Dec 21, 2025
bd58e8a
added strknet to selector
Ebube111 Dec 21, 2025
741684a
Merge pull request #507 from PotLock/strk
Ebube111 Dec 21, 2025
0f8a0ed
Merge pull request #508 from PotLock/staging
Ebube111 Dec 21, 2025
5b3d0a7
Fixed date selector, buttons not rendering and added proper error mes…
aunali8812 Dec 26, 2025
784e153
Added success/fail dialogue after changing account status in list
aunali8812 Dec 29, 2025
ca9adf2
Fixed feedbacks
aunali8812 Dec 30, 2025
f4e4c77
Merge pull request #518 from PotLock/fix/UX-issues
Ebube111 Dec 30, 2025
508ff48
Fixed linting issues
aunali8812 Dec 30, 2025
adda9b6
Merge pull request #520 from PotLock/fix/issue-517
Ebube111 Dec 31, 2025
1dd21bc
Fixed vercel deployment failing
aunali8812 Dec 31, 2025
25e240e
Fix deployment 2
aunali8812 Dec 31, 2025
ae634ca
fixed pot form for update
Ebube111 Jan 2, 2026
c8d2c85
fixed pot form for update
Ebube111 Jan 2, 2026
ac8eddc
Merge pull request #522 from PotLock/pot-form
Ebube111 Jan 2, 2026
bca5161
Merge pull request #521 from PotLock/fix/UX-issues
Ebube111 Jan 2, 2026
a2e6893
done with campaign server
Ebube111 Jan 5, 2026
9857348
Merge pull request #523 from PotLock/campaign-server
Ebube111 Jan 5, 2026
d669274
Merge pull request #519 from PotLock/staging
Ebube111 Jan 5, 2026
bd19e55
campaign servers 2 fixed
Ebube111 Jan 5, 2026
33f8f47
Merge pull request #524 from PotLock/campaign-server-2
Ebube111 Jan 5, 2026
0b31d20
Merge pull request #525 from PotLock/staging
Ebube111 Jan 5, 2026
c68e85b
done with campaign server
Ebube111 Jan 5, 2026
18e232c
done with campaign server
Ebube111 Jan 5, 2026
6b422e5
Merge pull request #526 from PotLock/campaign-server-3
Ebube111 Jan 5, 2026
89b9ef7
Merge pull request #527 from PotLock/staging
Ebube111 Jan 5, 2026
5aa9457
done with transition loader
Ebube111 Jan 5, 2026
8fb72cf
done with transition loader
Ebube111 Jan 5, 2026
a03cb0e
Merge pull request #528 from PotLock/campaign-server-4
Ebube111 Jan 5, 2026
a00a69a
Merge pull request #529 from PotLock/staging
Ebube111 Jan 5, 2026
032acc3
Revert from SSR and improvements
aunali8812 Jan 6, 2026
574fc0d
Merge pull request #530 from PotLock/fix/slow-campaign-loading
Ebube111 Jan 7, 2026
8303532
Merge pull request #532 from PotLock/staging
Ebube111 Jan 7, 2026
1f7abd8
Reverted to original campaign generation and added timeout in next co…
aunali8812 Jan 7, 2026
89f74e1
Merge pull request #533 from PotLock/fix/slow-campaign-loading
Ebube111 Jan 7, 2026
a4a1058
Merge pull request #534 from PotLock/staging
Ebube111 Jan 7, 2026
890bcfb
Revert everything to pre-generation
aunali8812 Jan 7, 2026
9a69b2e
Merge pull request #535 from PotLock/fix/slow-campaign-loading
Ebube111 Jan 7, 2026
c8ce980
Merge pull request #536 from PotLock/staging
Ebube111 Jan 7, 2026
90ed888
Revert "Merge pull request #535 from PotLock/fix/slow-campaign-loading"
aunali8812 Jan 7, 2026
7298913
Revert "Merge pull request #533 from PotLock/fix/slow-campaign-loading"
aunali8812 Jan 7, 2026
056de43
Revert "Merge pull request #530 from PotLock/fix/slow-campaign-loading"
aunali8812 Jan 7, 2026
588c496
Revert "Merge pull request #528 from PotLock/campaign-server-4"
aunali8812 Jan 7, 2026
e5c42b2
Revert "Merge pull request #526 from PotLock/campaign-server-3"
aunali8812 Jan 7, 2026
3da83b1
Revert "Merge pull request #524 from PotLock/campaign-server-2"
aunali8812 Jan 7, 2026
2bdee51
Revert "Merge pull request #523 from PotLock/campaign-server"
aunali8812 Jan 7, 2026
0bc35ec
Merge pull request #537 from PotLock/revert-to-pot-form
Ebube111 Jan 8, 2026
5f152f5
Merge pull request #538 from PotLock/staging
Ebube111 Jan 8, 2026
233a22a
vercel build done
Ebube111 Jan 8, 2026
94adb88
vercel build done
Ebube111 Jan 8, 2026
73e1234
Merge pull request #539 from PotLock/vercel-build
Ebube111 Jan 8, 2026
26cef56
Merge pull request #540 from PotLock/staging
Ebube111 Jan 8, 2026
f42aa72
removed ssr
Ebube111 Jan 8, 2026
8895468
removed ssg
Ebube111 Jan 8, 2026
ea7700f
Merge pull request #541 from PotLock/removed-ssr
Ebube111 Jan 8, 2026
fd126fc
Merge pull request #542 from PotLock/staging
Ebube111 Jan 8, 2026
72f1eda
done with single campaign
Ebube111 Jan 8, 2026
9664282
Merge pull request #543 from PotLock/removed-ssr-2
Ebube111 Jan 8, 2026
be748eb
Merge pull request #544 from PotLock/staging
Ebube111 Jan 8, 2026
a8d4aac
Added polling to campaign page after creation
aunali8812 Jan 8, 2026
b3019e1
Merge pull request #546 from PotLock/fix/campaignCreation
Ebube111 Jan 9, 2026
0655644
Merge pull request #547 from PotLock/staging
Ebube111 Jan 9, 2026
a82653f
done with new wallet select integration
Ebube111 Jan 13, 2026
78ca8d6
Merge branch 'staging' of https://github.com/PotLock/potlock-nextjs-a…
Ebube111 Jan 13, 2026
a973c6e
Merge pull request #548 from PotLock/wallet-selector
Ebube111 Jan 13, 2026
53031d1
Merge pull request #549 from PotLock/staging
Ebube111 Jan 13, 2026
a38ef49
done with changes
Ebube111 Jan 13, 2026
532f2a3
Merge pull request #550 from PotLock/campaign-form-issue
Ebube111 Jan 13, 2026
bd0a623
Merge pull request #551 from PotLock/staging
Ebube111 Jan 13, 2026
cca01cc
single campaign seo
Ebube111 Jan 14, 2026
c965951
single campaign seo
Ebube111 Jan 14, 2026
46fe0f6
Merge pull request #552 from PotLock/single-campaign-seo
Ebube111 Jan 14, 2026
b648397
done with fixes
Ebube111 Jan 14, 2026
e3f4dc5
done with fixes
Ebube111 Jan 14, 2026
db71367
added nonoId to build transpile
Ebube111 Jan 14, 2026
613f73b
Merge pull request #553 from PotLock/seo-fix-2
Ebube111 Jan 14, 2026
8da0469
Added RPC as fallback after indexer returns 404
aunali8812 Jan 14, 2026
d98829d
Fixed prettier errors in build
aunali8812 Jan 15, 2026
0a16f87
Merge pull request #554 from PotLock/fix/campaignCreation
Ebube111 Jan 16, 2026
b76cab6
fixed seo issue
Ebube111 Jan 16, 2026
0538f92
fixed seo issue
Ebube111 Jan 16, 2026
70893ba
Merge pull request #555 from PotLock/seo-fix-4
Ebube111 Jan 16, 2026
ef827dd
Merge pull request #556 from PotLock/staging
Ebube111 Jan 16, 2026
4c1dcbf
done with seo fix
Ebube111 Jan 16, 2026
e0900f7
done with seo fix
Ebube111 Jan 16, 2026
1b41069
Merge pull request #557 from PotLock/seo-fix-5
Ebube111 Jan 16, 2026
7f9a8c8
Merge pull request #558 from PotLock/staging
Ebube111 Jan 16, 2026
82498f3
done with changes
Ebube111 Jan 16, 2026
b6342f9
Merge pull request #559 from PotLock/seo-fix-6
Ebube111 Jan 16, 2026
109c75e
Merge pull request #560 from PotLock/staging
Ebube111 Jan 16, 2026
e609a03
done with sitemap changes
Ebube111 Jan 16, 2026
06cc8b9
Merge pull request #561 from PotLock/sitemap-n
Ebube111 Jan 16, 2026
64e1f60
Merge pull request #562 from PotLock/staging
Ebube111 Jan 16, 2026
fccb7da
back to ssr fix
Ebube111 Jan 19, 2026
027701d
back to ssr fix
Ebube111 Jan 19, 2026
76f8583
Merge pull request #563 from PotLock/srr-1
Ebube111 Jan 19, 2026
586aab0
Merge pull request #564 from PotLock/staging
Ebube111 Jan 19, 2026
da2d698
done with changes
Ebube111 Jan 19, 2026
5b72521
Merge pull request #565 from PotLock/ssr-2
Ebube111 Jan 19, 2026
2a852c2
Merge pull request #566 from PotLock/staging
Ebube111 Jan 19, 2026
25e8446
done with ssr
Ebube111 Jan 19, 2026
71b49d1
Merge pull request #567 from PotLock/ssr-3
Ebube111 Jan 19, 2026
821373e
Merge pull request #568 from PotLock/staging
Ebube111 Jan 19, 2026
fe8216f
Revert "Staging to prod"
Ebube111 Jan 19, 2026
a47f00c
Merge pull request #569 from PotLock/revert-568-staging
Ebube111 Jan 19, 2026
3b1b7a1
done with static paths
Ebube111 Jan 19, 2026
f129562
Merge pull request #570 from PotLock/ssr-4
Ebube111 Jan 19, 2026
c74473b
Done with SSR 5
Ebube111 Jan 19, 2026
e5483b1
Merge branch 'staging' into ssr-5
Ebube111 Jan 19, 2026
70baf15
Merge pull request #572 from PotLock/ssr-5
Ebube111 Jan 19, 2026
846857f
Merge pull request #571 from PotLock/staging
Ebube111 Jan 19, 2026
0ea5ee2
Wallet connect done
Ebube111 Jan 21, 2026
8516ffd
fixed build issue
Ebube111 Jan 21, 2026
111b32d
Merge pull request #574 from PotLock/wallet-connect
Ebube111 Jan 21, 2026
4ce98bf
Merge pull request #575 from PotLock/staging
Ebube111 Jan 21, 2026
e281cec
Integrated campaigns and donation sync endpoints
aunali8812 Feb 5, 2026
618f912
Fix linting errors
aunali8812 Feb 5, 2026
3103088
Merge pull request #576 from PotLock/feature/campaign-sync
Ebube111 Feb 5, 2026
3cc24ed
Fixed where sync endpoints hit on staging and prod
aunali8812 Feb 5, 2026
6e5c853
Fix linting issues
aunali8812 Feb 5, 2026
a7ae79f
Merge pull request #577 from PotLock/feature/campaign-sync
aunali8812 Feb 5, 2026
3e74a17
Merge pull request #578 from PotLock/staging
Ebube111 Feb 5, 2026
8ed183c
Add on-demand sync for direct donations, lists, and profiles
aunali8812 Feb 9, 2026
64f4b3a
Fix linting issues
aunali8812 Feb 9, 2026
ef7121d
Merge pull request #579 from PotLock/feature/sync-accounts-lists
Ebube111 Feb 9, 2026
1ce2868
Fix sync endpoints hitting dev for all
aunali8812 Feb 10, 2026
67f8985
fix lint issues
aunali8812 Feb 10, 2026
cfc60a2
Merge pull request #580 from PotLock/feature/sync-accounts-lists
aunali8812 Feb 10, 2026
0ce59da
Merge pull request #581 from PotLock/staging
Ebube111 Feb 11, 2026
318e322
Integrated pots sync endpoints
aunali8812 Feb 11, 2026
267af68
Merge pull request #582 from PotLock/feature/sync-pots
Ebube111 Feb 12, 2026
f5ad421
Added set current button and fixed validation issues on create campai…
aunali8812 Feb 15, 2026
ba4cb82
added ramadan campaign to featured campaigns
Ebube111 Feb 16, 2026
0fc0ebc
Merge pull request #587 from PotLock/chore/ramadan-campaign
Ebube111 Feb 16, 2026
110b43f
Merge pull request #588 from PotLock/staging
Ebube111 Feb 16, 2026
5733bbe
Added back Create Campaign button disabled for invalid/incomplete fields
aunali8812 Feb 16, 2026
b48b9e6
Fixed ts errors
aunali8812 Feb 16, 2026
d583f7d
Used mutate to refresh donation data after campaign donation
aunali8812 Feb 16, 2026
4d21777
Merge pull request #590 from PotLock/fix/campaign-donation-refresh
Ebube111 Feb 17, 2026
26942f5
Merge pull request #591 from PotLock/staging
Ebube111 Feb 17, 2026
0f697f3
fixed cross chain
Ebube111 Feb 17, 2026
607e1d3
done with changes
Ebube111 Feb 17, 2026
75477c3
Merge pull request #592 from PotLock/fix/cross-chain-fee
Ebube111 Feb 17, 2026
a4f0df3
Merge pull request #593 from PotLock/staging
Ebube111 Feb 17, 2026
96b865c
Integrated campaign delete,unescrow and refund sync apis
aunali8812 Feb 19, 2026
8498af5
Merge pull request #594 from PotLock/feature/campaign-sync-delete-ref…
aunali8812 Feb 19, 2026
4a2d403
Merge pull request #586 from PotLock/fix/campaign-form-validation
aunali8812 Feb 19, 2026
afbe26a
Merge pull request #595 from PotLock/staging
aunali8812 Feb 19, 2026
a8bca6c
Added lists deletion, upvotes and remove upvotes sync apis
aunali8812 Feb 22, 2026
2f7f8ab
Merge pull request #596 from PotLock/feature/sync-lists-delete-upvote
aunali8812 Feb 22, 2026
1043a07
Merge pull request #597 from PotLock/staging
aunali8812 Feb 23, 2026
5886e0b
Fixed unit tests failing
aunali8812 Feb 23, 2026
4fa572f
Merge pull request #599 from PotLock/fix/unit-tests
aunali8812 Feb 23, 2026
a790e24
Merge pull request #600 from PotLock/staging
aunali8812 Feb 23, 2026
0825904
fix excessive calls on create campaign page to rpc
aunali8812 Feb 24, 2026
e041fbc
Merge pull request #602 from PotLock/fix/excessive-rpc-calls
aunali8812 Feb 24, 2026
4414fe0
fixed calls to rpc when typing in campaign page
aunali8812 Feb 24, 2026
b7c1c90
Merge pull request #603 from PotLock/fix/excessive-rpc-calls
aunali8812 Feb 24, 2026
3041f9c
Merge pull request #604 from PotLock/staging
aunali8812 Feb 25, 2026
d02d71a
Added useEffect to sync pot when pot matching pool transaction made
aunali8812 Feb 25, 2026
7917b92
Merge pull request #605 from PotLock/feature/matchingpool-sync
aunali8812 Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"=createproject",
"amichaeltest",
"Aptos",
"astraplusplus",
"Attributify",
"bitget",
"builddao",
Expand Down Expand Up @@ -82,6 +83,7 @@
"localnet",
"METAPOOL",
"Metaverse",
"Mintbase",
"Mochi",
"mpdao",
"mpdaovoting",
Expand All @@ -90,6 +92,7 @@
"NADABOT",
"narwallets",
"naxios",
"ndctools",
"nearblocks",
"nearfi",
"openapi",
Expand All @@ -111,6 +114,7 @@
"socialdb",
"Solana",
"SOURCECODE",
"sputnikdao",
"stnear",
"svgr",
"TGAS",
Expand All @@ -124,11 +128,20 @@
"usehooks",
"viem",
"wagmi",
"weigthed",
"welldone",
"wpdas",
"xdefi",
"yearofchef",
"yocto",
"zustand"
]
],
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/.hg/store/**": true,
"**/.git/**": true,
"**/node_modules/**": true,
"**/.vscode/**": true
}
}
57 changes: 54 additions & 3 deletions _tests/homepage.tests.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,64 @@ import * as React from "react";
import { screen, waitFor } from "@testing-library/react";
import { expect, test, vi } from "vitest";

import { NextNavigationMock, renderWithStore } from "./test-env";
import { renderWithStore } from "./test-env";
import Homepage from "../src/pages";

vi.mock("next/navigation", () => NextNavigationMock);
renderWithStore(<Homepage />);
// JSDOM does not implement browser APIs used by embla-carousel
Object.defineProperty(window, "matchMedia", {
writable: true,
value: vi.fn().mockImplementation((query: string) => ({
matches: false,
media: query,
onchange: null,
addListener: vi.fn(),
removeListener: vi.fn(),
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
dispatchEvent: vi.fn(),
})),
});

global.IntersectionObserver = vi.fn().mockImplementation(() => ({
observe: vi.fn(),
unobserve: vi.fn(),
disconnect: vi.fn(),
root: null,
rootMargin: "",
thresholds: [],
takeRecords: vi.fn().mockReturnValue([]),
}));

global.ResizeObserver = vi.fn().mockImplementation(() => ({
observe: vi.fn(),
unobserve: vi.fn(),
disconnect: vi.fn(),
}));

vi.mock("next/navigation", async () => {
const mockRouter = await import("next-router-mock");

return {
...mockRouter,
notFound: vi.fn(),
redirect: vi.fn().mockImplementation((url: string) => {
mockRouter.memoryRouter.setCurrentUrl(url);
}),
};
});

vi.mock("next/router", async () => {
const mockRouter = await import("next-router-mock");

return {
...mockRouter,
useRouter: mockRouter.useRouter,
};
});

test("Homepage", async () => {
renderWithStore(<Homepage />);

await waitFor(
() =>
expect(
Expand Down
15 changes: 14 additions & 1 deletion next.config.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,

experimental: {
esmExternals: "loose",
},
async redirects() {
return [
{
source: "/((?!_next).*)js",
destination: "/404",
permanent: false,
},
// Redirect old campaign subroutes to new tab-based routes
{
source: "/campaign/:campaignId/leaderboard",
destination: "/campaign/:campaignId?tab=leaderboard",
permanent: true,
},
{
source: "/campaign/:campaignId/settings",
destination: "/campaign/:campaignId?tab=settings",
permanent: true,
},
];
},

Expand Down
43 changes: 17 additions & 26 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@potlock/next",
"name": "@potlock/frontend",
"description": "Decentralized funding stack for public goods",
"version": "2.1.0",
"version": "2.2.1",
"packageManager": "yarn@1.22.22",
"private": true,
"type": "module",
Expand All @@ -27,28 +27,8 @@
"@ebay/nice-modal-react": "^1.2.13",
"@formkit/tempo": "^0.1.2",
"@hookform/resolvers": "^3.9.1",
"@near-wallet-selector/bitget-wallet": "^8.10.2",
"@near-wallet-selector/bitte-wallet": "^8.10.2",
"@near-wallet-selector/coin98-wallet": "^8.10.2",
"@near-wallet-selector/core": "^8.10.2",
"@near-wallet-selector/ethereum-wallets": "^8.10.2",
"@near-wallet-selector/here-wallet": "^8.10.2",
"@near-wallet-selector/ledger": "^8.10.2",
"@near-wallet-selector/math-wallet": "^8.10.2",
"@near-wallet-selector/meteor-wallet": "^8.10.2",
"@near-wallet-selector/mintbase-wallet": "^8.10.2",
"@near-wallet-selector/modal-ui": "^8.10.2",
"@near-wallet-selector/my-near-wallet": "^8.10.2",
"@near-wallet-selector/narwallets": "^8.10.2",
"@near-wallet-selector/near-mobile-wallet": "^8.10.2",
"@near-wallet-selector/near-snap": "^8.10.2",
"@near-wallet-selector/nearfi": "^8.10.2",
"@near-wallet-selector/neth": "^8.10.2",
"@near-wallet-selector/nightly": "^8.10.2",
"@near-wallet-selector/ramper-wallet": "^8.10.2",
"@near-wallet-selector/sender": "^8.10.2",
"@near-wallet-selector/welldone-wallet": "^8.10.2",
"@near-wallet-selector/xdefi": "^8.10.2",
"@hot-labs/near-connect": "^0.8.2",
"@near-js/transactions": "^2.5.1",
"@radix-ui/react-accordion": "^1.1.2",
"@radix-ui/react-avatar": "^1.0.4",
"@radix-ui/react-checkbox": "^1.0.4",
Expand All @@ -75,24 +55,31 @@
"@rematch/persist": "^2.1.2",
"@tanstack/react-table": "^8.20.5",
"@tanstack/react-virtual": "^3.11.0",
"@tiptap/core": "^2.23.0",
"@tiptap/extension-link": "^2.23.0",
"@tiptap/react": "^2.23.0",
"@tiptap/starter-kit": "^2.23.0",
Comment on lines +58 to +61
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

TipTap in Next.js: ensure client-only usage or dynamic import to avoid SSR crashes

TipTap relies on DOM APIs. If used during SSR, it can throw (window/document undefined). Verify rich text components import TipTap only on the client (e.g., "use client" + dynamic(() => import(...), { ssr: false })).

Run this quick audit:

Expected:

  • Files using @tiptap/react are client components ("use client") and/or loaded via next/dynamic with ssr: false.

🏁 Script executed:

#!/bin/bash
# Find TipTap imports
rg -n --pretty "@tiptap/(react|core|starter-kit|extension-link)"

# For files that import @tiptap/react, check client directive
for f in $(rg -l '@tiptap/react'); do
  echo "---- $f"
  sed -n '1,5p' "$f" | cat
done

# Look for dynamic import usage (Next.js)
rg -n --pretty 'from "next/dynamic"|from \'next/dynamic\'|dynamic\('

Length of output: 2173


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Searching for TipTap imports..."
rg -n --pretty "@tiptap/(react|core|starter-kit|extension-link)" || true

echo
echo "Printing src/common/ui/form/components/richtext.tsx (first 200 lines)..."
sed -n '1,200p' src/common/ui/form/components/richtext.tsx || true

echo
echo "Searching for 'use client' directives in repo..."
rg -n --hidden --no-ignore '^[[:space:]]*"use client"' || true

echo
echo "Searching for next/dynamic usage in repo..."
rg -n --pretty 'next/dynamic|dynamic\(' || true

Length of output: 15849


TipTap requires client-only rendering — mark the component as client or load it with ssr:false

Found @tiptap usage that runs DOM APIs in src/common/ui/form/components/richtext.tsx but the file has no "use client" directive and isn't dynamically imported — this will break SSR.

  • Files to fix:
    • src/common/ui/form/components/richtext.tsx — imports @tiptap/react and uses document/window (document.createElement, window.prompt).

Quick fixes (choose one):

  • Add "use client" as the first line of src/common/ui/form/components/richtext.tsx:
+ "use client";
import { useCallback, useEffect, useMemo, useRef } from "react";
import Link from "@tiptap/extension-link";
import { EditorContent, useEditor } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
  • Or import the component from its consumer with Next.js dynamic import:
const RichTextEditor = dynamic(() => import('@/common/ui/form/components/richtext'), { ssr: false })
🤖 Prompt for AI Agents
In package.json / src/common/ui/form/components/richtext.tsx around lines 80 to
83, the TipTap-based component uses DOM APIs (document/window) but is not marked
for client rendering; add "use client" as the very first line of
src/common/ui/form/components/richtext.tsx to opt the module into client-side
rendering, or alternatively stop exporting it as a normal module and have
consumers dynamically import it with ssr:false (e.g., use Next.js dynamic
import) so it never runs during SSR; ensure any document/window calls remain
unguarded only in the client module or are wrapped behind runtime checks if you
choose dynamic import.

"@uidotdev/usehooks": "^2.4.1",
"@unocss/reset": "^0.60.4",
"@web3modal/wagmi": "^5.1.10",
"@wpdas/naxios": "2.2.3",
"@wpdas/naxios": "^2.5.0",
"axios": "^1.7.2",
"big.js": "^6.2.1",
"browserslist": "^4.24.2",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"cmdk": "^1.0.0",
"date-fns": "^3.6.0",
"embla-carousel-react": "^8.3.0",
"immer": "^9.0.21",
"lightningcss": "^1.30.1",
"lucide-react": "^0.378.0",
"markdown-truncate": "^1.1.1",
"near-api-js": "^2.1.4",
"near-api-js": "6.5.1",
"next": "^14.2.3",
"node-fetch": "^3.3.2",
"pinata-web3": "^0.5.4",
"qrcode.react": "^4.2.0",
"query-string": "^9.1.0",
"react": "^18.3.1",
"react-copy-to-clipboard": "^5.1.0",
Expand All @@ -115,11 +102,15 @@
"tailwind-merge": "^2.3.0",
"tailwindcss-animate": "^1.0.7",
"temporal-polyfill": "^0.2.5",
"usehooks-ts": "^3.1.1",
"viem": "^2.21.27",
"wagmi": "^2.12.16",
"zod": "^3.23.8",
"zustand": "^5.0.1"
},
"resolutions": {
"@noble/curves": "^1.8.0"
},
"devDependencies": {
"@stylistic/eslint-plugin": "^2.11.0",
"@svgr/webpack": "^8.1.0",
Expand Down
3 changes: 0 additions & 3 deletions public/assets/icons/info-icon.svg

This file was deleted.

Binary file added public/brand-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/common/_config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ export const {
contractMetadata: { version: CONTRACT_SOURCECODE_VERSION, repoUrl: CONTRACT_SOURCECODE_REPO_URL },

core: {
namespaceRoot: {
contract: { accountId: NAMESPACE_ROOT_CONTRACT_ACCOUNT_ID },
},

campaigns: {
contract: { accountId: CAMPAIGNS_CONTRACT_ACCOUNT_ID },
},
Expand Down Expand Up @@ -39,6 +43,7 @@ export const {
},

social: {
platformName: SOCIAL_PLATFORM_NAME,
app: { url: SOCIAL_APP_LINK_URL },
contract: { accountId: SOCIAL_DB_CONTRACT_ACCOUNT_ID },
},
Expand Down
7 changes: 6 additions & 1 deletion src/common/_config/production.env-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,12 @@ export const envConfig: EnvConfig = {
},

core: {
namespaceRoot: {
contract: { accountId: "potlock.near" },
},

campaigns: {
contract: { accountId: "campaigns.potlock.near" },
contract: { accountId: "v1.campaigns.staging.potlock.near" },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Production config points to a staging contract — likely misconfiguration

This sets the mainnet production env to use v1.campaigns.staging.potlock.near while the indexer remains prod (https://api.potlock.io). This can route prod traffic to the wrong contract and/or break indexing and on-chain interactions.

Apply this diff to point to the expected production v1 contract (adjust if your canonical prod account differs):

-      contract: { accountId: "v1.campaigns.staging.potlock.near" },
+      contract: { accountId: "v1.campaigns.potlock.near" },

Run to sanity-check no staging refs remain in the production config:

Add a CI guard that fails if .staging. appears in any production.env-config.* files to prevent future slips.


🏁 Script executed:

#!/bin/bash
set -euo pipefail
rg -n "staging\.potlock\.near" src/common/_config/production.env-config.ts && {
  echo "ERROR: Staging reference found in production env-config."
  exit 1
} || echo "OK: No staging refs in production env-config."

Length of output: 127


Replace staging contract reference in production config

Line 18 of src/common/_config/production.env-config.ts still points at the staging contract, causing your production environment to hit v1.campaigns.staging.potlock.near instead of the live contract. Apply:

-      contract: { accountId: "v1.campaigns.staging.potlock.near" },
+      contract: { accountId: "v1.campaigns.potlock.near" },

And add a CI guard to fail if any production.env-config.* file contains .staging. to prevent this in future.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
contract: { accountId: "v1.campaigns.staging.potlock.near" },
contract: { accountId: "v1.campaigns.potlock.near" },
🤖 Prompt for AI Agents
In src/common/_config/production.env-config.ts around line 18, the
contract.accountId still references the staging contract; update the accountId
to the production contract (e.g., change "v1.campaigns.staging.potlock.near" to
"v1.campaigns.potlock.near" or the correct live contract ID used by prod). Then
add a CI guard that scans all production.env-config.* files for the substring
".staging." and fails the build if any match (e.g., a simple grep check in the
pipeline that exits non‑zero when it finds ".staging.").

},

donation: {
Expand Down Expand Up @@ -43,6 +47,7 @@ export const envConfig: EnvConfig = {
},

social: {
platformName: "NEAR Social",
app: { url: "https://near.social" },
contract: { accountId: "social.near" },
},
Expand Down
5 changes: 5 additions & 0 deletions src/common/_config/staging.env-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ export const envConfig: EnvConfig = {
},

core: {
namespaceRoot: {
contract: { accountId: "potlock.near" },
},

donation: {
contract: { accountId: "donate.potlock.near" },
},
Expand Down Expand Up @@ -43,6 +47,7 @@ export const envConfig: EnvConfig = {
},

social: {
platformName: "NEAR Social",
app: { url: "https://near.social" },
contract: { accountId: "social.near" },
},
Expand Down
5 changes: 5 additions & 0 deletions src/common/_config/test.env-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ export const envConfig: EnvConfig = {
},

core: {
namespaceRoot: {
contract: { accountId: "potlock.testnet" },
},

donation: {
contract: { accountId: "donate.potlock.testnet" },
},
Expand Down Expand Up @@ -41,6 +45,7 @@ export const envConfig: EnvConfig = {
},

social: {
platformName: "NEAR Social (testnet)",
app: { url: "https://test.near.social" },
contract: { accountId: "v1.social08.testnet" },
},
Expand Down
Loading