-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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: eslint add rule prefer top level type import #3354
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
WalkthroughThe changes primarily focus on refining import statements across various TypeScript modules to enforce consistent style and improving linting configurations. This involves separating type imports from functional imports and simplifying file patterns in lint scripts within the Changes
Sequence Diagram(s)This section is omitted as the changes do not introduce new features or modify control flow. The updates are primarily structural and stylistic improvements. 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? TipsChatThere are 3 ways to chat with CodeRabbit:
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 as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range and nitpick comments (2)
packages/components/accordion/src/use-accordion.ts (1)
Line range hint
50-50
: Avoid Using '{}' as a TypeUsing '{}' as a type is not recommended because it implies any non-nullish value, which can lead to less predictable code behavior and harder-to-find bugs. Consider specifying more detailed types to improve code quality and maintainability.
- export function useAccordion<T extends object>(props: UseAccordionProps<T>) { + export function useAccordion<T extends Record<string, unknown>>(props: UseAccordionProps<T>) {Also applies to: 64-64
packages/components/checkbox/src/use-checkbox-group.ts (1)
Line range hint
179-179
: Avoid Using Sparse ArraysIt's generally a good practice to avoid using sparse arrays as they can lead to unexpected behavior and bugs. Consider initializing the array elements explicitly to
undefined
if necessary.- validationErrors?.join(" "), + validationErrors ? validationErrors.join(" ") : undefined,
Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Files selected for processing (11)
- .eslintrc.json (1 hunks)
- package.json (1 hunks)
- packages/components/accordion/src/use-accordion.ts (1 hunks)
- packages/components/button/src/use-button.ts (1 hunks)
- packages/components/checkbox/src/use-checkbox-group.ts (1 hunks)
- packages/components/checkbox/src/use-checkbox.ts (1 hunks)
- packages/components/dropdown/src/use-dropdown.ts (1 hunks)
- packages/components/menu/src/use-menu.ts (1 hunks)
- packages/components/select/tests/select.test.tsx (1 hunks)
- packages/core/system-rsc/test-utils/no-slots-component.tsx (1 hunks)
- packages/core/system-rsc/test-utils/slots-component.tsx (1 hunks)
Files skipped from review due to trivial changes (4)
- package.json
- packages/components/dropdown/src/use-dropdown.ts
- packages/components/menu/src/use-menu.ts
- packages/core/system-rsc/test-utils/slots-component.tsx
Additional context used
Biome
packages/components/accordion/src/use-accordion.ts
[error] 50-50: Don't use '{}' as a type.
Prefer explicitly define the object shape. '{}' means "any non-nullable value".
(lint/complexity/noBannedTypes)
[error] 64-64: Don't use '{}' as a type.
Prefer explicitly define the object shape. '{}' means "any non-nullable value".
(lint/complexity/noBannedTypes)
packages/components/checkbox/src/use-checkbox-group.ts
[error] 179-179: This array contains an empty slot.
Unsafe fix: Replace hole with undefined
(lint/suspicious/noSparseArray)
Additional comments not posted (8)
.eslintrc.json (1)
91-91
: New ESLint Rule Added: "import/consistent-type-specifier-style"This rule enforces the use of top-level imports for types, which can help improve code clarity and maintain consistency across the codebase. Ensure that this rule aligns with your project's guidelines on import styles.
packages/core/system-rsc/test-utils/no-slots-component.tsx (1)
2-2
: Type Imports SeparatedSeparating type imports from regular imports, as done here with
VariantProps
, is a good practice for clarity and aligns with the new ESLint rule introduced in the PR. This change enhances maintainability and readability.packages/components/accordion/src/use-accordion.ts (1)
4-4
: Type Imports Aligned with New ESLint RuleThe separation of type imports (
HTMLNextUIProps
,PropGetter
) from the regular import (useProviderContext
) adheres to the new ESLint rule and improves code clarity.packages/components/button/src/use-button.ts (1)
5-5
: Type Imports Correctly SeparatedSeparating type imports (
HTMLNextUIProps
,PropGetter
) from the regular imports aligns with the new ESLint rule and enhances code readability and maintainability.packages/components/checkbox/src/use-checkbox-group.ts (1)
6-6
: Type Imports Correctly SeparatedSeparating type imports (
HTMLNextUIProps
,PropGetter
) from the regular imports aligns with the new ESLint rule and enhances code readability and maintainability.packages/components/checkbox/src/use-checkbox.ts (2)
3-3
: Approved: Separation of type imports enhances code clarity.The separation of type imports from regular imports aligns with the new ESLint rule and improves the readability of the code.
5-5
: Approved: Maintained import foruseProviderContext
functionality.The import of
useProviderContext
from@nextui-org/system
is maintained, ensuring that there is no disruption in functionality.packages/components/select/__tests__/select.test.tsx (1)
1-1
: Approved: Updated import statement forSelectProps
.The updated import statement for
SelectProps
from the direct source ensures that the tests are aligned with the actual component's props, enhancing maintainability and preventing potential discrepancies.
Closes #
📝 Description
⛳️ Current behavior (updates)
🚀 New behavior
💣 Is this a breaking change (Yes/No):
📝 Additional Information
Summary by CodeRabbit