Skip to content

refactor: Move data-table hooks/components from /features to /web#27228

Closed
hbjORbj wants to merge 21 commits intomainfrom
devin/1769415495-move-more-components
Closed

refactor: Move data-table hooks/components from /features to /web#27228
hbjORbj wants to merge 21 commits intomainfrom
devin/1769415495-move-more-components

Conversation

@hbjORbj
Copy link
Contributor

@hbjORbj hbjORbj commented Jan 26, 2026

What does this PR do?

This PR is part of a larger effort to break down PR #26571 into smaller, reviewable chunks. It moves hooks and components from packages/features/data-table to apps/web/modules/data-table to support the vertical slice architecture.

Updates since last revision

  • Fixed lint error in CalendarEventBuilder.test.ts: changed TimeFormat["TWENTY_FOUR_HOUR"] to TimeFormat.TWENTY_FOUR_HOUR to satisfy the lint/complexity/useLiteralKeys rule

Mandatory Tasks (DO NOT REMOVE)

  • I have self-reviewed the code (A decent size PR without self-review might be rejected).
  • I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. N/A - no documentation changes needed.
  • I confirm automated tests are in place that prove my fix is effective or that my feature works. Existing tests cover these components.

How should this be tested?

This is a refactoring PR that moves code without changing functionality. Verify that:

  1. All imports resolve correctly
  2. Lint passes: yarn lint
  3. Type checks pass: yarn type-check:ci

Human Review Checklist

  • Verify all import path updates are consistent (from @calcom/features/data-table to @calcom/web/modules/data-table/hooks or ~/data-table/components)
  • Confirm useAppsData move to @calcom/features/apps/hooks is intentional (needed for Atoms imports)

Link to Devin run: https://app.devin.ai/sessions/5b290a1011c84be1a4bfa146cb313c85
Requested by: benny@cal.com (benny@cal.com) (@hbjORbj)

…rom packages/features to apps/web/modules

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
@devin-ai-integration
Copy link
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
@devin-ai-integration devin-ai-integration bot changed the title refactor: move data-table, apps, organizations, and workflows hooks from packages/features to apps/web/modules refactor: move data-table, calendars, schedules, and admin components from packages/features to apps/web/modules Jan 27, 2026
} from "@calcom/app-store/_components/EventTypeAppCardInterface";
import type { EventTypeAppsList } from "@calcom/app-store/utils";
import useAppsData from "@calcom/web/modules/apps/hooks/useAppsData";
import useAppsData from "@calcom/features/apps/hooks/useAppsData";
Copy link
Contributor Author

@hbjORbj hbjORbj Jan 27, 2026

Choose a reason for hiding this comment

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

bonus: I moved useAppsData to /features because Atoms imports it

@hbjORbj hbjORbj force-pushed the devin/1769415495-move-more-components branch from caae127 to fda9578 Compare January 27, 2026 05:43
@pull-request-size pull-request-size bot added size/L and removed size/M labels Jan 27, 2026
@devin-ai-integration devin-ai-integration bot changed the title refactor: move data-table, calendars, schedules, and admin components from packages/features to apps/web/modules refactor: move data-table hooks, calendars, and bookings components from packages/features to apps/web/modules Jan 27, 2026
@hbjORbj hbjORbj force-pushed the devin/1769415495-move-more-components branch from 02c9924 to 7ed3cc3 Compare January 27, 2026 05:51
@pull-request-size pull-request-size bot added size/M and removed size/L labels Jan 27, 2026
@pull-request-size pull-request-size bot added size/L and removed size/M labels Jan 27, 2026
@hbjORbj hbjORbj marked this pull request as ready for review January 27, 2026 06:32
@hbjORbj hbjORbj requested review from a team as code owners January 27, 2026 06:32
@graphite-app graphite-app bot added foundation core area: core, team members only labels Jan 27, 2026
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 63 files

@hbjORbj hbjORbj requested a review from keithwillcode January 27, 2026 06:35
@hbjORbj hbjORbj enabled auto-merge (squash) January 27, 2026 06:36
@github-actions
Copy link
Contributor

github-actions bot commented Jan 27, 2026

E2E results are ready!

Copy link
Contributor

@eunjae-lee eunjae-lee left a comment

Choose a reason for hiding this comment

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

Hey thanks for the work. As you can see, a lot from data table has been moved to apps/web/modules. It's because data-table heavily relies on web-related stuff like query parameters and stuff like that. And now we have only a few utilities remaining in packages/features folder. What if we entirely move everything to apps/web/modules? If we ever want to use DataTable on other than web platform, then we can think about better refactoring this DataTable feature to be more adaptable. WDYT?

@github-actions github-actions bot marked this pull request as draft January 27, 2026 10:16
auto-merge was automatically disabled January 27, 2026 10:16

Pull request was converted to draft

@hbjORbj
Copy link
Contributor Author

hbjORbj commented Jan 27, 2026

@eunjae-lee I believe repositories and /lib folder should stay in features because that's what we strive for—client components/hooks in web and repositories, services, lib, etc stay in features. But I understand this isn't precise enough. This is still in design phase, what do you think?

Copy link
Contributor

I just re-checked the current status. All the components and hooks are in apps/web/module/data-table, and the types, utilities, server related stuff are in packages/features/data-table. Yeah seems reasonable. Although it might get confusing what to import from where, but with the updated packages/features/data-table/GUIDE.md, it should be alright, I think.

eunjae-lee
eunjae-lee previously approved these changes Jan 27, 2026
Copy link
Contributor

@eunjae-lee eunjae-lee left a comment

Choose a reason for hiding this comment

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

Let's go !

@hbjORbj hbjORbj marked this pull request as ready for review January 28, 2026 05:33
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 63 files

@hbjORbj hbjORbj enabled auto-merge (squash) January 28, 2026 12:51
ThyMinimalDev
ThyMinimalDev previously approved these changes Jan 29, 2026
@eunjae-lee
Copy link
Contributor

@hbjORbj lint errors

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>
@eunjae-lee
Copy link
Contributor

I'm actually working on data-table in another PR that is moving things quite a lot. let me close this PR, and after that PR is done, i will apply this structural change in a follow-up PR.

@eunjae-lee eunjae-lee closed this Jan 29, 2026
auto-merge was automatically disabled January 29, 2026 14:52

Pull request was closed

@hbjORbj
Copy link
Contributor Author

hbjORbj commented Jan 30, 2026

Sure, thanks @eunjae-lee , ping me for review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants