Updated/Migrated the active-class-name example to the App router
This PR contains the Following Changes.
Pages folder Converted into App Folder.
Updated file Structure according to the App Router convention
Updated ActiveLink Component as per App router.
---------
Co-authored-by: samcx <sam@vercel.com>
### Description
The current implementation of the activeClassName example doesn't
support the `UrlObject` type for the "href" Link prop.
For example
```
<ActiveLink
activeClassName="active"
className="nav-link"
href={{
pathname: "/[slug]",
query: {
slug: "dynamic-route",
},
}}
>
Dynamic Route
</ActiveLink>
```
won't work.
### Suggestion
We can use the `resolveHref` function to handle all cases.
Co-authored-by: Sam Ko <sam@vercel.com>
## Description
This PR ensures that the default prettier config is used for examples
and templates.
This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).
## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)
## Related
- Fixes#54402
- Closes#54409
The Contributing guidelines say TypeScript should be leveraged for new examples, so I thought I'd convert this example over.
I also:
- Upgraded all dependencies
- Replaced the `prop-types` package with TypeScript types
## Documentation / Examples
- [X] Make sure the linting passes by running `pnpm lint`
- [X] The examples guidelines are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing.md#adding-examples)