From f4560962cbaa191fdbda2ceacc26db1a123c293e Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Thu, 14 Nov 2024 17:53:27 +0100 Subject: [PATCH] next-intl too --- packages/next-intl/eslint.config.mjs | 8 +++++++- .../getAlternateLinksHeaderValue.test.tsx | 2 +- .../middleware/getAlternateLinksHeaderValue.tsx | 6 +++--- .../next-intl/src/middleware/middleware.test.tsx | 12 ++++++++++-- packages/next-intl/src/middleware/middleware.tsx | 6 +++--- .../next-intl/src/middleware/resolveLocale.tsx | 6 +++--- packages/next-intl/src/middleware/syncCookie.tsx | 6 +++--- packages/next-intl/src/middleware/utils.tsx | 2 +- .../src/navigation/createNavigation.test.tsx | 8 ++++++-- .../react-client/createNavigation.test.tsx | 5 ++--- .../navigation/react-client/createNavigation.tsx | 4 ++-- .../navigation/react-client/useBasePathname.tsx | 2 +- .../navigation/react-server/createNavigation.tsx | 4 ++-- .../next-intl/src/navigation/shared/BaseLink.tsx | 10 +++++----- .../shared/createSharedNavigationFns.tsx | 16 ++++++++-------- .../src/navigation/shared/syncLocaleCookie.tsx | 2 +- .../next-intl/src/navigation/shared/utils.tsx | 6 +++--- packages/next-intl/src/plugin/getNextConfig.tsx | 4 ++-- .../NextIntlClientProviderServer.tsx | 2 +- .../next-intl/src/react-server/testUtils.tsx | 5 +++-- packages/next-intl/src/routing/config.tsx | 2 +- packages/next-intl/src/routing/defineRouting.tsx | 9 +++++++-- packages/next-intl/src/routing/types.test.tsx | 2 +- .../src/server/react-server/RequestLocale.tsx | 2 +- .../src/server/react-server/getConfig.tsx | 4 ++-- .../src/server/react-server/getFormatter.tsx | 2 +- .../src/server/react-server/getLocale.tsx | 2 +- .../server/react-server/getServerTranslator.tsx | 6 +++--- .../src/server/react-server/getTranslations.tsx | 2 +- .../src/shared/NextIntlClientProvider.tsx | 4 ++-- packages/next-intl/src/shared/utils.tsx | 4 ++-- 31 files changed, 89 insertions(+), 66 deletions(-) diff --git a/packages/next-intl/eslint.config.mjs b/packages/next-intl/eslint.config.mjs index 7ac3af172..a2d92e6aa 100644 --- a/packages/next-intl/eslint.config.mjs +++ b/packages/next-intl/eslint.config.mjs @@ -21,6 +21,12 @@ export default (await getPresets('typescript', 'react', 'vitest')).concat({ } ] } - ] + ], + + // Strict type imports to avoid side effects + '@typescript-eslint/consistent-type-imports': 'error', + '@typescript-eslint/consistent-type-exports': 'error', + '@typescript-eslint/no-import-type-side-effects': 'error', + 'import/no-duplicates': ['error', {'prefer-inline': true}] } }); diff --git a/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.test.tsx b/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.test.tsx index 9c03cac00..562331ec8 100644 --- a/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.test.tsx +++ b/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.test.tsx @@ -3,7 +3,7 @@ import {NextRequest} from 'next/server.js'; import {afterEach, beforeEach, describe, expect, it} from 'vitest'; import {receiveRoutingConfig} from '../routing/config.tsx'; -import {Pathnames} from '../routing.tsx'; +import type {Pathnames} from '../routing.tsx'; import getAlternateLinksHeaderValue from './getAlternateLinksHeaderValue.tsx'; describe.each([{basePath: undefined}, {basePath: '/base'}])( diff --git a/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.tsx b/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.tsx index 1d3f26f96..52f627ba3 100644 --- a/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.tsx +++ b/packages/next-intl/src/middleware/getAlternateLinksHeaderValue.tsx @@ -1,6 +1,6 @@ -import {NextRequest} from 'next/server.js'; -import {ResolvedRoutingConfig} from '../routing/config.tsx'; -import { +import type {NextRequest} from 'next/server.js'; +import type {ResolvedRoutingConfig} from '../routing/config.tsx'; +import type { DomainsConfig, LocalePrefixMode, Locales, diff --git a/packages/next-intl/src/middleware/middleware.test.tsx b/packages/next-intl/src/middleware/middleware.test.tsx index d0923b474..e6ec99ea3 100644 --- a/packages/next-intl/src/middleware/middleware.test.tsx +++ b/packages/next-intl/src/middleware/middleware.test.tsx @@ -3,9 +3,17 @@ import {RequestCookies} from 'next/dist/compiled/@edge-runtime/cookies'; import {NextRequest, NextResponse} from 'next/server.js'; import {pathToRegexp} from 'path-to-regexp'; -import {Mock, afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; +import { + type Mock, + afterEach, + beforeEach, + describe, + expect, + it, + vi +} from 'vitest'; import createMiddleware from '../middleware.tsx'; -import {Pathnames, defineRouting} from '../routing.tsx'; +import {type Pathnames, defineRouting} from '../routing.tsx'; const COOKIE_LOCALE_NAME = 'NEXT_LOCALE'; diff --git a/packages/next-intl/src/middleware/middleware.tsx b/packages/next-intl/src/middleware/middleware.tsx index 0b7be26ab..14662740c 100644 --- a/packages/next-intl/src/middleware/middleware.tsx +++ b/packages/next-intl/src/middleware/middleware.tsx @@ -1,6 +1,6 @@ -import {NextRequest, NextResponse} from 'next/server.js'; -import {RoutingConfig, receiveRoutingConfig} from '../routing/config.tsx'; -import { +import {type NextRequest, NextResponse} from 'next/server.js'; +import {type RoutingConfig, receiveRoutingConfig} from '../routing/config.tsx'; +import type { DomainsConfig, LocalePrefixMode, Locales, diff --git a/packages/next-intl/src/middleware/resolveLocale.tsx b/packages/next-intl/src/middleware/resolveLocale.tsx index 2719ee2cf..ee4abdea0 100644 --- a/packages/next-intl/src/middleware/resolveLocale.tsx +++ b/packages/next-intl/src/middleware/resolveLocale.tsx @@ -1,9 +1,9 @@ import {match} from '@formatjs/intl-localematcher'; import Negotiator from 'negotiator'; -import {RequestCookies} from 'next/dist/server/web/spec-extension/cookies.js'; +import type {RequestCookies} from 'next/dist/server/web/spec-extension/cookies.js'; import type {Locale} from 'use-intl'; -import {ResolvedRoutingConfig} from '../routing/config.tsx'; -import { +import type {ResolvedRoutingConfig} from '../routing/config.tsx'; +import type { DomainConfig, DomainsConfig, LocalePrefixMode, diff --git a/packages/next-intl/src/middleware/syncCookie.tsx b/packages/next-intl/src/middleware/syncCookie.tsx index 751240c71..b37015cd4 100644 --- a/packages/next-intl/src/middleware/syncCookie.tsx +++ b/packages/next-intl/src/middleware/syncCookie.tsx @@ -1,10 +1,10 @@ -import {NextRequest, NextResponse} from 'next/server.js'; +import type {NextRequest, NextResponse} from 'next/server.js'; import type {Locale} from 'use-intl'; -import { +import type { InitializedLocaleCookieConfig, ResolvedRoutingConfig } from '../routing/config.tsx'; -import { +import type { DomainConfig, DomainsConfig, LocalePrefixMode, diff --git a/packages/next-intl/src/middleware/utils.tsx b/packages/next-intl/src/middleware/utils.tsx index 67013bd5b..996368ac9 100644 --- a/packages/next-intl/src/middleware/utils.tsx +++ b/packages/next-intl/src/middleware/utils.tsx @@ -1,5 +1,5 @@ import type {Locale} from 'use-intl'; -import { +import type { DomainConfig, DomainsConfig, LocalePrefixConfigVerbose, diff --git a/packages/next-intl/src/navigation/createNavigation.test.tsx b/packages/next-intl/src/navigation/createNavigation.test.tsx index c8118d154..a6ea4c698 100644 --- a/packages/next-intl/src/navigation/createNavigation.test.tsx +++ b/packages/next-intl/src/navigation/createNavigation.test.tsx @@ -5,9 +5,13 @@ import { redirect as nextRedirect } from 'next/navigation.js'; import {renderToString} from 'react-dom/server'; -import {Locale, useLocale} from 'use-intl'; +import {type Locale, useLocale} from 'use-intl'; import {beforeEach, describe, expect, it, vi} from 'vitest'; -import {DomainsConfig, Pathnames, defineRouting} from '../routing.tsx'; +import { + type DomainsConfig, + type Pathnames, + defineRouting +} from '../routing.tsx'; import createNavigationClient from './react-client/createNavigation.tsx'; import createNavigationServer from './react-server/createNavigation.tsx'; import getServerLocale from './react-server/getServerLocale.tsx'; diff --git a/packages/next-intl/src/navigation/react-client/createNavigation.test.tsx b/packages/next-intl/src/navigation/react-client/createNavigation.test.tsx index ef57b97c7..1b51ae378 100644 --- a/packages/next-intl/src/navigation/react-client/createNavigation.test.tsx +++ b/packages/next-intl/src/navigation/react-client/createNavigation.test.tsx @@ -3,10 +3,9 @@ import { usePathname as useNextPathname, useRouter as useNextRouter } from 'next/navigation.js'; -import type {Locale} from 'use-intl'; -import {useLocale} from 'use-intl'; +import {type Locale, useLocale} from 'use-intl'; import {beforeEach, describe, expect, it, vi} from 'vitest'; -import {DomainsConfig, Pathnames} from '../../routing.tsx'; +import type {DomainsConfig, Pathnames} from '../../routing.tsx'; import createNavigation from './createNavigation.tsx'; vi.mock('next/navigation.js'); diff --git a/packages/next-intl/src/navigation/react-client/createNavigation.tsx b/packages/next-intl/src/navigation/react-client/createNavigation.tsx index 904eab475..7c4fca172 100644 --- a/packages/next-intl/src/navigation/react-client/createNavigation.tsx +++ b/packages/next-intl/src/navigation/react-client/createNavigation.tsx @@ -4,11 +4,11 @@ import { } from 'next/navigation.js'; import {useMemo} from 'react'; import {type Locale, useLocale} from 'use-intl'; -import { +import type { RoutingConfigLocalizedNavigation, RoutingConfigSharedNavigation } from '../../routing/config.tsx'; -import { +import type { DomainsConfig, LocalePrefixMode, Locales, diff --git a/packages/next-intl/src/navigation/react-client/useBasePathname.tsx b/packages/next-intl/src/navigation/react-client/useBasePathname.tsx index c5eaa3c7a..caa595041 100644 --- a/packages/next-intl/src/navigation/react-client/useBasePathname.tsx +++ b/packages/next-intl/src/navigation/react-client/useBasePathname.tsx @@ -1,7 +1,7 @@ import {usePathname as useNextPathname} from 'next/navigation.js'; import {useMemo} from 'react'; import {useLocale} from 'use-intl'; -import { +import type { LocalePrefixConfigVerbose, LocalePrefixMode, Locales diff --git a/packages/next-intl/src/navigation/react-server/createNavigation.tsx b/packages/next-intl/src/navigation/react-server/createNavigation.tsx index 90d7f8721..96c921c58 100644 --- a/packages/next-intl/src/navigation/react-server/createNavigation.tsx +++ b/packages/next-intl/src/navigation/react-server/createNavigation.tsx @@ -1,8 +1,8 @@ -import { +import type { RoutingConfigLocalizedNavigation, RoutingConfigSharedNavigation } from '../../routing/config.tsx'; -import { +import type { DomainsConfig, LocalePrefixMode, Locales, diff --git a/packages/next-intl/src/navigation/shared/BaseLink.tsx b/packages/next-intl/src/navigation/shared/BaseLink.tsx index bd531725e..10aa07c93 100644 --- a/packages/next-intl/src/navigation/shared/BaseLink.tsx +++ b/packages/next-intl/src/navigation/shared/BaseLink.tsx @@ -1,17 +1,17 @@ 'use client'; -import NextLink, {LinkProps} from 'next/link.js'; +import NextLink, {type LinkProps} from 'next/link.js'; import {usePathname} from 'next/navigation.js'; import { - ComponentProps, - MouseEvent, - Ref, + type ComponentProps, + type MouseEvent, + type Ref, forwardRef, useEffect, useState } from 'react'; import {type Locale, useLocale} from 'use-intl'; -import {InitializedLocaleCookieConfig} from '../../routing/config.tsx'; +import type {InitializedLocaleCookieConfig} from '../../routing/config.tsx'; import syncLocaleCookie from './syncLocaleCookie.tsx'; type NextLinkProps = Omit, keyof LinkProps> & diff --git a/packages/next-intl/src/navigation/shared/createSharedNavigationFns.tsx b/packages/next-intl/src/navigation/shared/createSharedNavigationFns.tsx index c2fe5a5fa..f198b1d36 100644 --- a/packages/next-intl/src/navigation/shared/createSharedNavigationFns.tsx +++ b/packages/next-intl/src/navigation/shared/createSharedNavigationFns.tsx @@ -2,28 +2,28 @@ import { permanentRedirect as nextPermanentRedirect, redirect as nextRedirect } from 'next/navigation.js'; -import {ComponentProps, forwardRef} from 'react'; +import {type ComponentProps, forwardRef} from 'react'; import type {Locale} from 'use-intl'; import { - RoutingConfigLocalizedNavigation, - RoutingConfigSharedNavigation, + type RoutingConfigLocalizedNavigation, + type RoutingConfigSharedNavigation, receiveRoutingConfig } from '../../routing/config.tsx'; -import { +import type { DomainConfig, DomainsConfig, LocalePrefixMode, Locales, Pathnames } from '../../routing/types.tsx'; -import {ParametersExceptFirst, Prettify} from '../../shared/types.tsx'; +import type {ParametersExceptFirst, Prettify} from '../../shared/types.tsx'; import use from '../../shared/use.tsx'; import {isLocalizableHref} from '../../shared/utils.tsx'; import BaseLink from './BaseLink.tsx'; import { - HrefOrHrefWithParams, - HrefOrUrlObjectWithParams, - QueryParams, + type HrefOrHrefWithParams, + type HrefOrUrlObjectWithParams, + type QueryParams, applyPathnamePrefix, compileLocalizedPathname, normalizeNameOrNameWithParams, diff --git a/packages/next-intl/src/navigation/shared/syncLocaleCookie.tsx b/packages/next-intl/src/navigation/shared/syncLocaleCookie.tsx index 5b2d95722..41b42531a 100644 --- a/packages/next-intl/src/navigation/shared/syncLocaleCookie.tsx +++ b/packages/next-intl/src/navigation/shared/syncLocaleCookie.tsx @@ -1,5 +1,5 @@ import type {Locale} from 'use-intl'; -import {InitializedLocaleCookieConfig} from '../../routing/config.tsx'; +import type {InitializedLocaleCookieConfig} from '../../routing/config.tsx'; import {getBasePath} from './utils.tsx'; /** diff --git a/packages/next-intl/src/navigation/shared/utils.tsx b/packages/next-intl/src/navigation/shared/utils.tsx index 3845920be..777ed2806 100644 --- a/packages/next-intl/src/navigation/shared/utils.tsx +++ b/packages/next-intl/src/navigation/shared/utils.tsx @@ -1,8 +1,8 @@ import type {ParsedUrlQueryInput} from 'node:querystring'; import type {UrlObject} from 'url'; import type {Locale} from 'use-intl'; -import {ResolvedRoutingConfig} from '../../routing/config.tsx'; -import { +import type {ResolvedRoutingConfig} from '../../routing/config.tsx'; +import type { DomainsConfig, LocalePrefixMode, Locales, @@ -16,7 +16,7 @@ import { normalizeTrailingSlash, prefixPathname } from '../../shared/utils.tsx'; -import StrictParams from './StrictParams.tsx'; +import type StrictParams from './StrictParams.tsx'; type SearchParamValue = ParsedUrlQueryInput[keyof ParsedUrlQueryInput]; diff --git a/packages/next-intl/src/plugin/getNextConfig.tsx b/packages/next-intl/src/plugin/getNextConfig.tsx index c77f23f45..f417a0028 100644 --- a/packages/next-intl/src/plugin/getNextConfig.tsx +++ b/packages/next-intl/src/plugin/getNextConfig.tsx @@ -1,7 +1,7 @@ import fs from 'fs'; import path from 'path'; -import {NextConfig} from 'next'; -import {PluginConfig} from './types.tsx'; +import type {NextConfig} from 'next'; +import type {PluginConfig} from './types.tsx'; import {throwError} from './utils.tsx'; function withExtensions(localPath: string) { diff --git a/packages/next-intl/src/react-server/NextIntlClientProviderServer.tsx b/packages/next-intl/src/react-server/NextIntlClientProviderServer.tsx index d3da7c102..abf19ee30 100644 --- a/packages/next-intl/src/react-server/NextIntlClientProviderServer.tsx +++ b/packages/next-intl/src/react-server/NextIntlClientProviderServer.tsx @@ -1,4 +1,4 @@ -import {ComponentProps} from 'react'; +import type {ComponentProps} from 'react'; import getConfigNow from '../server/react-server/getConfigNow.tsx'; import getFormats from '../server/react-server/getFormats.tsx'; import {getLocale, getTimeZone} from '../server.react-server.tsx'; diff --git a/packages/next-intl/src/react-server/testUtils.tsx b/packages/next-intl/src/react-server/testUtils.tsx index b588b6867..09ea87257 100644 --- a/packages/next-intl/src/react-server/testUtils.tsx +++ b/packages/next-intl/src/react-server/testUtils.tsx @@ -1,8 +1,9 @@ -import {ReactNode, Suspense} from 'react'; -import {ReactDOMServerReadableStream} from 'react-dom/server'; +import {type ReactNode, Suspense} from 'react'; +import type {ReactDOMServerReadableStream} from 'react-dom/server'; // @ts-expect-error -- Not available in types import {renderToReadableStream as _renderToReadableStream} from 'react-dom/server.browser'; +// eslint-disable-next-line @typescript-eslint/consistent-type-imports const renderToReadableStream: typeof import('react-dom/server').renderToReadableStream = _renderToReadableStream; diff --git a/packages/next-intl/src/routing/config.tsx b/packages/next-intl/src/routing/config.tsx index 3a8d018fd..89f9e22a2 100644 --- a/packages/next-intl/src/routing/config.tsx +++ b/packages/next-intl/src/routing/config.tsx @@ -1,5 +1,5 @@ import type {NextResponse} from 'next/server.js'; -import { +import type { DomainsConfig, LocalePrefix, LocalePrefixConfigVerbose, diff --git a/packages/next-intl/src/routing/defineRouting.tsx b/packages/next-intl/src/routing/defineRouting.tsx index f8cc60781..b975a519f 100644 --- a/packages/next-intl/src/routing/defineRouting.tsx +++ b/packages/next-intl/src/routing/defineRouting.tsx @@ -1,5 +1,10 @@ -import {RoutingConfig} from './config.tsx'; -import {DomainsConfig, LocalePrefixMode, Locales, Pathnames} from './types.tsx'; +import type {RoutingConfig} from './config.tsx'; +import type { + DomainsConfig, + LocalePrefixMode, + Locales, + Pathnames +} from './types.tsx'; export default function defineRouting< const AppLocales extends Locales, diff --git a/packages/next-intl/src/routing/types.test.tsx b/packages/next-intl/src/routing/types.test.tsx index b5caa36cc..5b93b4deb 100644 --- a/packages/next-intl/src/routing/types.test.tsx +++ b/packages/next-intl/src/routing/types.test.tsx @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import {describe, it} from 'vitest'; -import {DomainConfig, LocalePrefix} from './types.tsx'; +import type {DomainConfig, LocalePrefix} from './types.tsx'; describe('LocalePrefix', () => { it('does not require a type param for simple values', () => { diff --git a/packages/next-intl/src/server/react-server/RequestLocale.tsx b/packages/next-intl/src/server/react-server/RequestLocale.tsx index 12b18c627..c045a275b 100644 --- a/packages/next-intl/src/server/react-server/RequestLocale.tsx +++ b/packages/next-intl/src/server/react-server/RequestLocale.tsx @@ -1,6 +1,6 @@ import {headers} from 'next/headers.js'; import {cache} from 'react'; -import {Locale} from 'use-intl'; +import type {Locale} from 'use-intl'; import {HEADER_LOCALE_NAME} from '../../shared/constants.tsx'; import {getCachedRequestLocale} from './RequestLocaleCache.tsx'; diff --git a/packages/next-intl/src/server/react-server/getConfig.tsx b/packages/next-intl/src/server/react-server/getConfig.tsx index 495e5423d..f1be1c66e 100644 --- a/packages/next-intl/src/server/react-server/getConfig.tsx +++ b/packages/next-intl/src/server/react-server/getConfig.tsx @@ -1,6 +1,6 @@ import {cache} from 'react'; import { - IntlConfig, + type IntlConfig, type Locale, _createCache, _createIntlFormatters, @@ -8,7 +8,7 @@ import { } from 'use-intl/core'; import {getRequestLocale} from './RequestLocale.tsx'; import createRequestConfig from './createRequestConfig.tsx'; -import {GetRequestConfigParams} from './getRequestConfig.tsx'; +import type {GetRequestConfigParams} from './getRequestConfig.tsx'; // This is automatically inherited by `NextIntlClientProvider` if // the component is rendered from a Server Component diff --git a/packages/next-intl/src/server/react-server/getFormatter.tsx b/packages/next-intl/src/server/react-server/getFormatter.tsx index 1ba57e878..f90c99ea8 100644 --- a/packages/next-intl/src/server/react-server/getFormatter.tsx +++ b/packages/next-intl/src/server/react-server/getFormatter.tsx @@ -1,5 +1,5 @@ import {cache} from 'react'; -import {type Locale, createFormatter} from 'use-intl/core'; +import type {Locale, createFormatter} from 'use-intl/core'; import getConfig from './getConfig.tsx'; import getServerFormatter from './getServerFormatter.tsx'; diff --git a/packages/next-intl/src/server/react-server/getLocale.tsx b/packages/next-intl/src/server/react-server/getLocale.tsx index caea190f8..4911306c1 100644 --- a/packages/next-intl/src/server/react-server/getLocale.tsx +++ b/packages/next-intl/src/server/react-server/getLocale.tsx @@ -1,5 +1,5 @@ import {cache} from 'react'; -import {Locale} from 'use-intl'; +import type {Locale} from 'use-intl'; import getConfig from './getConfig.tsx'; async function getLocaleCachedImpl(): Promise { diff --git a/packages/next-intl/src/server/react-server/getServerTranslator.tsx b/packages/next-intl/src/server/react-server/getServerTranslator.tsx index aec9d4a38..2c72d673f 100644 --- a/packages/next-intl/src/server/react-server/getServerTranslator.tsx +++ b/packages/next-intl/src/server/react-server/getServerTranslator.tsx @@ -1,8 +1,8 @@ import {cache} from 'react'; import { - Messages, - NamespaceKeys, - NestedKeyOf, + type Messages, + type NamespaceKeys, + type NestedKeyOf, createTranslator } from 'use-intl/core'; diff --git a/packages/next-intl/src/server/react-server/getTranslations.tsx b/packages/next-intl/src/server/react-server/getTranslations.tsx index 5615c2e46..42049bf45 100644 --- a/packages/next-intl/src/server/react-server/getTranslations.tsx +++ b/packages/next-intl/src/server/react-server/getTranslations.tsx @@ -1,5 +1,5 @@ import {cache} from 'react'; -import { +import type { Locale, Messages, NamespaceKeys, diff --git a/packages/next-intl/src/shared/NextIntlClientProvider.tsx b/packages/next-intl/src/shared/NextIntlClientProvider.tsx index d079dd428..6fde4ab3d 100644 --- a/packages/next-intl/src/shared/NextIntlClientProvider.tsx +++ b/packages/next-intl/src/shared/NextIntlClientProvider.tsx @@ -1,7 +1,7 @@ 'use client'; -import {ComponentProps} from 'react'; -import {type Locale} from 'use-intl'; +import type {ComponentProps} from 'react'; +import type {Locale} from 'use-intl'; import {IntlProvider} from 'use-intl/react'; type Props = Omit, 'locale'> & { diff --git a/packages/next-intl/src/shared/utils.tsx b/packages/next-intl/src/shared/utils.tsx index b2b4d219a..9331941e0 100644 --- a/packages/next-intl/src/shared/utils.tsx +++ b/packages/next-intl/src/shared/utils.tsx @@ -1,5 +1,5 @@ -import {LinkProps} from 'next/link.js'; -import { +import type {LinkProps} from 'next/link.js'; +import type { LocalePrefixConfigVerbose, LocalePrefixMode, Locales