feat(fe): save profile image to pinata#158
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThe image upload logic in the Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant BasicInformationForm
participant PinataAPI
User->>BasicInformationForm: Selects image file (input change)
BasicInformationForm->>PinataAPI: POST file to Pinata (with JWT)
PinataAPI-->>BasicInformationForm: Returns IPFS hash (or error)
BasicInformationForm->>BasicInformationForm: Construct IPFS URL, set as preview & form value
Poem
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
50aa4c8 to
e767e7f
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🔭 Outside diff range comments (1)
frontend/src/components/BasicInformationForm.tsx (1)
1-227: 💡 Verification agent🧩 Analysis chain
Fix the Prettier formatting issues
The CI pipeline reported Prettier formatting issues in this file.
🏁 Script executed:
#!/bin/bash # Run Prettier to check formatting issues in the file npx prettier --check frontend/src/components/BasicInformationForm.tsxLength of output: 322
Fix Prettier formatting in BasicInformationForm.tsx
Prettier has detected code style issues in this file. To resolve, run:
npx prettier --write frontend/src/components/BasicInformationForm.tsxThen review and commit the updated formatting.
🧰 Tools
🪛 GitHub Actions: CI
[warning] 1-1: Prettier formatting check failed. Run Prettier with --write to fix code style issues.
🧹 Nitpick comments (2)
frontend/src/components/BasicInformationForm.tsx (2)
64-64: Add file validation before uploadingThe code doesn't validate the file type, size, or dimensions before uploading, which could lead to issues with inappropriate files or very large files.
Add validation for file type, size, and dimensions before uploading:
const file = event.target.files?.[0]; if (file) { + // Validate file type + const validTypes = ['image/jpeg', 'image/png', 'image/gif']; + if (!validTypes.includes(file.type)) { + console.error('Invalid file type'); + toast({ + title: "Invalid file type", + description: "Please upload a JPEG, PNG, or GIF image.", + variant: "destructive", + }); + return; + } + + // Validate file size (5MB max) + const maxSize = 5 * 1024 * 1024; // 5MB + if (file.size > maxSize) { + console.error('File too large'); + toast({ + title: "File too large", + description: "Please upload an image smaller than 5MB.", + variant: "destructive", + }); + return; + } try {
82-82: Consider using a more resilient IPFS gateway strategyUsing a single public IPFS gateway (ipfs.io) may lead to availability issues if that gateway experiences high load or downtime.
Consider implementing a more resilient gateway strategy:
- const ipfsUrl = `https://ipfs.io/ipfs/${data.IpfsHash}`; + // Use Pinata's dedicated gateway or allow configuration + const gateway = import.meta.env.PUBLIC_IPFS_GATEWAY || 'https://ipfs.io'; + const ipfsUrl = `${gateway}/ipfs/${data.IpfsHash}`;
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
📒 Files selected for processing (1)
frontend/src/components/BasicInformationForm.tsx(1 hunks)
🧰 Additional context used
🪛 GitHub Actions: CI
frontend/src/components/BasicInformationForm.tsx
[warning] 1-1: Prettier formatting check failed. Run Prettier with --write to fix code style issues.
| const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', { | ||
| method: 'POST', | ||
| headers: { | ||
| Authorization: `Bearer ${import.meta.env.PUBLIC_PINATA_JWT_KEY}`, |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Verify environment variable availability before using it
The code assumes that PUBLIC_PINATA_JWT_KEY is defined in the environment. If it's missing, this will cause runtime errors.
Add a check to ensure the environment variable is defined:
const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
method: 'POST',
headers: {
- Authorization: `Bearer ${import.meta.env.PUBLIC_PINATA_JWT_KEY}`,
+ Authorization: `Bearer ${import.meta.env.PUBLIC_PINATA_JWT_KEY || ''}`,
},
body: formData,
});
+ if (!import.meta.env.PUBLIC_PINATA_JWT_KEY) {
+ throw new Error('Pinata JWT key is not configured');
+ }Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In frontend/src/components/BasicInformationForm.tsx at line 72, the code uses
the environment variable PUBLIC_PINATA_JWT_KEY without verifying its presence,
which can cause runtime errors if it's undefined. Add a check before using this
variable to confirm it is defined; if not, handle the missing case
appropriately, such as throwing an error or providing a fallback, to prevent
runtime failures.
| const handleImageUpload = async (event: React.ChangeEvent<HTMLInputElement>) => { | ||
| const file = event.target.files?.[0]; | ||
| if (file) { | ||
| const reader = new FileReader(); | ||
| reader.onloadend = () => { | ||
| const base64String = reader.result as string; | ||
| setImagePreview(base64String); | ||
| form.setValue("profileImage", base64String); | ||
| }; | ||
| reader.readAsDataURL(file); | ||
| try { | ||
| const formData = new FormData(); | ||
| formData.append('file', file); | ||
|
|
||
| const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', { | ||
| method: 'POST', | ||
| headers: { | ||
| Authorization: `Bearer ${import.meta.env.PUBLIC_PINATA_JWT_KEY}`, | ||
| }, | ||
| body: formData, | ||
| }); | ||
|
|
||
| if (!response.ok) { | ||
| throw new Error('Failed to upload file to Pinata'); | ||
| } | ||
|
|
||
| const data = await response.json(); | ||
| const ipfsUrl = `https://ipfs.io/ipfs/${data.IpfsHash}`; | ||
| setImagePreview(ipfsUrl); | ||
| form.setValue("profileImage", ipfsUrl); | ||
| } catch (error) { | ||
| console.error('Error uploading file to Pinata:', error); | ||
| } | ||
| } | ||
| }; |
There was a problem hiding this comment.
🛠️ Refactor suggestion
Good implementation of Pinata IPFS integration, but needs better error handling for users
The conversion from a local base64 approach to using Pinata's IPFS service is a good improvement for scalability. However, the current implementation only logs errors to the console without providing any feedback to users when uploads fail.
Consider adding user feedback for upload failures:
const handleImageUpload = async (event: React.ChangeEvent<HTMLInputElement>) => {
const file = event.target.files?.[0];
if (file) {
+ const [isUploading, setIsUploading] = useState(false);
try {
+ setIsUploading(true);
const formData = new FormData();
formData.append('file', file);
const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
method: 'POST',
headers: {
Authorization: `Bearer ${import.meta.env.PUBLIC_PINATA_JWT_KEY}`,
},
body: formData,
});
if (!response.ok) {
throw new Error('Failed to upload file to Pinata');
}
const data = await response.json();
const ipfsUrl = `https://ipfs.io/ipfs/${data.IpfsHash}`;
setImagePreview(ipfsUrl);
form.setValue("profileImage", ipfsUrl);
} catch (error) {
console.error('Error uploading file to Pinata:', error);
+ // Show error to user
+ toast({
+ title: "Upload failed",
+ description: "Failed to upload image. Please try again.",
+ variant: "destructive",
+ });
} finally {
+ setIsUploading(false);
}
}
};Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In frontend/src/components/BasicInformationForm.tsx around lines 62 to 89, the
handleImageUpload function logs errors to the console but does not provide user
feedback on upload failures. Enhance the error handling by adding a user-visible
notification or message when the upload to Pinata fails, such as setting an
error state or displaying a toast alert, so users are informed of the failure
and can take appropriate action.
* Get basic working (#109) * Get basic working * adds rss feeds * added stablewatch founder and stablecoin intern from messaria as approvers on stablecoins feed * fixes to config for grants, sui, and telegram channels (#102) * add query param for selective processing (#103) * adds query param to process * add query param for processing * simplify * add tags * Feat: implement frontend leaderboard (#93) * feat: implement frontend leaderboard * feat: implement a leaderboard in frontend * feat: implemented leaderboard * fix: rebuild implement leaderboard * fix: prettier * fix: prettier * fix: reimplement frontend leaderboard * fix: implement frontend leaderboard * approval rate * sets approval rate and hides curator --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * remove tailwind-scrollbar * added bob to desci feed * Get basic working * set .env.example * nitpicks --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@everything.dev> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> * fix polyfills * Explore Page (#108) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header + Explore Page Style (#113) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header Updates + Web3Auth getUserInfo + Explore Page changes * fmt * coderabbit comments resolved * Profile page (#120) * Update the FE to have the profile page (header and tabs init) * Move tabs to it's own component * Add stats and top badges to overview * Finish the overview tab * Update overview page and init content page * feat(profile-page): add Content and My Feed tags * feat(profile-page): finish profile page static UI * refactor: fmt * [FEATURE] Create Feed Page - DRAFT (#121) * Curate Engine Step 1 * content-progress-configuration step-1 * Curation Settings Part 2 and 3 * CodeRabbit Comments Resolved + Mobile Responsive * Responsiveness: empty State, JSON check --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * update to main * fmt * Feat/submissions page (#127) * Submissions Page + Feed Page + Mobile Responsiveness * fixes * craete-feed authenticated user condition * fmt * remove sqlite --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * Feed Page Tabs (#130) * set tanstack routes (#132) * [Task]: Add connect button to feed page (#131) * feat: Add connect button to feed page * fix: recommit * added back to stablecoins feed since stablewatch forked their own * fix packages, update pg, and ignore cloudflare sockets * fmt --------- Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * uses prod data * Update changes to latest staging * Revert "Update changes to latest staging" This reverts commit cd12908. * Fix Sort By Oldest (#136) * fix: Sort By Oldest * fix: Sort By Oldest * fix: Fix RecentSubmissions Sort Order Update * fix: All feed should be hidden, remove double title --------- Co-authored-by: vohuunhan1310@gmail.com <ethanclark1310@gmail.com> * UI fixes (#138) * UI fixes * fmt --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * Fix: Leaderboard improvements (#140) * fix: Leaderboard improvements * fix: fmt * reorganize * remove unused * rename * clean up * fmt --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * clean up * wallet wip * todo * auth flow, wip * types clean up * fix types * login modal wip * modals * controller, service, successful create account * clean with data, metadata, and pattern, validation, and json schema * add migration doc * add activity and delete user * fix migration * add seed remote method * fix naming * fix script call * file extension * remove build schema * proper build time * fix Dockerfile * rsbuild * Standard Header Component + Responsivenss Fixes (#146) * Standard Header Component + Responsivenss Fixes * fmt * rename Hero --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * fix broken link * don't distribute on staging * fix path * env log * comment out * railway env * fix: Profile adjustments (#153) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * Login Modal Fixes (#154) * Login Modal Fixes * Resolve Comments * container * container fixes --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * organize * fmt * update feeds (#156) * Leaderboard width fixes * feat: save profile image to pinata (#158) * feat(fe): save profile image to pinata * fix: fix comment * Feat Integrate NEAR Solana, Ethereum wallet selection (#159) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * feat: Integrate NEAR wallet selection * fix: run fmt * fix: add function create accesstokenpayload use wallet selector near * fix: resolve conversation * Feed Submission + Feed Review Page (#160) * Feed Review Page and Feed Creation * fmt * coderabbit comments resolved * comments resolved * comments resolved * reset routeTree * minor fixes (#164) * minor fixes * fmt * remove node-compile-cache * reuse user menu * header clean up * remove how it works * clean up * set submissions at root route * fmt * clean * create is coming soon * clean up * user link * Adds caddyfile and frontend clean up (#165) * removes serve static from backend * fmt * fix build * adds caddyfile * clean up submission feed * pnpm lock * fix turbo * fix build * db migration * without time zone * cleans up submission list * Adds shared-db, types package, initial migration (#166) * init * upgrade tsconfigs * shared-db build * shared-db wip * transfer getAllSubmissions * hooked up * moves to shared-db * fmt * update dockerfile * monorepo * working build * migration service * turbo * install pnpm * temp proxy * no include request headers * clean up * proper path * renaming * fmt * update caddyfile * different strategy * use route * fix BACKEND to API * ignore temp * temp remove * back to orig * turn on auto https * disable * route block * clean up * configure host * favicon * add staging domain * http: * set domain adn host * correct bash * matching host * Adds edit feed and image upload (#168) * adds page * image upload and edit feed * update pnpm lock * CSR * vercel json * move * temp disable auth * set image * fix query * submisison service running * Migrates submission service, is running (#169) * init * wip * clean up * feed list clean up * break up functions * fix config path * adds plugins route and integrates with plugin service * remote curate.config.json * plugins table * adds plugin pages * set type * fix feed types * plguin errors * env injection * fix queries * fix migration * fix migration * fix migration * redo migration * decouples moderation * fix status * fix feeds * hide moderation actions --------- Co-authored-by: Zeeshan Ahmad <itexpert120@outlook.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> Co-authored-by: Muhammad Saad Iqbal <saadiqbal.dev@outlook.com> Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: dungpt82 <69756171+dungpt99@users.noreply.github.com>
* Get basic working (#109) * Get basic working * adds rss feeds * added stablewatch founder and stablecoin intern from messaria as approvers on stablecoins feed * fixes to config for grants, sui, and telegram channels (#102) * add query param for selective processing (#103) * adds query param to process * add query param for processing * simplify * add tags * Feat: implement frontend leaderboard (#93) * feat: implement frontend leaderboard * feat: implement a leaderboard in frontend * feat: implemented leaderboard * fix: rebuild implement leaderboard * fix: prettier * fix: prettier * fix: reimplement frontend leaderboard * fix: implement frontend leaderboard * approval rate * sets approval rate and hides curator --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * remove tailwind-scrollbar * added bob to desci feed * Get basic working * set .env.example * nitpicks --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@everything.dev> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> * fix polyfills * Explore Page (#108) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header + Explore Page Style (#113) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header Updates + Web3Auth getUserInfo + Explore Page changes * fmt * coderabbit comments resolved * Profile page (#120) * Update the FE to have the profile page (header and tabs init) * Move tabs to it's own component * Add stats and top badges to overview * Finish the overview tab * Update overview page and init content page * feat(profile-page): add Content and My Feed tags * feat(profile-page): finish profile page static UI * refactor: fmt * [FEATURE] Create Feed Page - DRAFT (#121) * Curate Engine Step 1 * content-progress-configuration step-1 * Curation Settings Part 2 and 3 * CodeRabbit Comments Resolved + Mobile Responsive * Responsiveness: empty State, JSON check --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * update to main * fmt * Feat/submissions page (#127) * Submissions Page + Feed Page + Mobile Responsiveness * fixes * craete-feed authenticated user condition * fmt * remove sqlite --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * Feed Page Tabs (#130) * set tanstack routes (#132) * [Task]: Add connect button to feed page (#131) * feat: Add connect button to feed page * fix: recommit * added back to stablecoins feed since stablewatch forked their own * fix packages, update pg, and ignore cloudflare sockets * fmt --------- Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * uses prod data * Update changes to latest staging * Revert "Update changes to latest staging" This reverts commit cd12908. * Fix Sort By Oldest (#136) * fix: Sort By Oldest * fix: Sort By Oldest * fix: Fix RecentSubmissions Sort Order Update * fix: All feed should be hidden, remove double title --------- Co-authored-by: vohuunhan1310@gmail.com <ethanclark1310@gmail.com> * UI fixes (#138) * UI fixes * fmt --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * Fix: Leaderboard improvements (#140) * fix: Leaderboard improvements * fix: fmt * reorganize * remove unused * rename * clean up * fmt --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * clean up * wallet wip * todo * auth flow, wip * types clean up * fix types * login modal wip * modals * controller, service, successful create account * clean with data, metadata, and pattern, validation, and json schema * add migration doc * add activity and delete user * fix migration * add seed remote method * fix naming * fix script call * file extension * remove build schema * proper build time * fix Dockerfile * rsbuild * Standard Header Component + Responsivenss Fixes (#146) * Standard Header Component + Responsivenss Fixes * fmt * rename Hero --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * fix broken link * don't distribute on staging * fix path * env log * comment out * railway env * fix: Profile adjustments (#153) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * Login Modal Fixes (#154) * Login Modal Fixes * Resolve Comments * container * container fixes --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * organize * fmt * update feeds (#156) * Leaderboard width fixes * feat: save profile image to pinata (#158) * feat(fe): save profile image to pinata * fix: fix comment * Feat Integrate NEAR Solana, Ethereum wallet selection (#159) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * feat: Integrate NEAR wallet selection * fix: run fmt * fix: add function create accesstokenpayload use wallet selector near * fix: resolve conversation * Feed Submission + Feed Review Page (#160) * Feed Review Page and Feed Creation * fmt * coderabbit comments resolved * comments resolved * comments resolved * reset routeTree * minor fixes (#164) * minor fixes * fmt * remove node-compile-cache * reuse user menu * header clean up * remove how it works * clean up * set submissions at root route * fmt * clean * create is coming soon * clean up * user link * Adds caddyfile and frontend clean up (#165) * removes serve static from backend * fmt * fix build * adds caddyfile * clean up submission feed * pnpm lock * fix turbo * fix build * db migration * without time zone * cleans up submission list * Adds shared-db, types package, initial migration (#166) * init * upgrade tsconfigs * shared-db build * shared-db wip * transfer getAllSubmissions * hooked up * moves to shared-db * fmt * update dockerfile * monorepo * working build * migration service * turbo * install pnpm * temp proxy * no include request headers * clean up * proper path * renaming * fmt * update caddyfile * different strategy * use route * fix BACKEND to API * ignore temp * temp remove * back to orig * turn on auto https * disable * route block * clean up * configure host * favicon * add staging domain * http: * set domain adn host * correct bash * matching host * Adds edit feed and image upload (#168) * adds page * image upload and edit feed * update pnpm lock * CSR * vercel json * move * temp disable auth * set image * fix query * submisison service running * Migrates submission service, is running (#169) * init * wip * clean up * feed list clean up * break up functions * fix config path * adds plugins route and integrates with plugin service * remote curate.config.json * plugins table * adds plugin pages * set type * fix feed types * plguin errors * env injection * fix queries * fix migration * fix migration * fix migration * redo migration * decouples moderation * fix status * fix feeds * hide moderation actions * adds overwrite script * migrate timestamps * better date handling --------- Co-authored-by: Zeeshan Ahmad <itexpert120@outlook.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> Co-authored-by: Muhammad Saad Iqbal <saadiqbal.dev@outlook.com> Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: dungpt82 <69756171+dungpt99@users.noreply.github.com>
* Get basic working (#109) * Get basic working * adds rss feeds * added stablewatch founder and stablecoin intern from messaria as approvers on stablecoins feed * fixes to config for grants, sui, and telegram channels (#102) * add query param for selective processing (#103) * adds query param to process * add query param for processing * simplify * add tags * Feat: implement frontend leaderboard (#93) * feat: implement frontend leaderboard * feat: implement a leaderboard in frontend * feat: implemented leaderboard * fix: rebuild implement leaderboard * fix: prettier * fix: prettier * fix: reimplement frontend leaderboard * fix: implement frontend leaderboard * approval rate * sets approval rate and hides curator --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * remove tailwind-scrollbar * added bob to desci feed * Get basic working * set .env.example * nitpicks --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@everything.dev> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> * fix polyfills * Explore Page (#108) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header + Explore Page Style (#113) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header Updates + Web3Auth getUserInfo + Explore Page changes * fmt * coderabbit comments resolved * Profile page (#120) * Update the FE to have the profile page (header and tabs init) * Move tabs to it's own component * Add stats and top badges to overview * Finish the overview tab * Update overview page and init content page * feat(profile-page): add Content and My Feed tags * feat(profile-page): finish profile page static UI * refactor: fmt * [FEATURE] Create Feed Page - DRAFT (#121) * Curate Engine Step 1 * content-progress-configuration step-1 * Curation Settings Part 2 and 3 * CodeRabbit Comments Resolved + Mobile Responsive * Responsiveness: empty State, JSON check --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * update to main * fmt * Feat/submissions page (#127) * Submissions Page + Feed Page + Mobile Responsiveness * fixes * craete-feed authenticated user condition * fmt * remove sqlite --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * Feed Page Tabs (#130) * set tanstack routes (#132) * [Task]: Add connect button to feed page (#131) * feat: Add connect button to feed page * fix: recommit * added back to stablecoins feed since stablewatch forked their own * fix packages, update pg, and ignore cloudflare sockets * fmt --------- Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * uses prod data * Update changes to latest staging * Revert "Update changes to latest staging" This reverts commit cd12908. * Fix Sort By Oldest (#136) * fix: Sort By Oldest * fix: Sort By Oldest * fix: Fix RecentSubmissions Sort Order Update * fix: All feed should be hidden, remove double title --------- Co-authored-by: vohuunhan1310@gmail.com <ethanclark1310@gmail.com> * UI fixes (#138) * UI fixes * fmt --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * Fix: Leaderboard improvements (#140) * fix: Leaderboard improvements * fix: fmt * reorganize * remove unused * rename * clean up * fmt --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * clean up * wallet wip * todo * auth flow, wip * types clean up * fix types * login modal wip * modals * controller, service, successful create account * clean with data, metadata, and pattern, validation, and json schema * add migration doc * add activity and delete user * fix migration * add seed remote method * fix naming * fix script call * file extension * remove build schema * proper build time * fix Dockerfile * rsbuild * Standard Header Component + Responsivenss Fixes (#146) * Standard Header Component + Responsivenss Fixes * fmt * rename Hero --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * fix broken link * don't distribute on staging * fix path * env log * comment out * railway env * fix: Profile adjustments (#153) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * Login Modal Fixes (#154) * Login Modal Fixes * Resolve Comments * container * container fixes --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * organize * fmt * update feeds (#156) * Leaderboard width fixes * feat: save profile image to pinata (#158) * feat(fe): save profile image to pinata * fix: fix comment * Feat Integrate NEAR Solana, Ethereum wallet selection (#159) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * feat: Integrate NEAR wallet selection * fix: run fmt * fix: add function create accesstokenpayload use wallet selector near * fix: resolve conversation * Feed Submission + Feed Review Page (#160) * Feed Review Page and Feed Creation * fmt * coderabbit comments resolved * comments resolved * comments resolved * reset routeTree * minor fixes (#164) * minor fixes * fmt * remove node-compile-cache * reuse user menu * header clean up * remove how it works * clean up * set submissions at root route * fmt * clean * create is coming soon * clean up * user link * Adds caddyfile and frontend clean up (#165) * removes serve static from backend * fmt * fix build * adds caddyfile * clean up submission feed * pnpm lock * fix turbo * fix build * db migration * without time zone * cleans up submission list * Adds shared-db, types package, initial migration (#166) * init * upgrade tsconfigs * shared-db build * shared-db wip * transfer getAllSubmissions * hooked up * moves to shared-db * fmt * update dockerfile * monorepo * working build * migration service * turbo * install pnpm * temp proxy * no include request headers * clean up * proper path * renaming * fmt * update caddyfile * different strategy * use route * fix BACKEND to API * ignore temp * temp remove * back to orig * turn on auto https * disable * route block * clean up * configure host * favicon * add staging domain * http: * set domain adn host * correct bash * matching host * Adds edit feed and image upload (#168) * adds page * image upload and edit feed * update pnpm lock * CSR * vercel json * move * temp disable auth * set image * fix query * submisison service running * Migrates submission service, is running (#169) * init * wip * clean up * feed list clean up * break up functions * fix config path * adds plugins route and integrates with plugin service * remote curate.config.json * plugins table * adds plugin pages * set type * fix feed types * plguin errors * env injection * fix queries * fix migration * fix migration * fix migration * redo migration * decouples moderation * fix status * fix feeds * hide moderation actions * adds overwrite script * migrate timestamps * better date handling * fix --------- Co-authored-by: Zeeshan Ahmad <itexpert120@outlook.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> Co-authored-by: Muhammad Saad Iqbal <saadiqbal.dev@outlook.com> Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: dungpt82 <69756171+dungpt99@users.noreply.github.com>
* Get basic working (#109) * Get basic working * adds rss feeds * added stablewatch founder and stablecoin intern from messaria as approvers on stablecoins feed * fixes to config for grants, sui, and telegram channels (#102) * add query param for selective processing (#103) * adds query param to process * add query param for processing * simplify * add tags * Feat: implement frontend leaderboard (#93) * feat: implement frontend leaderboard * feat: implement a leaderboard in frontend * feat: implemented leaderboard * fix: rebuild implement leaderboard * fix: prettier * fix: prettier * fix: reimplement frontend leaderboard * fix: implement frontend leaderboard * approval rate * sets approval rate and hides curator --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * remove tailwind-scrollbar * added bob to desci feed * Get basic working * set .env.example * nitpicks --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@everything.dev> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> * fix polyfills * Explore Page (#108) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header + Explore Page Style (#113) * Explore Page - commit-1 * Explore Page - commit-2 * explore page - commit-3 * explore page - commit - 4 * explore page - commit - prettier * explore page responsiveness + code Rabbit Comments * code Rabbit Comments resolved * css updates * css changes 2 * header update + mobile responsive * conflicts resolved * Rebase and changes * Fix fmt * Header Updates + Web3Auth getUserInfo + Explore Page changes * fmt * coderabbit comments resolved * Profile page (#120) * Update the FE to have the profile page (header and tabs init) * Move tabs to it's own component * Add stats and top badges to overview * Finish the overview tab * Update overview page and init content page * feat(profile-page): add Content and My Feed tags * feat(profile-page): finish profile page static UI * refactor: fmt * [FEATURE] Create Feed Page - DRAFT (#121) * Curate Engine Step 1 * content-progress-configuration step-1 * Curation Settings Part 2 and 3 * CodeRabbit Comments Resolved + Mobile Responsive * Responsiveness: empty State, JSON check --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * update to main * fmt * Feat/submissions page (#127) * Submissions Page + Feed Page + Mobile Responsiveness * fixes * craete-feed authenticated user condition * fmt * remove sqlite --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * Feed Page Tabs (#130) * set tanstack routes (#132) * [Task]: Add connect button to feed page (#131) * feat: Add connect button to feed page * fix: recommit * added back to stablecoins feed since stablewatch forked their own * fix packages, update pg, and ignore cloudflare sockets * fmt --------- Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * uses prod data * Update changes to latest staging * Revert "Update changes to latest staging" This reverts commit cd12908. * Fix Sort By Oldest (#136) * fix: Sort By Oldest * fix: Sort By Oldest * fix: Fix RecentSubmissions Sort Order Update * fix: All feed should be hidden, remove double title --------- Co-authored-by: vohuunhan1310@gmail.com <ethanclark1310@gmail.com> * UI fixes (#138) * UI fixes * fmt --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * Fix: Leaderboard improvements (#140) * fix: Leaderboard improvements * fix: fmt * reorganize * remove unused * rename * clean up * fmt --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * clean up * wallet wip * todo * auth flow, wip * types clean up * fix types * login modal wip * modals * controller, service, successful create account * clean with data, metadata, and pattern, validation, and json schema * add migration doc * add activity and delete user * fix migration * add seed remote method * fix naming * fix script call * file extension * remove build schema * proper build time * fix Dockerfile * rsbuild * Standard Header Component + Responsivenss Fixes (#146) * Standard Header Component + Responsivenss Fixes * fmt * rename Hero --------- Co-authored-by: Elliot Braem <elliot@ejlbraem.com> * fix broken link * don't distribute on staging * fix path * env log * comment out * railway env * fix: Profile adjustments (#153) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * Login Modal Fixes (#154) * Login Modal Fixes * Resolve Comments * container * container fixes --------- Co-authored-by: Elliot Braem <elliot@everything.dev> * organize * fmt * update feeds (#156) * Leaderboard width fixes * feat: save profile image to pinata (#158) * feat(fe): save profile image to pinata * fix: fix comment * Feat Integrate NEAR Solana, Ethereum wallet selection (#159) * fix: Leaderboard improvements * fix: fmt * fix: Profile adjustments * fix: resolve conversation * feat: Integrate NEAR wallet selection * fix: run fmt * fix: add function create accesstokenpayload use wallet selector near * fix: resolve conversation * Feed Submission + Feed Review Page (#160) * Feed Review Page and Feed Creation * fmt * coderabbit comments resolved * comments resolved * comments resolved * reset routeTree * minor fixes (#164) * minor fixes * fmt * remove node-compile-cache * reuse user menu * header clean up * remove how it works * clean up * set submissions at root route * fmt * clean * create is coming soon * clean up * user link * Adds caddyfile and frontend clean up (#165) * removes serve static from backend * fmt * fix build * adds caddyfile * clean up submission feed * pnpm lock * fix turbo * fix build * db migration * without time zone * cleans up submission list * Adds shared-db, types package, initial migration (#166) * init * upgrade tsconfigs * shared-db build * shared-db wip * transfer getAllSubmissions * hooked up * moves to shared-db * fmt * update dockerfile * monorepo * working build * migration service * turbo * install pnpm * temp proxy * no include request headers * clean up * proper path * renaming * fmt * update caddyfile * different strategy * use route * fix BACKEND to API * ignore temp * temp remove * back to orig * turn on auto https * disable * route block * clean up * configure host * favicon * add staging domain * http: * set domain adn host * correct bash * matching host * Adds edit feed and image upload (#168) * adds page * image upload and edit feed * update pnpm lock * CSR * vercel json * move * temp disable auth * set image * fix query * submisison service running * Migrates submission service, is running (#169) * init * wip * clean up * feed list clean up * break up functions * fix config path * adds plugins route and integrates with plugin service * remote curate.config.json * plugins table * adds plugin pages * set type * fix feed types * plguin errors * env injection * fix queries * fix migration * fix migration * fix migration * redo migration * decouples moderation * fix status * fix feeds * hide moderation actions * adds overwrite script * migrate timestamps * better date handling * fix * Adds auth (#174) * adds fastintear auth, init * auth flow * fmt * adds fastintear auth, init * auth flow * fmt * frontend auth * auth middleware * feed protection * fmt * moderation wip * update lock * migration * moderation actions * hide moderation actions * hack * fix flow * enable hosted service * adds user identities and connect platform * create profile * ensureUserExists * set network for staging * near account id * auth provider id not null * init near * fix monorepo build * fmt * user clean up * update moderation * switch to crosspost connected * fix user id and error * server side * moderation hooks * cleaner logs * Update apps/api/src/services/moderation.service.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update apps/app/src/lib/near.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update apps/app/src/lib/near.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * adds feature flags and moderation service clean up --------- Co-authored-by: Zeeshan Ahmad <itexpert120@outlook.com> Co-authored-by: codingshot <45281667+codingshot@users.noreply.github.com> Co-authored-by: Louis <112561517+louisdevzz@users.noreply.github.com> Co-authored-by: Muhammad Saad Iqbal <saadiqbal.dev@outlook.com> Co-authored-by: ethnclark <ethanclark1310@gmail.com> Co-authored-by: dungpt82 <69756171+dungpt99@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Summary by CodeRabbit
New Features
Bug Fixes