www/apps/resources/app/lint/rules/no-config-on-dynamic-ui-route/page.mdx
export const metadata = {
title: no-config-on-dynamic-ui-route - ESLint plugin rules,
}
This rule disallows defineRouteConfig in dynamic UI routes, such as [id]/page.tsx, since they aren't added to the sidebar.
warn. This rule is enabled in the recommended preset.
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:
import { defineRouteConfig } from "@medusajs/admin-sdk"
const ProductPage = () => null
export const config = defineRouteConfig({
label: "Product",
})
export default ProductPage
Instead, remove the defineRouteConfig call:
const ProductPage = () => null
export default ProductPage
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.
This rule isn't auto-fixable.
To turn off this rule, set it to off in your ESLint configuration:
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:
// eslint-disable-next-line @medusajs/no-config-on-dynamic-ui-route
export const config = defineRouteConfig({ label: "Product" })