Back to Medusa

{metadata.title}

www/apps/resources/app/lint/rules/no-config-on-dynamic-ui-route/page.mdx

2.17.01.8 KB
Original Source

export const metadata = { title: no-config-on-dynamic-ui-route - ESLint plugin rules, }

{metadata.title}

This rule disallows defineRouteConfig in dynamic UI routes, such as [id]/page.tsx, since they aren't added to the sidebar.

Severity

warn. This rule is enabled in the recommended preset.

What it Targets

This rule targets dynamic page.tsx files in your project's src/admin/routes directory, such as [id]/page.tsx. It reports a defineRouteConfig call in a dynamic route.

The following code is reported by the rule:

tsx
import { defineRouteConfig } from "@medusajs/admin-sdk"

const ProductPage = () => null

export const config = defineRouteConfig({
  label: "Product",
})

export default ProductPage

Instead, remove the defineRouteConfig call:

tsx
const ProductPage = () => null

export default ProductPage

Why it's Important

Dynamic UI routes aren't added to the sidebar, so defineRouteConfig has no effect and Medusa warns at runtime.

Learn more in the UI Routes documentation.

Fixable

This rule isn't auto-fixable.

Turn it Off

To turn off this rule, set it to off in your ESLint configuration:

ts
import { defineConfig } from "eslint/config"
import medusa from "@medusajs/eslint-plugin"

export default defineConfig([
  ...medusa.configs.recommended,
  {
    rules: {
      "@medusajs/no-config-on-dynamic-ui-route": "off",
    },
  },
])

Or disable it for a single line using an inline comment:

tsx
// eslint-disable-next-line @medusajs/no-config-on-dynamic-ui-route
export const config = defineRouteConfig({ label: "Product" })