35 lines
1,008 B
Markdown
35 lines
1,008 B
Markdown
|
# Removed parsed User Agent from Middleware API
|
||
|
|
||
|
#### Why This Error Occurred
|
||
|
|
||
|
Your application is interacting with `req.ua` which has been deprecated.
|
||
|
|
||
|
```ts
|
||
|
// middleware.ts
|
||
|
import { NextRequest, NextResponse } from 'next/server'
|
||
|
|
||
|
export function middleware(request: NextRequest) {
|
||
|
const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop'
|
||
|
|
||
|
request.nextUrl.searchParams.set('viewport', viewport)
|
||
|
return NextResponse.rewrites(request.nextUrl)
|
||
|
}
|
||
|
```
|
||
|
|
||
|
#### Possible Ways to Fix It
|
||
|
|
||
|
The internal logic has been moved into a separate `userAgent` function that you can import from `next/server` and wrap your request instead.
|
||
|
|
||
|
```ts
|
||
|
// middleware.ts
|
||
|
import { NextRequest, NextResponse, userAgent } from 'next/server'
|
||
|
|
||
|
export function middleware(request: NextRequest) {
|
||
|
const { device } = userAgent(request)
|
||
|
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
|
||
|
|
||
|
request.nextUrl.searchParams.set('viewport', viewport)
|
||
|
return NextResponse.rewrites(request.nextUrl)
|
||
|
}
|
||
|
```
|