Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implement user dashboard and fixes linting errors #110

Merged
merged 3 commits into from
Feb 2, 2025

Conversation

evgongora
Copy link
Collaborator

@evgongora evgongora commented Feb 1, 2025

📝 Summary

Implements a new user dashboard featuring impact metrics, project cards, and latest updates with a responsive design.

https://www.loom.com/share/d8fbd04dcd2348aaaddc8c5dbf48f585?sid=8701d41f-41cb-4ec2-9d8b-cf8925f4e225

🔗 Related Issues

Closes #54

🔄 Changes Made

  • Added UserDashboard component with:
  • Featured Impact section with optimized images
  • Impact metrics display
  • Active projects grid
  • Latest updates feed
  • User authentication card
  • Added hover animation

🧪 Testing

Tested responsive layout
Verified image optimization
Checked accessibility
Validated component functionality

✅ Self-Check

[x] Follows TypeScript/React best practices
[x] Implements responsive design
[x] Maintains accessibility standards
[x] Optimizes for performance

💬 Comments

Open to feedback on component structure and styling approach. :)

Future enhancements include real-time data integration and enhanced filtering.

Summary by CodeRabbit

  • New Features

    • Enhanced escrow processing now offers secure claimable balance transactions.
    • The user dashboard displays enriched project information with more detailed structures for a smoother experience.
  • Refactor

    • Improved data handling ensures consistency and reliability in the user dashboard presentation.

Copy link

vercel bot commented Feb 1, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
kindfi ✅ Ready (Inspect) Visit Preview 💬 Add feedback Feb 2, 2025 9:05pm

Copy link
Contributor

coderabbitai bot commented Feb 1, 2025

Walkthrough

This PR updates type annotations and interfaces for the User Dashboard by replacing generic types with more specific ones in both the UI component and its mock data. It also adds new TypeScript interfaces to structure project-related data and extends the escrow functionality by initializing a payer account and creating a claimable balance transaction using the Stellar SDK.

Changes

File(s) Change Summary
apps/web/.../dashboard.tsx, apps/web/.../mock-user-dashboard.tsx Updated type annotations for mapped data: changed from ImpactMetric/Project to ImpactMetric/ProjectDetails to reflect updated data structures.
apps/web/lib/types/user-dashboard.ts Renamed Project interface to ProjectDetails, maintaining existing properties.
apps/web/lib/stellar/escrow.ts Extended escrow functionality with initialization of a payerAccount using the Stellar SDK, and added creation of a transaction with a createClaimableBalance operation.

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant EscrowContract
  participant StellarSDK
  Client->>EscrowContract: initializeEscrowContract()
  EscrowContract->>StellarSDK: Create payerAccount (Account)
  EscrowContract->>StellarSDK: Initialize TransactionBuilder
  StellarSDK-->>EscrowContract: TransactionBuilder instance
  EscrowContract->>StellarSDK: Add createClaimableBalance operation
  EscrowContract->>StellarSDK: Set transaction timeout
  EscrowContract-->>Client: Return transaction result
Loading

Assessment against linked issues

Objective Addressed Explanation
Update type annotations and mock data for user dashboard (#54)
Define structured interfaces for project-related data (#54)

Possibly related PRs

Poem

I’m a rabbit in a code-filled glen,
Hopping through types again and again.
With refined fields and SDK flair,
Stellar dreams dance in the air.
A hop, a jump—code’s complete, oh my! 🐇✨
Happy debugging under the clear blue sky!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2d169cc and 64da587.

📒 Files selected for processing (3)
  • apps/web/components/sections/user/dashboard.tsx (3 hunks)
  • apps/web/lib/mock-data/mock-user-dashboard.tsx (1 hunks)
  • apps/web/lib/types/user-dashboard.ts (1 hunks)
🔇 Additional comments (5)
apps/web/lib/types/user-dashboard.ts (1)

8-20: Add JSDoc documentation and validation constraints.

The ProjectDetails interface could benefit from:

  1. JSDoc documentation for better code maintainability
  2. Validation constraints for numeric fields

Apply this diff to enhance the interface:

+/**
+ * Represents the details of a project in the user dashboard.
+ * @property {string} id - Unique identifier for the project
+ * @property {string} image - URL of the project's image
+ * @property {string} category - Project category
+ * @property {string} title - Project title
+ * @property {string} description - Project description
+ * @property {number} currentAmount - Current amount raised (must be >= 0)
+ * @property {number} targetAmount - Target amount to raise (must be > 0)
+ * @property {number} investors - Number of investors (must be >= 0)
+ * @property {number} minInvestment - Minimum investment amount (must be > 0)
+ * @property {number} percentageComplete - Percentage of target reached (0-100)
+ * @property {Tag[]} tags - Array of tags associated with the project
+ */
 export interface ProjectDetails {
   id: string
   image: string
   category: string
   title: string
   description: string
-  currentAmount: number
-  targetAmount: number
-  investors: number
-  minInvestment: number
-  percentageComplete: number
+  currentAmount: number // @min 0
+  targetAmount: number // @min 0
+  investors: number // @min 0
+  minInvestment: number // @min 0
+  percentageComplete: number // @min 0 @max 100
   tags: Tag[]
 }
apps/web/lib/mock-data/mock-user-dashboard.tsx (2)

2-2: LGTM!

The type updates are consistent with the interface renaming.

Also applies to: 4-4


7-7: Missing image files in public directory.

The image paths referenced in the mock data do not exist in the public/images/ folder.

#!/bin/bash
# Description: Verify that image files exist in the public directory

# Test: Check if the image files exist
for img in "kids.webp" "healthcare.webp"; do
  if [ ! -f "public/images/$img" ]; then
    echo "Warning: Image file $img not found in public/images/"
  fi
done

Also applies to: 25-25

apps/web/components/sections/user/dashboard.tsx (2)

13-13: LGTM!

The type updates are consistent with the interface renaming.

Also applies to: 114-114, 131-131


130-157: Improve date handling in Latest Updates section.

The current implementation has two issues:

  1. Uses current date for all updates instead of storing actual dates
  2. Reuses project data instead of having a dedicated updates structure

Create a dedicated type for updates and use proper date handling:

interface Update {
  id: string
  projectId: string
  title: string
  description: string
  date: string
}

const updates: Update[] = [
  {
    id: 'update-1',
    projectId: 'healthy-kids-id',
    title: 'Healthy Kids Workshop',
    description: 'Monthly progress report shows 15% increase in participation',
    date: '2025-02-15T10:00:00Z'
  }
]

Then update the component to use the new type:

-{mockProjects.map((project: ProjectDetails) => {
-  const formattedDate = new Date().toLocaleDateString(undefined, {
+{updates.map((update) => {
+  const formattedDate = new Date(update.date).toLocaleDateString(undefined, {
     year: 'numeric',
     month: 'long',
     day: 'numeric',
   })

   return (
     <div
-      key={project.id}
+      key={update.id}
       className="p-4 bg-gray-50 rounded-lg hover:bg-gray-100 transition-colors"
     >
       <h3 className="font-medium text-sm mb-1">
-        {project.title}
+        {update.title}
       </h3>
       <p className="text-sm text-gray-600">
-        {project.description}
+        {update.description}
       </p>
       <time
-        dateTime={new Date().toISOString()}
+        dateTime={update.date}
         className="text-xs text-gray-500 mt-2 block"
       >
         {formattedDate}
       </time>
     </div>
   )
 })}
✨ Finishing Touches
  • 📝 Generate Docstrings (Beta)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 77ef376 and 08271c9.

📒 Files selected for processing (1)
  • apps/web/components/sections/user/dashboard.tsx (1 hunks)
🔇 Additional comments (2)
apps/web/components/sections/user/dashboard.tsx (2)

123-133: LGTM! Well-structured metrics grid.

The implementation uses a responsive grid layout with semantic colors for visual hierarchy.


74-223: LGTM! Well-structured and responsive implementation.

The UserDashboard component is well-implemented with:

  • Clear section organization
  • Responsive layouts
  • Proper accessibility attributes
  • Smooth animations and transitions

The suggested improvements focus on type safety and data management but don't impact the current functionality.

apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 08271c9 and 6e4b4c4.

📒 Files selected for processing (3)
  • apps/web/components/sections/user/dashboard.tsx (1 hunks)
  • apps/web/lib/mock-data/mock-user-dashboard.tsx (1 hunks)
  • apps/web/lib/types/userdashboard.ts (1 hunks)
🔇 Additional comments (2)
apps/web/lib/types/userdashboard.ts (1)

3-6: LGTM! Well-structured Tag interface.

The Tag interface is simple, clear, and provides good type safety for tag data.

apps/web/components/sections/user/dashboard.tsx (1)

131-157: Create a dedicated updates data structure.

The Latest Updates section currently reuses project data and uses the current date for all updates. This is a duplicate of a previous suggestion, but the implementation is still pending.

apps/web/lib/types/userdashboard.ts Outdated Show resolved Hide resolved
apps/web/lib/types/userdashboard.ts Outdated Show resolved Hide resolved
apps/web/lib/mock-data/mock-user-dashboard.tsx Outdated Show resolved Hide resolved
apps/web/lib/mock-data/mock-user-dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
@evgongora evgongora requested review from Bran18 and AndlerRL February 1, 2025 16:01
coderabbitai[bot]
coderabbitai bot previously approved these changes Feb 1, 2025
Copy link
Member

@AndlerRL AndlerRL left a comment

Choose a reason for hiding this comment

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

LGTM! I just found a small observation. After that, it should be good to go!

apps/web/lib/types/userdashboard.ts Outdated Show resolved Hide resolved
@coderabbitai coderabbitai bot added documentation Improvements or additions to documentation enhancement New feature improvement or request webapp web app related labels Feb 2, 2025
@evgongora evgongora changed the title feat: implement user dashboard feat: implement user dashboard and fixes linting errors Feb 2, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (1)
apps/web/lib/mock-data/mock-user-dashboard.tsx (1)

15-16: 🛠️ Refactor suggestion

Standardize currency formatting across the dashboard.

Currency values are inconsistent:

  • Project amounts use raw numbers
  • Impact metrics mix USD ($12,890.50) and ETH (0.5 ETH) formats

Consider using a consistent format and currency type throughout the dashboard.

Also applies to: 33-34, 49-49, 59-59

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6e4b4c4 and 7849e8d.

📒 Files selected for processing (9)
  • apps/web/app/api/escrow/initialize/route.ts (1 hunks)
  • apps/web/components/sections/user/dashboard.tsx (1 hunks)
  • apps/web/lib/error.ts (1 hunks)
  • apps/web/lib/mock-data/mock-user-dashboard.tsx (1 hunks)
  • apps/web/lib/stellar/escrow.ts (1 hunks)
  • apps/web/lib/types/escrow.ts (1 hunks)
  • apps/web/lib/types/user-dashboard.ts (1 hunks)
  • apps/web/lib/utils/id.ts (1 hunks)
  • apps/web/lib/validators/escrow.ts (1 hunks)
🧰 Additional context used
📓 Learnings (2)
apps/web/app/api/escrow/initialize/route.ts (1)
Learnt from: AndlerRL
PR: kindfi-org/kindfi#86
File: apps/web/app/api/escrow/initialize/route.ts:7-10
Timestamp: 2025-01-29T09:35:10.981Z
Learning: Documentation for Supabase environment variables, particularly SUPABASE_SERVICE_ROLE_KEY, should be properly maintained in apps/web/.env.sample and validated in lib/supabase/check-env-vars.ts.
apps/web/lib/validators/escrow.ts (1)
Learnt from: AndlerRL
PR: kindfi-org/kindfi#86
File: apps/web/lib/validators/escrow.ts:54-64
Timestamp: 2025-01-27T19:06:49.271Z
Learning: When reviewing code, if suggestions are related to a different feature or task, create a separate issue to track them instead of implementing them in the current PR. This helps maintain focus and track related changes effectively.
🔇 Additional comments (15)
apps/web/lib/error.ts (1)

1-11: LGTM! Type safety improvements.

The addition of generic type parameter T and removal of any type improves type safety and flexibility.

apps/web/lib/mock-data/mock-user-dashboard.tsx (1)

10-10: Verify image file paths.

The image paths /images/kids.webp and /images/healthcare.webp need verification.

Also applies to: 28-28

apps/web/lib/stellar/escrow.ts (1)

65-68: LGTM! Environment variable validation added.

Good addition of environment variable check for STELLAR_NETWORK_URL.

apps/web/lib/validators/escrow.ts (1)

35-101: LGTM! Comprehensive validation implementation.

The validation logic is thorough and well-structured, covering all necessary aspects of escrow initialization including contract parameters, parties, milestones, platform fee, and metadata.

apps/web/app/api/escrow/initialize/route.ts (1)

9-16: LGTM! Proper environment variable validation.

Early validation of required environment variables prevents runtime issues.

apps/web/components/sections/user/dashboard.tsx (3)

134-160: Improve date handling in updates section.

The current implementation uses the current date for all updates instead of project-specific dates.


67-77: Enhance metric cards accessibility.

The metric cards need improved accessibility and interactivity.


97-122: Add error boundaries and loading states.

The Active Projects section should handle loading and error states.

apps/web/lib/types/escrow.ts (7)

1-7: Formatting: Consistent Semicolon Removal in EscrowState

The removal of semicolons in the union type definition is consistently applied and aligns with your formatting style. No functional or semantic issues are introduced by this change.


8-15: Interface Definition: Milestone

The Milestone interface is clear and well-structured. Removing the semicolons from each property maintains uniformity without affecting the clarity or functionality of the type.


17-21: Interface Definition: EscrowParties

The property definitions and inline comments in the EscrowParties interface are well articulated. The semicolon removal is consistently applied, enhancing readability while preserving context.


23-28: Interface Definition: EscrowContractParams

The EscrowContractParams interface is correctly formatted. Consistently omitting semicolons does not detract from the clarity of the property definitions.


30-35: Interface Definition: EscrowMetadata

The EscrowMetadata interface remains concise and clear. The formatting changes (removal of semicolons) are applied uniformly, supporting code style consistency.


37-40: Interface Definition: EscrowInitialization

This interface has been updated in line with the project's formatting guidelines. The removal of semicolons is consistent with the changes in other interfaces in the file.


42-58: Interface Definition: EscrowContract

The EscrowContract interface is well-structured and follows the expected database type conventions, including the usage of snake_case for property names. The semicolon removal is applied uniformly. Just ensure that this naming convention aligns with other parts of your system.

apps/web/lib/types/user-dashboard.ts Outdated Show resolved Hide resolved
apps/web/lib/stellar/escrow.ts Outdated Show resolved Hide resolved
apps/web/lib/validators/escrow.ts Outdated Show resolved Hide resolved
apps/web/app/api/escrow/initialize/route.ts Outdated Show resolved Hide resolved
apps/web/lib/utils/id.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🔭 Outside diff range comments (6)
apps/web/lib/types/user-dashboard.ts (1)

10-22: Consider adding validation constraints for numeric fields.

The Project interface could benefit from runtime validation to ensure data integrity:

  • currentAmount, targetAmount, minInvestment should be positive numbers
  • investors should be a non-negative integer
  • percentageComplete should be between 0 and 100

Consider using zod for runtime validation:

import { z } from 'zod'

export const ProjectSchema = z.object({
  id: z.string(),
  image: z.string().url(),
  category: z.string(),
  title: z.string(),
  description: z.string(),
  currentAmount: z.number().positive(),
  targetAmount: z.number().positive(),
  investors: z.number().int().nonnegative(),
  minInvestment: z.number().positive(),
  percentageComplete: z.number().min(0).max(100),
  tags: z.array(z.object({
    id: z.string(),
    text: z.string()
  }))
})

export type Project = z.infer<typeof ProjectSchema>
apps/web/lib/mock-data/mock-user-dashboard.tsx (1)

43-59: Standardize currency format in impact metrics.

The mock data uses inconsistent currency formats ($12,890.50 vs 0.5 ETH). This could confuse users about the value representation.

Consider standardizing to a single currency format or clearly labeling different currency types:

 export const mockImpactMetrics: ImpactMetricItem[] = [
   {
     label: 'Total Impact',
-    value: '$12,890.50',
+    value: '12,890.50 USD',
     icon: <BarChart2 className="h-5 w-5 text-teal-500" />,
   },
   // ...
   {
     label: 'Available Balance',
-    value: '0.5 ETH',
+    value: '0.5 ETH ($925.00 USD)',
     icon: <Wallet className="h-5 w-5 text-purple-500" />,
   },
 ]
apps/web/lib/stellar/escrow.ts (3)

63-65: Implement the required toXDRObject function.

The toXDRObject function is required by the Stellar SDK but currently throws a "not implemented" error. This will cause runtime failures.

Consider implementing the function:

-toXDRObject: (): xdr.Claimant => {
-  throw new Error('Function not implemented.')
-},
+toXDRObject: (): xdr.Claimant => {
+  return new xdr.Claimant({
+    v0: new xdr.ClaimantV0({
+      destination: xdr.PublicKey.publicKeyTypeEd25519(
+        Buffer.from(params.parties.receiver, 'hex')
+      ),
+      predicate: Predicate.and([
+        Predicate.beforeRelativeTime('12096000'),
+        Predicate.not(Predicate.beforeAbsoluteTime('0')),
+      ]).toXDR(),
+    }),
+  })
+},

77-78: Add environment variable validation.

The code forces the STELLAR_NETWORK_URL as non-null without validation.

Add proper environment variable validation:

-// biome-ignore lint/style/noNonNullAssertion: <explanation>
-const server = new Server(process.env.STELLAR_NETWORK_URL!) // Set your Stellar network URL
+const networkUrl = process.env.STELLAR_NETWORK_URL
+if (!networkUrl) {
+  throw new AppError('STELLAR_NETWORK_URL environment variable is not set', 500)
+}
+const server = new Server(networkUrl)

88-95: Enhance error handling with specific error types.

The error handling could be more specific to help with debugging and client responses.

Consider categorizing errors:

 } catch (error) {
   console.error('Failed to initialize escrow contract:', error)
+  if (error instanceof Server.NotFoundError) {
+    throw new AppError('Account not found on the Stellar network', 404, error)
+  }
+  if (error instanceof Server.NetworkError) {
+    throw new AppError('Failed to connect to Stellar network', 503, error)
+  }
   throw new AppError(
     error instanceof Error ? error.message : 'Unknown error occurred',
     500,
     error,
   )
 }
apps/web/components/sections/user/dashboard.tsx (1)

132-136: Improve date handling in updates section.

Using the current date for all updates is misleading and could confuse users.

Consider adding proper timestamps to the mock data:

-const formattedDate = new Date().toLocaleDateString(undefined, {
+const formattedDate = new Date(project.updatedAt).toLocaleDateString(undefined, {
   year: 'numeric',
   month: 'long',
   day: 'numeric',
 })

-<time dateTime={new Date().toISOString()} className="text-xs text-gray-500 mt-2 block">
+<time dateTime={project.updatedAt} className="text-xs text-gray-500 mt-2 block">

Update the Project interface to include timestamps:

interface Project {
  // ... existing fields
  updatedAt: string; // ISO date string
  createdAt: string; // ISO date string
}

Also applies to: 150-154

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7849e8d and 2d169cc.

📒 Files selected for processing (4)
  • apps/web/components/sections/user/dashboard.tsx (3 hunks)
  • apps/web/lib/mock-data/mock-user-dashboard.tsx (2 hunks)
  • apps/web/lib/stellar/escrow.ts (1 hunks)
  • apps/web/lib/types/user-dashboard.ts (1 hunks)

apps/web/lib/mock-data/mock-user-dashboard.tsx Outdated Show resolved Hide resolved
apps/web/components/sections/user/dashboard.tsx Outdated Show resolved Hide resolved
Copy link
Contributor

@Bran18 Bran18 left a comment

Choose a reason for hiding this comment

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

overall LGTM! I did a few changes and some of the recommendations from coderabbitai and andler. Ready to merge and syn with develop

@Bran18 Bran18 merged commit 1ccfe2e into develop Feb 2, 2025
4 of 5 checks passed
JoE11-y pushed a commit to JoE11-y/kindfi that referenced this pull request Feb 5, 2025
* fix: kebab case for userdashboard types and linting errors

* fix: build issues

---------

Co-authored-by: Brandon Fernández <[email protected]>
Co-authored-by: Bran18 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature improvement or request webapp web app related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create User Dashboard Component - User Dashboard Page
3 participants