From 3881127125b28b5fd622cd2b99465d74ff1ee95f Mon Sep 17 00:00:00 2001 From: winches <329487092@qq.com> Date: Fri, 28 Jun 2024 23:21:56 +0800 Subject: [PATCH] feat: eslint add rule prefer top level type import --- .eslintrc.json | 3 ++- package.json | 4 ++-- packages/components/accordion/src/use-accordion.ts | 3 ++- packages/components/button/src/use-button.ts | 3 ++- packages/components/checkbox/src/use-checkbox-group.ts | 3 ++- packages/components/checkbox/src/use-checkbox.ts | 3 ++- packages/components/dropdown/src/use-dropdown.ts | 3 ++- packages/components/menu/src/use-menu.ts | 4 +++- packages/components/select/__tests__/select.test.tsx | 4 +++- packages/core/system-rsc/test-utils/no-slots-component.tsx | 3 ++- packages/core/system-rsc/test-utils/slots-component.tsx | 3 ++- 11 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index d3067d4cf7..ad84de361e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -87,6 +87,7 @@ "prev": ["const", "let", "var"], "next": ["const", "let", "var"] } - ] + ], + "import/consistent-type-specifier-style": ["error", "prefer-top-level"] } } diff --git a/package.json b/package.json index bdac1c71e7..2cd3ee2a30 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,9 @@ "test": "jest --verbose --config ./jest.config.js", "typecheck": "turbo typecheck", "lint": "pnpm lint:pkg && pnpm lint:docs", - "lint:pkg": "eslint -c .eslintrc.json ./packages/**/**/*.{ts,tsx}", + "lint:pkg": "eslint -c .eslintrc.json ./packages/**/*.{ts,tsx}", "lint:docs": "eslint -c .eslintrc.json ./apps/docs/**/*.{ts,tsx}", - "lint:fix": "eslint --fix -c .eslintrc.json ./packages/**/**/*.{ts,tsx}", + "lint:fix": "eslint --fix -c .eslintrc.json ./packages/**/*.{ts,tsx}", "lint:docs-fix": "eslint --fix -c .eslintrc.json ./apps/docs/**/*.{ts,tsx}", "check:rap": "tsx scripts/check-rap-updates.ts", "fix:rap": "tsx scripts/fix-rap.ts", diff --git a/packages/components/accordion/src/use-accordion.ts b/packages/components/accordion/src/use-accordion.ts index 7f9e91c47a..2948ed61e7 100644 --- a/packages/components/accordion/src/use-accordion.ts +++ b/packages/components/accordion/src/use-accordion.ts @@ -1,8 +1,9 @@ import type {SelectionBehavior, MultipleSelection} from "@react-types/shared"; import type {AriaAccordionProps} from "@react-types/accordion"; import type {AccordionGroupVariantProps} from "@nextui-org/theme"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import {useProviderContext} from "@nextui-org/system"; import {ReactRef, filterDOMProps} from "@nextui-org/react-utils"; import React, {Key, useCallback} from "react"; import {TreeState, useTreeState} from "@react-stately/tree"; diff --git a/packages/components/button/src/use-button.ts b/packages/components/button/src/use-button.ts index 637c1132d7..78dd90929f 100644 --- a/packages/components/button/src/use-button.ts +++ b/packages/components/button/src/use-button.ts @@ -2,8 +2,9 @@ import type {ButtonVariantProps} from "@nextui-org/theme"; import type {AriaButtonProps} from "@nextui-org/use-aria-button"; import type {ReactNode} from "react"; import type {RippleProps} from "@nextui-org/ripple"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import {useProviderContext} from "@nextui-org/system"; import {dataAttr} from "@nextui-org/shared-utils"; import {ReactRef} from "@nextui-org/react-utils"; import {MouseEventHandler, useCallback} from "react"; diff --git a/packages/components/checkbox/src/use-checkbox-group.ts b/packages/components/checkbox/src/use-checkbox-group.ts index c351cc93e6..ee7eaba973 100644 --- a/packages/components/checkbox/src/use-checkbox-group.ts +++ b/packages/components/checkbox/src/use-checkbox-group.ts @@ -3,8 +3,9 @@ import type {AriaCheckboxGroupProps} from "@react-types/checkbox"; import type {Orientation} from "@react-types/shared"; import type {ReactRef} from "@nextui-org/react-utils"; import type {CheckboxGroupProps} from "@react-types/checkbox"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import {useProviderContext} from "@nextui-org/system"; import {useCallback, useMemo} from "react"; import {chain, mergeProps} from "@react-aria/utils"; import {checkboxGroup} from "@nextui-org/theme"; diff --git a/packages/components/checkbox/src/use-checkbox.ts b/packages/components/checkbox/src/use-checkbox.ts index 402488c89d..841b93eab6 100644 --- a/packages/components/checkbox/src/use-checkbox.ts +++ b/packages/components/checkbox/src/use-checkbox.ts @@ -1,7 +1,8 @@ import type {CheckboxVariantProps, CheckboxSlots, SlotsToClasses} from "@nextui-org/theme"; import type {AriaCheckboxProps} from "@react-types/checkbox"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import {useProviderContext} from "@nextui-org/system"; import {ReactNode, Ref, useCallback, useId, useState} from "react"; import {useMemo, useRef} from "react"; import {useToggleState} from "@react-stately/toggle"; diff --git a/packages/components/dropdown/src/use-dropdown.ts b/packages/components/dropdown/src/use-dropdown.ts index 0124669b95..74a89846c9 100644 --- a/packages/components/dropdown/src/use-dropdown.ts +++ b/packages/components/dropdown/src/use-dropdown.ts @@ -1,8 +1,9 @@ import type {PopoverProps} from "@nextui-org/popover"; import type {MenuTriggerType} from "@react-types/menu"; import type {Ref} from "react"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import {useProviderContext} from "@nextui-org/system"; import {useMenuTriggerState} from "@react-stately/menu"; import {useMenuTrigger} from "@react-aria/menu"; import {dropdown} from "@nextui-org/theme"; diff --git a/packages/components/menu/src/use-menu.ts b/packages/components/menu/src/use-menu.ts index 82d8d7afeb..e683a1f057 100644 --- a/packages/components/menu/src/use-menu.ts +++ b/packages/components/menu/src/use-menu.ts @@ -1,4 +1,6 @@ -import {useProviderContext, type HTMLNextUIProps, type PropGetter} from "@nextui-org/system"; +import type {HTMLNextUIProps, PropGetter} from "@nextui-org/system"; + +import {useProviderContext} from "@nextui-org/system"; import {AriaMenuProps} from "@react-types/menu"; import {AriaMenuOptions} from "@react-aria/menu"; import {useAriaMenu} from "@nextui-org/use-aria-menu"; diff --git a/packages/components/select/__tests__/select.test.tsx b/packages/components/select/__tests__/select.test.tsx index 280ae91f74..c1d1cbaeaf 100644 --- a/packages/components/select/__tests__/select.test.tsx +++ b/packages/components/select/__tests__/select.test.tsx @@ -1,9 +1,11 @@ +import type {SelectProps} from "../src"; + import * as React from "react"; import {render, renderHook, act} from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import {useForm} from "react-hook-form"; -import {Select, SelectItem, SelectSection, type SelectProps} from "../src"; +import {Select, SelectItem, SelectSection} from "../src"; import {Modal, ModalContent, ModalHeader, ModalBody, ModalFooter} from "../../modal/src"; type Item = { diff --git a/packages/core/system-rsc/test-utils/no-slots-component.tsx b/packages/core/system-rsc/test-utils/no-slots-component.tsx index 82e6b28a3e..14a5d5bfa9 100644 --- a/packages/core/system-rsc/test-utils/no-slots-component.tsx +++ b/packages/core/system-rsc/test-utils/no-slots-component.tsx @@ -1,7 +1,8 @@ import type {HTMLNextUIProps} from "../src/types"; +import type {VariantProps} from "@nextui-org/theme"; import React, {useMemo} from "react"; -import {tv, type VariantProps} from "@nextui-org/theme"; +import {tv} from "@nextui-org/theme"; import {filterDOMProps, ReactRef, useDOMRef} from "@nextui-org/react-utils"; import {objectToDeps} from "@nextui-org/shared-utils"; diff --git a/packages/core/system-rsc/test-utils/slots-component.tsx b/packages/core/system-rsc/test-utils/slots-component.tsx index 99fc967faa..2adb059879 100644 --- a/packages/core/system-rsc/test-utils/slots-component.tsx +++ b/packages/core/system-rsc/test-utils/slots-component.tsx @@ -1,7 +1,8 @@ import type {HTMLNextUIProps} from "../src/types"; +import type {VariantProps} from "@nextui-org/theme"; import React, {useMemo} from "react"; -import {SlotsToClasses, tv, type VariantProps} from "@nextui-org/theme"; +import {SlotsToClasses, tv} from "@nextui-org/theme"; import {filterDOMProps, ReactRef, useDOMRef} from "@nextui-org/react-utils"; import {objectToDeps} from "@nextui-org/shared-utils"; import clsx from "clsx";