@sanity/sdk-react 2.10.0 → 2.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/index.d.ts +257 -200
  2. package/dist/index.js +368 -257
  3. package/dist/index.js.map +1 -1
  4. package/package.json +21 -24
  5. package/src/_exports/index.ts +2 -0
  6. package/src/_exports/sdk-react.ts +4 -0
  7. package/src/components/SDKProvider.test.tsx +5 -12
  8. package/src/components/SDKProvider.tsx +26 -24
  9. package/src/components/errors/CorsErrorComponent.tsx +2 -2
  10. package/src/config/handles.ts +55 -0
  11. package/src/constants.ts +5 -0
  12. package/src/context/DefaultResourceContext.ts +10 -0
  13. package/src/context/PerspectiveContext.ts +12 -0
  14. package/src/context/ResourceProvider.test.tsx +2 -2
  15. package/src/context/ResourceProvider.tsx +53 -49
  16. package/src/hooks/agent/agentActions.ts +55 -38
  17. package/src/hooks/context/useResource.test.tsx +32 -0
  18. package/src/hooks/context/useResource.ts +24 -0
  19. package/src/hooks/context/useSanityInstance.test.tsx +42 -111
  20. package/src/hooks/context/useSanityInstance.ts +28 -50
  21. package/src/hooks/dashboard/useDispatchIntent.test.ts +5 -1
  22. package/src/hooks/dashboard/useDispatchIntent.ts +3 -3
  23. package/src/hooks/dashboard/useManageFavorite.test.tsx +16 -12
  24. package/src/hooks/dashboard/utils/useResourceIdFromDocumentHandle.ts +1 -5
  25. package/src/hooks/document/{useApplyDocumentActions.test.ts → useApplyDocumentActions.test.tsx} +42 -77
  26. package/src/hooks/document/useApplyDocumentActions.ts +29 -63
  27. package/src/hooks/document/useDocument.ts +5 -7
  28. package/src/hooks/document/useDocumentEvent.ts +4 -3
  29. package/src/hooks/document/useDocumentPermissions.test.tsx +58 -150
  30. package/src/hooks/document/useDocumentPermissions.ts +78 -55
  31. package/src/hooks/document/useEditDocument.test.tsx +25 -60
  32. package/src/hooks/document/useEditDocument.ts +1 -1
  33. package/src/hooks/documents/useDocuments.ts +13 -8
  34. package/src/hooks/helpers/createStateSourceHook.tsx +1 -2
  35. package/src/hooks/helpers/useNormalizedResourceOptions.test.tsx +253 -0
  36. package/src/hooks/helpers/useNormalizedResourceOptions.ts +85 -47
  37. package/src/hooks/organizations/useOrganization.test-d.ts +53 -0
  38. package/src/hooks/organizations/useOrganization.test.ts +65 -0
  39. package/src/hooks/organizations/useOrganization.ts +40 -0
  40. package/src/hooks/organizations/useOrganizations.test-d.ts +55 -0
  41. package/src/hooks/organizations/useOrganizations.test.ts +85 -0
  42. package/src/hooks/organizations/useOrganizations.ts +45 -0
  43. package/src/hooks/paginatedDocuments/usePaginatedDocuments.ts +23 -9
  44. package/src/hooks/presence/usePresence.ts +4 -11
  45. package/src/hooks/preview/useDocumentPreview.tsx +4 -7
  46. package/src/hooks/projection/useDocumentProjection.ts +5 -7
  47. package/src/hooks/projects/useProject.test-d.ts +49 -0
  48. package/src/hooks/projects/useProject.ts +33 -41
  49. package/src/hooks/projects/useProjects.test-d.ts +49 -0
  50. package/src/hooks/projects/useProjects.ts +17 -23
  51. package/src/hooks/query/useQuery.ts +1 -1
  52. package/src/hooks/releases/useActiveReleases.ts +6 -6
  53. package/src/hooks/releases/usePerspective.ts +7 -12
  54. package/src/hooks/users/useUser.ts +1 -1
  55. package/src/hooks/users/useUsers.ts +1 -1
@@ -29,11 +29,11 @@ import {
29
29
  * const activeReleases = useActiveReleases()
30
30
  * ```
31
31
  */
32
- type UseActiveReleases = {
33
- (options?: WithResourceNameSupport<SanityConfig> | undefined): ReleaseDocument[]
32
+ type UseActiveReleasesValue = {
33
+ (options?: {resource?: DocumentResource}): ReleaseDocument[]
34
34
  }
35
35
 
36
- const useActiveReleasesValue: UseActiveReleases = createStateSourceHook({
36
+ const useActiveReleasesValue: UseActiveReleasesValue = createStateSourceHook({
37
37
  getState: getActiveReleasesState as (
38
38
  instance: SanityInstance,
39
39
  options?: {resource?: DocumentResource},
@@ -50,9 +50,9 @@ const useActiveReleasesValue: UseActiveReleases = createStateSourceHook({
50
50
  * @public
51
51
  * @function
52
52
  */
53
- export const useActiveReleases: UseActiveReleases = (
54
- options: WithResourceNameSupport<{resource?: DocumentResource}> | undefined,
55
- ) => {
53
+ export function useActiveReleases(
54
+ options?: WithResourceNameSupport<SanityConfig> | undefined,
55
+ ): ReleaseDocument[] {
56
56
  const normalizedOptions = useNormalizedResourceOptions(options ?? {})
57
57
  return useActiveReleasesValue(normalizedOptions)
58
58
  }
@@ -1,5 +1,4 @@
1
1
  import {
2
- type DatasetHandle,
3
2
  type DocumentResource,
4
3
  getPerspectiveState,
5
4
  type SanityInstance,
@@ -7,11 +6,9 @@ import {
7
6
  } from '@sanity/sdk'
8
7
  import {filter, firstValueFrom} from 'rxjs'
9
8
 
9
+ import {type ResourceHandle} from '../../config/handles'
10
10
  import {createStateSourceHook} from '../helpers/createStateSourceHook'
11
- import {
12
- useNormalizedResourceOptions,
13
- type WithResourceNameSupport,
14
- } from '../helpers/useNormalizedResourceOptions'
11
+ import {useNormalizedResourceOptions} from '../helpers/useNormalizedResourceOptions'
15
12
 
16
13
  /**
17
14
  * @public
@@ -35,11 +32,11 @@ import {
35
32
  *
36
33
  * @returns The perspective for the given perspective handle.
37
34
  */
38
- type UsePerspective = {
39
- (perspectiveHandle: DatasetHandle): string | string[]
35
+ type UsePerspectiveValue = {
36
+ (perspectiveHandle: {resource?: DocumentResource}): string | string[]
40
37
  }
41
38
 
42
- const usePerspectiveValue: UsePerspective = createStateSourceHook({
39
+ const usePerspectiveValue: UsePerspectiveValue = createStateSourceHook({
43
40
  getState: getPerspectiveState as (
44
41
  instance: SanityInstance,
45
42
  perspectiveHandle?: {resource?: DocumentResource},
@@ -54,9 +51,7 @@ const usePerspectiveValue: UsePerspective = createStateSourceHook({
54
51
  * @public
55
52
  * @function
56
53
  */
57
- export const usePerspective: UsePerspective = (
58
- options: WithResourceNameSupport<DatasetHandle> | undefined,
59
- ) => {
60
- const normalizedOptions = useNormalizedResourceOptions(options ?? {})
54
+ export function usePerspective(perspectiveHandle?: ResourceHandle): string | string[] {
55
+ const normalizedOptions = useNormalizedResourceOptions(perspectiveHandle ?? {})
61
56
  return usePerspectiveValue(normalizedOptions)
62
57
  }
@@ -59,7 +59,7 @@ export interface UserResult {
59
59
  * ```
60
60
  */
61
61
  export function useUser(options: GetUserOptions): UserResult {
62
- const instance = useSanityInstance(options)
62
+ const instance = useSanityInstance()
63
63
  trackHookUsage(instance, 'useUser')
64
64
  // Use React's useTransition to avoid UI jank when user options change
65
65
  const [isPending, startTransition] = useTransition()
@@ -69,7 +69,7 @@ export interface UsersResult {
69
69
  * ```
70
70
  */
71
71
  export function useUsers(options?: GetUsersOptions): UsersResult {
72
- const instance = useSanityInstance(options)
72
+ const instance = useSanityInstance()
73
73
  trackHookUsage(instance, 'useUsers')
74
74
  // Use React's useTransition to avoid UI jank when user options change
75
75
  const [isPending, startTransition] = useTransition()