Skip to content

Conversation

@ItzNotABug
Copy link
Member

@ItzNotABug ItzNotABug commented Nov 27, 2025

Reverts #2496

Summary by CodeRabbit

  • New Features

    • Added Import CSV button to the database table header, allowing users to upload CSV files directly for data import
  • Changes

    • Removed CSV export functionality from the database table interface, eliminating associated export options and controls
  • Chores

    • Updated pnpm package manager to version 10.20.0

✏️ Tip: You can customize this high-level summary in your review settings.

@ItzNotABug ItzNotABug self-assigned this Nov 27, 2025
@appwrite
Copy link

appwrite bot commented Nov 27, 2025

Console (appwrite/console)

Project ID: 688b7bf400350cbd60e9

Sites (1)
Site Status Logs Preview QR
 console-stage
688b7cf6003b1842c9dc
Ready Ready View Logs Preview URL QR Code

Tip

Appwrite has crossed the 50K GitHub stars milestone with hundreds of active contributors

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 27, 2025

Walkthrough

This pull request removes CSV export functionality from the application across multiple components and routes. Changes include deletion of the CsvExportBox component and its associated route, removal of CSV export analytics events, elimination of the truncate prop from inputCheckbox, refactoring of the table view page to remove export-related UI elements, and a version bump of pnpm to 10.20.0.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte: Contains significant UI layout refactoring with header action group reorganization; verify new Import CSV button integration and that header expansion toggle works correctly with preference persistence.
  • src/lib/components/csvExportBox.svelte and related imports: Review removal of CsvExportBox component across index.ts and +layout.svelte to ensure no orphaned references remain in other files not shown in this diff.
  • src/lib/actions/analytics.ts: Confirm that removal of DatabaseExportCsv analytics events doesn't leave tracking calls in the removed export page or other components.
  • Potential dead code: Verify that removal of getTableExportUrl function and route imports (goto, resolve) doesn't break any other route navigation logic.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Revert "CSV export"' clearly and concisely describes the main change—reverting a previous CSV export feature—which aligns with the changeset that removes CSV export components, related analytics, and associated UI elements.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch revert-2496-feat-csv-export

📜 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 7a00fac and 07cfb72.

📒 Files selected for processing (8)
  • package.json (1 hunks)
  • src/lib/actions/analytics.ts (0 hunks)
  • src/lib/components/csvExportBox.svelte (0 hunks)
  • src/lib/components/index.ts (0 hunks)
  • src/lib/elements/forms/inputCheckbox.svelte (0 hunks)
  • src/routes/(console)/project-[region]-[project]/+layout.svelte (1 hunks)
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte (3 hunks)
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/export/+page.svelte (0 hunks)
💤 Files with no reviewable changes (5)
  • src/lib/actions/analytics.ts
  • src/lib/elements/forms/inputCheckbox.svelte
  • src/lib/components/index.ts
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/export/+page.svelte
  • src/lib/components/csvExportBox.svelte
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx,js,jsx,svelte}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{ts,tsx,js,jsx,svelte}: Import reusable modules from the src/lib directory using the $lib alias
Use minimal comments in code; reserve comments for TODOs or complex logic explanations
Use $lib, $routes, and $themes aliases instead of relative paths for module imports

Files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
src/routes/**/*.svelte

📄 CodeRabbit inference engine (AGENTS.md)

Use SvelteKit file conventions: +page.svelte for components, +page.ts for data loaders, +layout.svelte for wrappers, +error.svelte for error handling, and dynamic route params in square brackets like [param]

Files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
**/*.{ts,tsx,js,jsx,svelte,json}

📄 CodeRabbit inference engine (AGENTS.md)

Use 4 spaces for indentation, single quotes, 100 character line width, and no trailing commas per Prettier configuration

Files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • package.json
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
**/*.svelte

📄 CodeRabbit inference engine (AGENTS.md)

Use Svelte 5 + SvelteKit 2 syntax with TypeScript for component development

Files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
src/routes/**

📄 CodeRabbit inference engine (AGENTS.md)

Configure dynamic routes using SvelteKit convention with [param] syntax in route directory names

Files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
🧠 Learnings (7)
📚 Learning: 2025-11-25T03:15:27.539Z
Learnt from: CR
Repo: appwrite/console PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T03:15:27.539Z
Learning: Applies to src/lib/components/**/*.svelte : Use PascalCase for component file names and place them in src/lib/components/[feature]/ directory structure

Applied to files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
📚 Learning: 2025-11-25T03:15:27.539Z
Learnt from: CR
Repo: appwrite/console PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T03:15:27.539Z
Learning: Applies to src/routes/**/*.svelte : Use SvelteKit file conventions: +page.svelte for components, +page.ts for data loaders, +layout.svelte for wrappers, +error.svelte for error handling, and dynamic route params in square brackets like [param]

Applied to files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
📚 Learning: 2025-11-25T03:15:27.539Z
Learnt from: CR
Repo: appwrite/console PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T03:15:27.539Z
Learning: Applies to **/*.{ts,tsx,js,jsx,svelte} : Import reusable modules from the src/lib directory using the $lib alias

Applied to files:

  • src/routes/(console)/project-[region]-[project]/+layout.svelte
📚 Learning: 2025-09-30T07:41:06.679Z
Learnt from: ItzNotABug
Repo: appwrite/console PR: 2425
File: src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte:454-468
Timestamp: 2025-09-30T07:41:06.679Z
Learning: In `src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte`, the column suggestions API (console.suggestColumns) has a maximum limit of 7 columns returned, which aligns with the initial placeholder count of 7 in customColumns.

Applied to files:

  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
📚 Learning: 2025-11-19T11:22:42.553Z
Learnt from: atharvadeosthale
Repo: appwrite/console PR: 2512
File: src/routes/(console)/project-[region]-[project]/overview/platforms/llmBanner.svelte:51-83
Timestamp: 2025-11-19T11:22:42.553Z
Learning: In src/routes/(console)/project-[region]-[project]/overview/platforms/llmBanner.svelte, the Cursor integration URL format `https://cursor.com/link/prompt` with the `text` query parameter is correct and functional.

Applied to files:

  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
📚 Learning: 2025-10-13T05:13:54.542Z
Learnt from: ItzNotABug
Repo: appwrite/console PR: 2413
File: src/routes/(console)/project-[region]-[project]/databases/table.svelte:33-39
Timestamp: 2025-10-13T05:13:54.542Z
Learning: In Svelte 5, `import { page } from '$app/state'` provides a reactive state proxy that can be accessed directly (e.g., `page.params`), unlike the older `import { page } from '$app/stores'` which returns a readable store requiring the `$page` syntax for auto-subscription in components.

Applied to files:

  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
📚 Learning: 2025-11-25T03:15:27.539Z
Learnt from: CR
Repo: appwrite/console PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T03:15:27.539Z
Learning: Applies to **/*.svelte : Use Svelte 5 + SvelteKit 2 syntax with TypeScript for component development

Applied to files:

  • src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte
🔇 Additional comments (4)
src/routes/(console)/project-[region]-[project]/+layout.svelte (1)

2-2: Import change correctly reflects CSV export removal

Dropping CsvExportBox from the consolidated $lib/components import while keeping BackupRestoreBox, MigrationBox, and UploadBox (and still rendering CsvImportBox below) is consistent with reverting the CSV export feature and keeps the layout wiring coherent with the remaining progress boxes. Based on learnings, this also matches the $lib alias usage guideline.

src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+page.svelte (2)

35-35: IconRefresh import matches existing usage

Adding IconRefresh to the pink-icons-svelte import list aligns with its usage in the Refresh button below and avoids a missing-import/undefined icon at runtime.


175-208: Header actions: Import CSV + expand toggle wiring look consistent

The new Import CSV button correctly reuses Click.DatabaseImportCsv, respects the same hasColumns && hasValidColumns || disableButton gating as other actions, and drives the existing FilePicker via showImportCSV. The compact chevron button cleanly toggles $expandTabs and persists tableHeaderExpanded in preferences, so the expanded state should remain stable across reloads.

package.json (1)

98-98: pnpm 10.20.0 is available and safe to upgrade—no breaking changes between versions 10.18.3 and 10.20.0

pnpm 10.20.0 is a stable minor/patch release that introduces no breaking changes. The version bump includes features like pnpm help --all and patch-level fixes. All changes between 10.18.3 and 10.20.0 are additive and fully backward-compatible, so your SvelteKit workspace will not be affected by this upgrade.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@abnegate abnegate merged commit 8505391 into main Nov 27, 2025
4 checks passed
@abnegate abnegate deleted the revert-2496-feat-csv-export branch November 27, 2025 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants