Skip to content

Commit bcd61a3

Browse files
committed
Add resolvePerspectiveFromCookies export
1 parent fa4f853 commit bcd61a3

File tree

6 files changed

+37
-5
lines changed

6 files changed

+37
-5
lines changed

.changeset/yummy-bears-juggle.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"next-sanity": minor
3+
---
4+
5+
Add `resolvePerspectiveFromCookies` export

packages/next-sanity/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@
4242
"./live/client-components/live": "./src/live/client-components/live/index.ts",
4343
"./live/client-components/live-stream": "./src/live/client-components/live-stream/index.ts",
4444
"./live/server-actions": "./src/live/server-actions/index.ts",
45-
"./package.json": "./package.json",
4645
"./studio": "./src/studio/index.ts",
4746
"./studio/client-component": "./src/studio/client-component/index.ts",
4847
"./visual-editing": "./src/visual-editing/index.ts",
4948
"./visual-editing/client-component": "./src/visual-editing/client-component/index.ts",
5049
"./visual-editing/server-actions": "./src/visual-editing/server-actions/index.ts",
51-
"./webhook": "./src/webhook/index.ts"
50+
"./webhook": "./src/webhook/index.ts",
51+
"./package.json": "./package.json"
5252
},
5353
"module": "./dist/index.js",
5454
"types": "./dist/index.d.ts",

packages/next-sanity/src/live.next-js.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export {
99
type DefinedSanityLiveProps,
1010
type SanityFetchOptions,
1111
defineLive,
12-
resolvePerspectiveFromCookies,
1312
} from './experimental/live'
13+
14+
export {resolvePerspectiveFromCookies} from '#live/resolvePerspectiveFromCookies'

packages/next-sanity/src/live.react-server.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ export {
1111
type DefinedSanityLiveStreamType,
1212
defineLive,
1313
} from './live/defineLive'
14+
15+
export {resolvePerspectiveFromCookies} from '#live/resolvePerspectiveFromCookies'

packages/next-sanity/src/live.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export function defineLive(_config: DefineSanityLiveOptions): {
2121
SanityLive: React.ComponentType<DefinedSanityLiveProps>
2222
SanityLiveStream: DefinedSanityLiveStreamType
2323
} {
24-
throw new Error('defineLive can only be used in React Server Components')
24+
throw new Error(`defineLive can't be imported by a client component`)
2525
}
2626

2727
/**
@@ -33,3 +33,13 @@ export type {
3333
DefinedSanityLiveProps,
3434
DefinedSanityLiveStreamType,
3535
}
36+
37+
import type {ResolvePerspectiveFromCookies} from '#live/resolvePerspectiveFromCookies'
38+
39+
/**
40+
* Resolves the perspective from the cookie that is set by `import { defineEnableDraftMode } from "next-sanity/draft-mode"`
41+
* @public
42+
*/
43+
export const resolvePerspectiveFromCookies: ResolvePerspectiveFromCookies = async () => {
44+
throw new Error(`resolvePerspectiveFromCookies can't be imported by a client component`)
45+
}

packages/next-sanity/src/shared/live/resolvePerspectiveFromCookies.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,25 @@ import type {cookies} from 'next/headers'
44
import {sanitizePerspective} from '#live/sanitizePerspective'
55
import {perspectiveCookieName} from '@sanity/preview-url-secret/constants'
66

7+
export type ResolvePerspectiveFromCookies = (options: {
8+
/**
9+
* You must await the cookies() function from next/headers
10+
* and pass it here.
11+
* Example:
12+
* ```ts
13+
* import { cookies } from 'next/headers'
14+
*
15+
* const perspective = await resolvePerspectiveFromCookies({cookies: await cookies()})
16+
* ```
17+
*/
18+
cookies: Awaited<ReturnType<typeof cookies>>
19+
}) => Promise<Exclude<ClientPerspective, 'raw'>>
20+
721
/**
822
* Resolves the perspective from the cookie that is set by `import { defineEnableDraftMode } from "next-sanity/draft-mode"`
923
* @public
1024
*/
11-
export async function resolvePerspectiveFromCookies({
25+
export const resolvePerspectiveFromCookies = async function resolvePerspectiveFromCookies({
1226
cookies: jar,
1327
}: {
1428
cookies: Awaited<ReturnType<typeof cookies>>

0 commit comments

Comments
 (0)