Skip to content

Dashboard: Move project pages inside (sidebar) layout #7144

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

Merged

Conversation

MananTank
Copy link
Member

@MananTank MananTank commented May 23, 2025


PR-Codex overview

This PR focuses on restructuring the file organization for a project by moving various components and pages into a new (sidebar) directory, which improves the modularity and clarity of the project structure.

Detailed summary

  • Moved multiple components and pages into a new (sidebar) directory.
  • Updated import paths accordingly in various files.
  • Adjusted the structure of files related to engine, connect, and assets.
  • Ensured that components like RpcMethodBarChartCard and ProjectFTUX are now housed under the sidebar structure.
  • Maintained functionality while enhancing project organization.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Summary by CodeRabbit

  • Chores
    • Updated and standardized import paths across the dashboard and component files for improved code organization and maintainability.
    • No changes to end-user functionality or visible features.

@vercel vercel bot temporarily deployed to Preview – wallet-ui May 23, 2025 17:44 Inactive
@vercel vercel bot temporarily deployed to Preview – docs-v2 May 23, 2025 17:44 Inactive
Copy link

vercel bot commented May 23, 2025

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

Name Status Preview Comments Updated (UTC)
thirdweb-www ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 23, 2025 6:19pm
4 Skipped Deployments
Name Status Preview Comments Updated (UTC)
docs-v2 ⬜️ Skipped (Inspect) May 23, 2025 6:19pm
login ⬜️ Skipped (Inspect) May 23, 2025 6:19pm
thirdweb_playground ⬜️ Skipped (Inspect) May 23, 2025 6:19pm
wallet-ui ⬜️ Skipped (Inspect) May 23, 2025 6:19pm

Copy link
Contributor

coderabbitai bot commented May 23, 2025

Walkthrough

This change set standardizes and corrects import paths throughout the dashboard application. The updates primarily adjust relative and absolute import paths to match a reorganized directory structure, often introducing or updating the (sidebar) directory segment. No logic, control flow, or exported entities are modified; only import statements are affected.

Changes

File(s) Change Summary
.../useEngine.ts Updated import paths for ResultItem and EngineStatus to include (sidebar) in the directory structure.
.../primary-dashboard-button.tsx
.../custom-contract.tsx
.../modal.tsx
Changed import path for useAddContractToProject to include (sidebar) segment.
.../contract-table.tsx Changed import path for removeContractFromProject to include (sidebar) segment.
.../create-token-page.stories.tsx Changed import of storybookThirdwebClient to use an absolute or simplified path.
.../token-distribution.tsx Changed import of Form to use an alias-based path instead of a deeply nested relative path.
.../assets/create/page.tsx
.../assets/page.tsx
.../engine/dedicated/(general)/page.tsx
.../nebula/page.tsx
.../settings/page.tsx
.../engine/page.tsx
.../page.tsx
Adjusted relative import paths for several modules, often adding an extra directory level for accuracy.
.../ProjectFTUX.tsx
.../ProjectSidebarLayout.tsx
Updated import paths for icon components, adjusting directory traversal depth.
.../RpcMethodBarChartCardUI.tsx
.../TransactionCharts.tsx
Corrected relative import paths for chart and UI components.
.../connect/account-abstraction/factories/page.tsx
.../connect/account-abstraction/settings/page.tsx
.../connect/account-abstraction/page.tsx
.../connect/in-app-wallets/settings/page.tsx
.../connect/in-app-wallets/users/page.tsx
.../connect/universal-bridge/page.tsx
.../connect/universal-bridge/webhooks/page.tsx
Standardized and cleaned up import paths, using shorter or more consistent relative or absolute imports.
.../contracts/page.tsx Simplified import paths for client, page, and authentication utilities.
.../engine/cloud/analytics/filter.tsx
.../engine/cloud/analytics/ftux.client.tsx
.../engine/cloud/analytics/send-test-tx.client.tsx
.../engine/cloud/analytics/tx-table/tx-table-ui.tsx
Updated imports to use absolute paths or cleaned up redundant imports.
.../engine/cloud/layout.tsx
.../engine/cloud/lib/analytics.ts
.../engine/cloud/lib/vault.client.ts
.../engine/cloud/page.tsx
Adjusted import paths for icons and utility functions to reflect new directory structure.
.../engine/cloud/server-wallets/components/create-server-wallet.client.tsx
.../engine/cloud/server-wallets/components/try-it-out.tsx
.../engine/cloud/server-wallets/page.tsx
.../engine/cloud/server-wallets/wallet-table/wallet-table-ui.client.tsx
Reorganized and consolidated import statements, switching to absolute paths and removing duplicates.
.../engine/cloud/tx/[id]/transaction-details-ui.tsx Changed import of ChainIconClient to use an absolute path.
.../engine/cloud/vault/components/create-vault-account.client.tsx
.../engine/cloud/vault/components/rotate-admin-key.client.tsx
Changed import of useTrack to use a simplified absolute path.
.../engine/cloud/vault/page.tsx Corrected import path for getAuthToken by adding one directory level.
.../engine/dedicated/(general)/layout.tsx
.../engine/dedicated/(general)/overview/engine-instances-table.tsx
Updated import path for EngineIcon to a deeper relative path.
.../engine/dedicated/(instance)/[engineId]/layout.tsx
.../engine/dedicated/_utils/getEngineInstancePageMeta.ts
Adjusted import paths for account and authentication utilities to deeper relative paths.
.../layout.tsx Updated multiple import paths to reflect deeper or different directory structure.
.../AccountAbstractionAnalytics/index.tsx Changed import of searchParams to include (sidebar) in the path.

Sequence Diagram(s)

No sequence diagrams generated as the changes are limited to import path adjustments and do not affect control flow or introduce new features.

Suggested reviewers

  • MananTank

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (1)
  • TEAM-0000: Entity not found: Issue - Could not find referenced Issue.

📜 Recent review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 5e21485 and 362c086.

📒 Files selected for processing (48)
  • apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts (1 hunks)
  • apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_layout/primary-dashboard-button.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/create-token-page.stories.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/distribution/token-distribution.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/RpcMethodBarChartCard/RpcMethodBarChartCardUI.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/Transactions/TransactionCharts.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/factories/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/page.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/settings/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/settings/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/users/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/webhooks/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/filter.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/ftux.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/send-test-tx.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/analytics.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/vault.client.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/create-server-wallet.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/try-it-out.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table-ui.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/create-vault-account.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/rotate-admin-key.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/nebula/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/import-contract/modal.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/tables/contract-table.tsx (1 hunks)
  • apps/dashboard/src/components/smart-wallets/AccountAbstractionAnalytics/index.tsx (1 hunks)
✅ Files skipped from review due to trivial changes (9)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/rotate-admin-key.client.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/try-it-out.tsx
  • apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_layout/primary-dashboard-button.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/webhooks/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/layout.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table-ui.client.tsx
🚧 Files skipped from review as they are similar to previous changes (39)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/ftux.client.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/create-vault-account.client.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/create-token-page.stories.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/vault.client.ts
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/analytics.ts
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/layout.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/users/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/RpcMethodBarChartCard/RpcMethodBarChartCardUI.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/layout.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/nebula/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/send-test-tx.client.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/distribution/token-distribution.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/Transactions/TransactionCharts.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/factories/page.tsx
  • apps/dashboard/src/components/smart-wallets/AccountAbstractionAnalytics/index.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx
  • apps/dashboard/src/components/contract-components/import-contract/modal.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/create-server-wallet.client.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx
  • apps/dashboard/src/components/contract-components/tables/contract-table.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/settings/page.tsx
  • apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/page.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/filter.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/page.tsx
  • apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/settings/page.tsx
⏰ Context from checks skipped due to timeout of 90000ms (7)
  • GitHub Check: E2E Tests (pnpm, esbuild)
  • GitHub Check: E2E Tests (pnpm, webpack)
  • GitHub Check: Size
  • GitHub Check: E2E Tests (pnpm, vite)
  • GitHub Check: Build Packages
  • GitHub Check: Lint Packages
  • GitHub Check: Analyze (javascript)
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 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.
    • Explain this complex logic.
    • 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 explain this code block.
    • @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 explain its main purpose.
    • @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.

Support

Need 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)

  • @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.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @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.

@vercel vercel bot temporarily deployed to Preview – thirdweb_playground May 23, 2025 17:44 Inactive
@vercel vercel bot temporarily deployed to Preview – login May 23, 2025 17:44 Inactive
@MananTank MananTank marked this pull request as ready for review May 23, 2025 17:44
@MananTank MananTank requested review from a team as code owners May 23, 2025 17:44
@github-actions github-actions bot added the Dashboard Involves changes to the Dashboard. label May 23, 2025
Copy link
Member Author

MananTank commented May 23, 2025


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • merge-queue - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

Copy link

codecov bot commented May 23, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 55.62%. Comparing base (f9b609e) to head (362c086).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7144   +/-   ##
=======================================
  Coverage   55.62%   55.62%           
=======================================
  Files         902      902           
  Lines       58190    58190           
  Branches     4098     4098           
=======================================
  Hits        32369    32369           
  Misses      25716    25716           
  Partials      105      105           
Flag Coverage Δ
packages 55.62% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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: 2

🧹 Nitpick comments (26)
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx (1)

3-3: Confirm and streamline the updated import path
The relative path adjustment correctly reflects the deeper sidebar layout. For consistency and maintainability with other imports (e.g., @/api/projects), consider switching to the absolute alias:

-import { getAuthToken } from "../../../../../api/lib/getAuthToken";
+import { getAuthToken } from "@/api/lib/getAuthToken";
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/settings/page.tsx (1)

6-6: Path update is correct. The relative import now correctly points to the updated location of getValidTeamPlan. To simplify and align with your existing alias usage (e.g., @/api/...), consider switching to an alias import such as:

import { getValidTeamPlan } from "@/components/TeamHeader/getValidTeamPlan";

This will make the code less brittle when folder structures change.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/analytics.ts (1)

2-3: Import paths correctly adjusted. The relative paths for TransactionStats and getAuthToken now reflect the deeper directory nesting. For better maintainability, consider using path aliases instead of long relative chains, e.g.:

import type { TransactionStats } from "@/types/analytics";
import { getAuthToken } from "@/api/lib/getAuthToken";

This approach reduces the surface area for future path-related errors.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/page.tsx (1)

17-18: Deep relative imports updated. The imports for getAuthToken, getAuthTokenWalletAddress, and loginRedirect now match the new directory depth. To keep imports concise and aligned with other modules, you might prefer alias-based imports:

import { getAuthToken, getAuthTokenWalletAddress } from "@/api/lib/getAuthToken";
import { loginRedirect } from "@/login/loginRedirect";

This reduces the maintenance overhead when file locations shift.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx (1)

12-17: Deeply nested icon imports. The sidebar icons are imported via long relative paths. Consider defining path aliases for these components (e.g., @/app/(dashboard)/(chain)/components/server/icons/ContractIcon) to simplify imports and reduce refactor friction.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx (1)

17-20: Standardize icon imports. Similar to other modules, these icon imports have grown deep with multiple ../ segments. Switching to alias imports (for example, @/app/(dashboard)/(chain)/components/server/icons/ContractIcon) will make the code more maintainable and less error-prone when reorganizing directories.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx (3)

5-5: Consider using the @ alias for consistency.
Instead of a deep relative path, you can import DeployedContractsPage via the root alias:

- import { DeployedContractsPage } from "../../../../../account/contracts/_components/DeployedContractsPage";
+ import { DeployedContractsPage } from "@/account/contracts/_components/DeployedContractsPage";

6-6: Use the root alias for api utilities.
Align with other imports by switching to:

- import { getAuthToken } from "../../../../../api/lib/getAuthToken";
+ import { getAuthToken } from "@/api/lib/getAuthToken";

7-7: Use the root alias for login utilities.
For consistency, update to:

- import { loginRedirect } from "../../../../../login/loginRedirect";
+ import { loginRedirect } from "@/login/loginRedirect";
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx (1)

5-5: Prefer root alias over deep relative path.
Convert to:

- import { getAuthToken } from "../../../../../../api/lib/getAuthToken";
+ import { getAuthToken } from "@/api/lib/getAuthToken";
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx (2)

3-3: Prefer root alias for auth utilities.
Switch relative import to:

- import { getAuthToken } from "../../../../../../../api/lib/getAuthToken";
+ import { getAuthToken } from "@/api/lib/getAuthToken";

4-4: Prefer root alias for login redirect.
Update to:

- import { loginRedirect } from "../../../../../../../login/loginRedirect";
+ import { loginRedirect } from "@/login/loginRedirect";
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/RpcMethodBarChartCard/RpcMethodBarChartCardUI.tsx (1)

18-18: Use alias import for shared components.
Replace deep relative path with:

- import { EmptyStateCard } from "../../../../../components/Analytics/EmptyStateCard";
+ import { EmptyStateCard } from "@/components/Analytics/EmptyStateCard";
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/users/page.tsx (1)

4-5: Avoid deep relative imports for auth utilities
The updated import paths correctly reflect the new (sidebar) nesting, but these extremely deep relative references are brittle. Since other modules in this file use the @/ alias (e.g. @/api/projects), consider switching to absolute imports:

-import { getAuthToken } from "../../../../../../../api/lib/getAuthToken";
-import { loginRedirect } from "../../../../../../../login/loginRedirect";
+import { getAuthToken } from "@/api/lib/getAuthToken";
+import { loginRedirect } from "@/login/loginRedirect";

This will improve readability and reduce maintenance overhead.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/layout.tsx (1)

6-6: Consider using an alias for the EngineIcon import
The new relative path is correct, but its depth makes it hard to follow. If your Next.js/TypeScript config supports path aliases, you could simplify to something like:

-import { EngineIcon } from "../../../../../../(dashboard)/(chain)/components/server/icons/EngineIcon";
+import { EngineIcon } from "@/chain/components/server/icons/EngineIcon";

This aligns with the alias usage for other UI components and reduces fragility.

apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_layout/primary-dashboard-button.tsx (1)

28-28: Correct hook import & consider alias
The updated relative import for useAddContractToProject is accurate given the reorganization:

import { useAddContractToProject } from "../../../../../team/[team_slug]/[project_slug]/(sidebar)/hooks/project-contracts";

However, to maintain consistency with other absolute imports (e.g., @/components/ui/...), you might define a path alias for sidebar hooks and import via:

-import { useAddContractToProject } from "../../../../../team/[team_slug]/[project_slug]/(sidebar)/hooks/project-contracts";
+import { useAddContractToProject } from "@/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/hooks/project-contracts";

This will simplify refactors in the future.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts (1)

2-4: Consistent path adjustments; consider absolute aliases
The imports for authentication and account utilities have been deepened to match the file’s new location:

import { getValidAccount } from "../../../../../../../account/settings/getAccount";
import { getAuthToken }     from "../../../../../../../api/lib/getAuthToken";
import { loginRedirect }    from "../../../../../../../login/loginRedirect";

For better maintainability, leverage existing project aliases (e.g., @/account/settings/getAccount, @/api/lib/getAuthToken, @/login/loginRedirect) to avoid fragile relative paths.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/nebula/page.tsx (1)

5-6: Corrected import depth for auth utilities
The relative paths for getAuthToken and loginRedirect have been adjusted to accommodate the new (sidebar) nesting. Everything looks aligned with the directory structure. For enhanced readability and resilience to future refactors, consider switching to absolute imports (e.g., @/api/lib/getAuthToken, @/login/loginRedirect).

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx (1)

6-8: Align import paths with new (sidebar) layout
The updated relative paths for getValidAccount, getAuthToken, and loginRedirect correctly reflect the deeper nesting. To reduce maintenance overhead and avoid verbose relative paths, consider adopting absolute aliases (for example, @/account/settings/getAccount, @/api/lib/getAuthToken, @/login/loginRedirect).

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/page.tsx (1)

3-3: Update relative import for authentication
The import path for getAuthToken has been extended by one directory level to align with the deep (sidebar)/engine/cloud/vault hierarchy. Please confirm this seven-level ascent resolves correctly. As a best practice, you may want to use an absolute import alias (e.g., @/api/lib/getAuthToken) to simplify path handling.

apps/dashboard/src/components/smart-wallets/AccountAbstractionAnalytics/index.tsx (1)

14-14: Include (sidebar) in searchParams import path
The import for searchParams has been updated to point into the new (sidebar)/connect/account-abstraction directory—nice catch. Verify that the path resolves correctly in both client and server contexts. For maintainability, consider using an absolute alias (e.g., @/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/search-params) if supported.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/page.tsx (1)

2-2: Unify import style and paths
I see the imports for Spinner now use the @/components alias, while other UI imports (PayAnalyticsFilter, getUniversalBridgeFiltersFromSearchParams) rely on bare aliases (components/..., lib/...). For consistency and clarity, pick one alias strategy—either prefix all with @/ or configure the loader to recognize bare path aliases. E.g.:

-import { Spinner } from "@/components/ui/Spinner/Spinner";
+import { Spinner } from "components/ui/Spinner/Spinner";
-import { PayAnalyticsFilter } from "components/pay/PayAnalytics/components/PayAnalyticsFilter";
+import { PayAnalyticsFilter } from "@/components/pay/PayAnalytics/components/PayAnalyticsFilter";
-import { getUniversalBridgeFiltersFromSearchParams } from "lib/time";
+import { getUniversalBridgeFiltersFromSearchParams } from "@/lib/time";

Also applies to: 4-5

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx (1)

11-13: Correct Relative Imports: The import paths for getValidAccount, getAuthToken, and loginRedirect have been accurately adjusted to the new sidebar layout’s depth. Verify these modules exist at the specified locations and resolve without errors. Consider switching to absolute alias imports (e.g., @/api/lib/getAuthToken, @/login/loginRedirect) to improve readability and reduce deep relative path maintenance.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx (1)

39-43: Import Paths Adjusted for Sidebar Restructure: The relative paths for getClientThirdwebClient, getAuthToken, loginRedirect, CombinedBarChartCard, and PieChartCard have been deepened to reflect the new (sidebar) directory. Ensure these imports resolve correctly; consider consolidating common analytics component imports behind an alias for consistency.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/settings/page.tsx (1)

6-6: Standardizing Import Paths: Switched getClientThirdwebClient to an absolute alias and updated getAuthToken and getValidTeamPlan relative paths to account for the new sidebar depth. Confirm these paths resolve and consider migrating team plan utilities to top-level aliases for symmetry.

Also applies to: 10-11

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/layout.tsx (1)

8-8: Simplify CustomChatButton import
This deep relative path (../../../../../nebula-app/(app)/components/CustomChat/CustomChatButton) is brittle and hard to maintain. Consider using a project alias (e.g. @/nebula-app/(app)/components/CustomChat/CustomChatButton) for clarity and easier refactoring.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 916ecf4 and 5e21485.

📒 Files selected for processing (48)
  • apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts (1 hunks)
  • apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_layout/primary-dashboard-button.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/create-token-page.stories.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/distribution/token-distribution.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectFTUX/ProjectFTUX.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/RpcMethodBarChartCard/RpcMethodBarChartCardUI.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/Transactions/TransactionCharts.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/factories/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/page.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/settings/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/settings/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/in-app-wallets/users/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/webhooks/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/filter.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/ftux.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/send-test-tx.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/analytics.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/vault.client.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/create-server-wallet.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/try-it-out.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table-ui.client.tsx (2 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/create-vault-account.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/rotate-admin-key.client.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/_utils/getEngineInstancePageMeta.ts (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/layout.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/nebula/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/page.tsx (1 hunks)
  • apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/settings/page.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/import-contract/modal.tsx (1 hunks)
  • apps/dashboard/src/components/contract-components/tables/contract-table.tsx (1 hunks)
  • apps/dashboard/src/components/smart-wallets/AccountAbstractionAnalytics/index.tsx (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (7)
  • GitHub Check: E2E Tests (pnpm, esbuild)
  • GitHub Check: Lint Packages
  • GitHub Check: Unit Tests
  • GitHub Check: E2E Tests (pnpm, webpack)
  • GitHub Check: Size
  • GitHub Check: E2E Tests (pnpm, vite)
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (36)
apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/create-token-page.stories.tsx (1)

2-2: Ensure alias is correctly configured for the new import path
The update replaces a deep relative import with stories/utils. Please verify that your tsconfig.json (and, if applicable, next.config.js or webpack config) defines a path alias for stories/* so that this module resolves correctly at build time.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/ftux.client.tsx (1)

3-3: Approve absolute import for Button
Replaced a deeply nested relative path with the @/components/ui/button alias, improving import clarity and consistency across the codebase.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/create/distribution/token-distribution.tsx (1)

8-8: Approve absolute import for Form
Switching to the @/components/ui/form alias makes the import path shorter and more maintainable, aligning with the project’s conventions.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/try-it-out.tsx (1)

2-2: Approve absolute import for Alert components
Importing Alert, AlertDescription, and AlertTitle from @/components/ui/alert cleans up the path and matches the alias pattern used elsewhere.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/wallet-table/wallet-table-ui.client.tsx (4)

6-6: Approve absolute import for Button
Using @/components/ui/button here maintains consistency with other UI component imports.


7-14: Approve pagination imports consolidation
All pagination-related components are now consistently imported from @/components/ui/pagination, reducing redundancy and improving readability.


27-28: Approve hook imports via alias
Consolidating useThirdwebClient and useDashboardRouter imports under their alias paths enhances module resolution clarity.


32-32: Verify import alias for useV5DashboardChain
The path lib/v5-adapter differs from the @/lib/... pattern used elsewhere. Please confirm that your tsconfig supports this alias and update to @/lib/v5-adapter if necessary.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/tx-table/tx-table-ui.tsx (1)

34-34: Verify import alias for ChainIconClient
The import from "components/icons/ChainIcon" omits the leading @/. Confirm that your path aliases include components/* or switch to @/components/icons/ChainIcon for consistency.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/tx/[id]/transaction-details-ui.tsx (1)

12-12: Simplified import path for ChainIconClient.
The deep relative path was replaced with a concise alias import, improving readability and maintainability.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/create-vault-account.client.tsx (1)

18-18: Standardized import for analytics tracking hook.
Swapped the relative path for useTrack to an absolute alias, aligning with the project’s import conventions.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/vault/components/rotate-admin-key.client.tsx (1)

20-20: Standardized import for analytics tracking hook.
The useTrack hook import was updated to a root-level alias path, matching the pattern used across vault components.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/analytics/send-test-tx.client.tsx (3)

5-5: Consolidated UI component import for CopyTextButton.
Removed a duplicate or deep relative import in favor of a single absolute alias path, improving clarity.


19-19: Standardized import for analytics tracking hook.
The useTrack import was updated to use the root alias, keeping import paths uniform.


20-20: Standardized import for chain data hook.
Updated useAllChainsData to a concise alias import, enhancing consistency across analytics components.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/components/create-server-wallet.client.tsx (2)

2-2: Simplified import path for engineCloudProxy.
Changed from a nested relative path to an absolute alias, reducing path complexity.


16-16: Standardized import for analytics tracking hook.
Moved useTrack to a root alias import, aligning with other cloud server-wallets components.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/ProjectSidebarLayout.tsx (1)

3-3: Great use of alias for Badge. Moving the Badge import to @/components/ui/badge improves consistency and readability.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/contracts/page.tsx (1)

3-3: Import path alias is correctly used here.
Switching to the absolute @/constants/thirdweb-client.client import improves maintainability.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/lib/vault.client.ts (1)

5-5: Alias import for updateProjectClient is correctly applied.
Using the @3rdweb-sdk/react alias aligns with existing conventions and keeps paths clear.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/universal-bridge/webhooks/page.tsx (1)

2-2: Absolute import enhances clarity
Switching from a nested relative path to:

import { getTeamBySlug } from "@/api/team";

aligns with the codebase’s use of root aliases and improves readability. Great improvement!

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/layout.tsx (1)

8-8: Verify corrected import path for EngineIcon
The relative path has been deepened by one directory level to properly locate EngineIcon under (dashboard)/(chain)/components/server/icons. This matches similar adjustments and should resolve module import errors.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/components/Transactions/TransactionCharts.tsx (1)

5-6: Corrected import paths for transaction chart components
The imports for TransactionsChartCardUI and PieChartCard have been updated to reflect the new sidebar directory depth and ensure proper module resolution.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(general)/overview/engine-instances-table.tsx (1)

72-72: Adjusted EngineIcon import to new directory depth
The import path for EngineIcon has been deepened to match the relocated (dashboard) segment, maintaining consistency with other icon imports in the sidebar.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/factories/page.tsx (1)

16-18: Deepened import paths for shared utilities
The imports for getSortedDeployedContracts, getAuthToken, and loginRedirect now include an extra directory level to align with the reorganized sidebar structure. Confirm these utilities remain accessible at the updated paths.

apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts (1)

14-15: Updated type imports for metrics and transactions components
The ResultItem and EngineStatus type imports are now correctly referencing the deeper (sidebar) engine instance directories, keeping them in sync with the relocated components.

apps/dashboard/src/components/contract-components/import-contract/modal.tsx (1)

33-33: Updated Hook Import Path: The useAddContractToProject hook import has been updated to point to the relocated (sidebar)/hooks/project-contracts directory. Confirm that this path resolves correctly in the build and matches the new directory structure.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/cloud/server-wallets/page.tsx (1)

2-2: Absolute and Relative Imports Organized: The constant NEXT_PUBLIC_THIRDWEB_VAULT_URL has been promoted to an absolute alias import, and the getAuthToken path was updated to a deeper relative location matching the sidebar layout. Verify both imports resolve and that the constant is correctly exported from @/constants/public-envs.

Also applies to: 5-5

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/connect/account-abstraction/page.tsx (2)

4-4: Import path standardized to absolute path

The import for getClientThirdwebClient has been standardized to use an absolute import path with the @/ alias, which is a good practice in Next.js applications as it makes imports more maintainable and less prone to breaking when files are moved.


13-13: Relative import path updated

The import path for getAuthToken has been adjusted to match the new directory structure. This ensures the correct module resolution after the reorganization of project pages into the sidebar layout.

apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx (1)

48-48: Import path updated for project hooks

The import path for useAddContractToProject has been updated to include the (sidebar) segment, aligning with the project restructuring. This change correctly reflects the new location of project contract hooks while maintaining the same functionality.

apps/dashboard/src/components/contract-components/tables/contract-table.tsx (1)

34-34: Import path updated to reflect directory reorganization

The import path for removeContractFromProject has been updated to include the (sidebar) segment, consistent with the broader reorganization of project-related hooks and utilities. This maintains functionality while adapting to the new directory structure.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/assets/page.tsx (1)

8-12: Relative import paths adjusted for new directory structure

All import paths have been adjusted to reflect the new directory structure, with the correct number of parent directory traversals. This ensures proper module resolution after the project pages were moved inside the sidebar layout.

apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/layout.tsx (3)

6-6: Verify the siwaExamplePrompts import path
This file now lives under (sidebar), so the relative jump (../../../../(dashboard)/support/page) may be off by one. Please confirm that the path resolves correctly—if not, add an extra ../ or switch to an absolute alias (e.g. @/support/page) to avoid fragile imports.


11-13: Verify the getAuthToken import
After moving into (sidebar), the relative path to your API utilities (../../../../api/lib/getAuthToken) may no longer point to src/api/lib/getAuthToken.ts. Please confirm and adjust (add another ../ if needed) or use the alias form (@/api/lib/getAuthToken) for consistency with other API imports.


14-14: Correctness of TeamHeaderLoggedIn import
The relative path (../../../components/TeamHeader/team-header-logged-in.client) appears accurate given the new (sidebar) nesting and resolves to the sibling components directory.

Copy link
Contributor

github-actions bot commented May 23, 2025

size-limit report 📦

Path Size Loading time (3g) Running time (snapdragon) Total time
thirdweb (esm) 56.62 KB (0%) 1.2 s (0%) 2.4 s (+16.21% 🔺) 3.5 s
thirdweb (cjs) 309.13 KB (0%) 6.2 s (0%) 16.1 s (-0.63% 🔽) 22.3 s
thirdweb (minimal + tree-shaking) 5.69 KB (0%) 114 ms (0%) 170 ms (-22.94% 🔽) 284 ms
thirdweb/chains (tree-shaking) 531 B (0%) 11 ms (0%) 111 ms (+92.79% 🔺) 121 ms
thirdweb/react (minimal + tree-shaking) 19.5 KB (0%) 390 ms (0%) 341 ms (-2.92% 🔽) 731 ms

Copy link
Contributor

graphite-app bot commented May 23, 2025

Merge activity

<!--

## title your PR with this format: "[SDK/Dashboard/Portal] Feature/Fix: Concise title for the changes"

If you did not copy the branch name from Linear, paste the issue tag here (format is TEAM-0000):

## Notes for the reviewer

Anything important to call out? Be sure to also clarify these in your comments.

## How to test

Unit tests, playground, etc.

-->

<!-- start pr-codex -->

---

## PR-Codex overview
This PR primarily focuses on refactoring the codebase to organize components and hooks into a new `(sidebar)` directory structure, enhancing modularity and maintainability. It also updates import paths to reflect these changes.

### Detailed summary
- Moved various components and hooks to a new `(sidebar)` directory.
- Updated import paths across multiple files.
- Adjusted layout files to accommodate the new directory structure.
- Ensured proper functionality of components post-migration.

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Chores**
  - Updated and standardized import paths across the dashboard and component files for improved code organization and maintainability.
  - No changes to end-user functionality or visible features.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@graphite-app graphite-app bot force-pushed the 05-23-dashboard_move_project_pages_inside_sidebar_layout branch from 5e21485 to 362c086 Compare May 23, 2025 18:12
Copy link

changeset-bot bot commented May 23, 2025

⚠️ No Changeset found

Latest commit: 362c086

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel vercel bot temporarily deployed to Preview – wallet-ui May 23, 2025 18:12 Inactive
@vercel vercel bot temporarily deployed to Preview – login May 23, 2025 18:12 Inactive
@vercel vercel bot temporarily deployed to Preview – thirdweb_playground May 23, 2025 18:12 Inactive
@vercel vercel bot temporarily deployed to Preview – docs-v2 May 23, 2025 18:12 Inactive
@graphite-app graphite-app bot merged commit 362c086 into main May 23, 2025
24 checks passed
@graphite-app graphite-app bot deleted the 05-23-dashboard_move_project_pages_inside_sidebar_layout branch May 23, 2025 18:19
@vercel vercel bot temporarily deployed to Production – login May 23, 2025 18:19 Inactive
@vercel vercel bot temporarily deployed to Production – docs-v2 May 23, 2025 18:19 Inactive
@vercel vercel bot temporarily deployed to Production – wallet-ui May 23, 2025 18:19 Inactive
@vercel vercel bot temporarily deployed to Production – thirdweb_playground May 23, 2025 18:19 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dashboard Involves changes to the Dashboard.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants