@sanity/sdk-react 0.0.0-alpha.2 → 0.0.0-alpha.20

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 (112) hide show
  1. package/README.md +38 -67
  2. package/dist/index.d.ts +4742 -2
  3. package/dist/index.js +1054 -2
  4. package/dist/index.js.map +1 -1
  5. package/package.json +27 -58
  6. package/src/_exports/index.ts +66 -10
  7. package/src/components/Login/LoginLinks.test.tsx +2 -12
  8. package/src/components/Login/LoginLinks.tsx +14 -29
  9. package/src/components/SDKProvider.test.tsx +79 -0
  10. package/src/components/SDKProvider.tsx +42 -0
  11. package/src/components/SanityApp.test.tsx +156 -0
  12. package/src/components/SanityApp.tsx +90 -0
  13. package/src/components/auth/AuthBoundary.test.tsx +4 -17
  14. package/src/components/auth/AuthBoundary.tsx +20 -4
  15. package/src/components/auth/Login.test.tsx +2 -16
  16. package/src/components/auth/Login.tsx +11 -30
  17. package/src/components/auth/LoginCallback.test.tsx +2 -17
  18. package/src/components/auth/LoginCallback.tsx +5 -10
  19. package/src/components/auth/LoginError.test.tsx +2 -17
  20. package/src/components/auth/LoginError.tsx +11 -16
  21. package/src/components/auth/LoginFooter.test.tsx +2 -16
  22. package/src/components/auth/LoginFooter.tsx +8 -24
  23. package/src/components/auth/LoginLayout.test.tsx +2 -16
  24. package/src/components/auth/LoginLayout.tsx +8 -38
  25. package/src/components/auth/authTestHelpers.tsx +11 -0
  26. package/src/components/utils.ts +22 -0
  27. package/src/context/SanityInstanceContext.ts +4 -0
  28. package/src/{components/context → context}/SanityProvider.test.tsx +2 -2
  29. package/src/context/SanityProvider.tsx +50 -0
  30. package/src/hooks/_synchronous-groq-js.mjs +4 -0
  31. package/src/hooks/auth/useAuthState.tsx +4 -5
  32. package/src/hooks/auth/useAuthToken.tsx +1 -1
  33. package/src/hooks/auth/useCurrentUser.tsx +27 -4
  34. package/src/hooks/auth/useDashboardOrganizationId.test.tsx +42 -0
  35. package/src/hooks/auth/useDashboardOrganizationId.tsx +29 -0
  36. package/src/hooks/auth/useHandleCallback.tsx +1 -0
  37. package/src/hooks/auth/useLogOut.tsx +1 -1
  38. package/src/hooks/auth/useLoginUrls.tsx +1 -0
  39. package/src/hooks/client/useClient.ts +8 -30
  40. package/src/hooks/comlink/useFrameConnection.test.tsx +167 -0
  41. package/src/hooks/comlink/useFrameConnection.ts +107 -0
  42. package/src/hooks/comlink/useManageFavorite.test.ts +106 -0
  43. package/src/hooks/comlink/useManageFavorite.ts +101 -0
  44. package/src/hooks/comlink/useRecordDocumentHistoryEvent.test.ts +77 -0
  45. package/src/hooks/comlink/useRecordDocumentHistoryEvent.ts +79 -0
  46. package/src/hooks/comlink/useWindowConnection.test.ts +135 -0
  47. package/src/hooks/comlink/useWindowConnection.ts +122 -0
  48. package/src/hooks/context/useSanityInstance.test.tsx +2 -2
  49. package/src/hooks/context/useSanityInstance.ts +24 -8
  50. package/src/hooks/dashboard/useNavigateToStudioDocument.ts +97 -0
  51. package/src/hooks/dashboard/useStudioWorkspacesByResourceId.test.tsx +274 -0
  52. package/src/hooks/dashboard/useStudioWorkspacesByResourceId.ts +91 -0
  53. package/src/hooks/datasets/useDatasets.ts +37 -0
  54. package/src/hooks/document/useApplyActions.test.ts +25 -0
  55. package/src/hooks/document/useApplyActions.ts +74 -0
  56. package/src/hooks/document/useDocument.test.ts +81 -0
  57. package/src/hooks/document/useDocument.ts +107 -0
  58. package/src/hooks/document/useDocumentEvent.test.ts +63 -0
  59. package/src/hooks/document/useDocumentEvent.ts +54 -0
  60. package/src/hooks/document/useDocumentSyncStatus.test.ts +16 -0
  61. package/src/hooks/document/useDocumentSyncStatus.ts +30 -0
  62. package/src/hooks/document/useEditDocument.test.ts +179 -0
  63. package/src/hooks/document/useEditDocument.ts +195 -0
  64. package/src/hooks/document/usePermissions.ts +82 -0
  65. package/src/hooks/helpers/createCallbackHook.tsx +3 -2
  66. package/src/hooks/helpers/createStateSourceHook.test.tsx +66 -0
  67. package/src/hooks/helpers/createStateSourceHook.tsx +29 -10
  68. package/src/hooks/infiniteList/useInfiniteList.test.tsx +152 -0
  69. package/src/hooks/infiniteList/useInfiniteList.ts +174 -0
  70. package/src/hooks/paginatedList/usePaginatedList.test.tsx +259 -0
  71. package/src/hooks/paginatedList/usePaginatedList.ts +290 -0
  72. package/src/hooks/preview/usePreview.test.tsx +19 -10
  73. package/src/hooks/preview/usePreview.tsx +67 -13
  74. package/src/hooks/projection/useProjection.test.tsx +218 -0
  75. package/src/hooks/projection/useProjection.ts +147 -0
  76. package/src/hooks/projects/useProject.ts +45 -0
  77. package/src/hooks/projects/useProjects.ts +41 -0
  78. package/src/hooks/query/useQuery.test.tsx +188 -0
  79. package/src/hooks/query/useQuery.ts +103 -0
  80. package/src/hooks/users/useUsers.test.ts +163 -0
  81. package/src/hooks/users/useUsers.ts +107 -0
  82. package/src/utils/getEnv.ts +21 -0
  83. package/src/version.ts +8 -0
  84. package/src/vite-env.d.ts +10 -0
  85. package/dist/_chunks-es/useLogOut.js +0 -44
  86. package/dist/_chunks-es/useLogOut.js.map +0 -1
  87. package/dist/assets/bundle-CcAyERuZ.css +0 -11
  88. package/dist/components.d.ts +0 -257
  89. package/dist/components.js +0 -316
  90. package/dist/components.js.map +0 -1
  91. package/dist/hooks.d.ts +0 -187
  92. package/dist/hooks.js +0 -81
  93. package/dist/hooks.js.map +0 -1
  94. package/src/_exports/components.ts +0 -13
  95. package/src/_exports/hooks.ts +0 -9
  96. package/src/components/DocumentGridLayout/DocumentGridLayout.stories.tsx +0 -113
  97. package/src/components/DocumentGridLayout/DocumentGridLayout.test.tsx +0 -42
  98. package/src/components/DocumentGridLayout/DocumentGridLayout.tsx +0 -21
  99. package/src/components/DocumentListLayout/DocumentListLayout.stories.tsx +0 -105
  100. package/src/components/DocumentListLayout/DocumentListLayout.test.tsx +0 -42
  101. package/src/components/DocumentListLayout/DocumentListLayout.tsx +0 -12
  102. package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.md +0 -49
  103. package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.stories.tsx +0 -39
  104. package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.test.tsx +0 -30
  105. package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.tsx +0 -171
  106. package/src/components/context/SanityProvider.tsx +0 -42
  107. package/src/css/css.config.js +0 -220
  108. package/src/css/paramour.css +0 -2347
  109. package/src/css/styles.css +0 -11
  110. package/src/hooks/client/useClient.test.tsx +0 -130
  111. package/src/hooks/documentCollection/useDocuments.test.ts +0 -130
  112. package/src/hooks/documentCollection/useDocuments.ts +0 -87
package/README.md CHANGED
@@ -5,93 +5,64 @@
5
5
  <h1 align="center">Sanity SDK - React</h1>
6
6
  </p>
7
7
 
8
- React components and hooks for creating Sanity applications.
8
+ React hooks for creating Sanity applications.
9
9
 
10
- ## Installation
10
+ ## 💻 Installation
11
11
 
12
12
  ```bash
13
- npm i @sanity/sdk-react @sanity/sdk styled-components
13
+ npm i @sanity/sdk-react @sanity/sdk
14
14
  ```
15
15
 
16
- ## SDK Documentation
16
+ > 💡 Looking to build a Sanity application? Check out the [Quick Start](#quick-start) section.
17
+
18
+ ## 📚 SDK Documentation
17
19
 
18
20
  See the [SDK Documentation](https://sdk-docs.sanity.dev) for more information.
19
21
 
20
- ## Quick Start
22
+ ## 🚀 Quick Start
21
23
 
22
24
  Here's how to implement your Sanity application:
23
25
 
24
- ```tsx
25
- import {createSanityInstance} from '@sanity/sdk'
26
- import {AuthBoundary, SanityProvider} from '@sanity/sdk-react/components'
27
- import {useCurrentUser, useLogOut} from '@sanity/sdk-react/hooks'
28
- import {Button, Flex, Spinner, Text, ThemeProvider} from '@sanity/ui'
29
- import {buildTheme} from '@sanity/ui/theme'
30
- import {Suspense} from 'react'
31
-
32
- const theme = buildTheme({})
33
- const sanityInstance = createSanityInstance({
34
- projectId: '<your-project-id>',
35
- dataset: '<your-dataset>',
36
- // optional auth config set projectId and dataset to '' and authScope to 'org' for a global token
37
- // auth: {
38
- // authScope: 'org',
39
- // ...
40
- // },
41
- })
42
-
43
- export function App(): JSX.Element {
44
- return (
45
- <ThemeProvider theme={theme}>
46
- <Suspense fallback={<Spinner />}>
47
- <SanityProvider sanityInstance={sanityInstance}>
48
- <AuthBoundary header={<Text>My Sanity App</Text>}>
49
- <Authenticated />
50
- </AuthBoundary>
51
- </SanityProvider>
52
- </Suspense>
53
- </ThemeProvider>
54
- )
55
- }
56
-
57
- function Authenticated() {
58
- const currentUser = useCurrentUser()
59
- const logout = useLogOut()
60
-
61
- return (
62
- <Flex direction="column" gap={2}>
63
- <Text>Hello, {currentUser?.name}!</Text>
64
- <Button text="Logout" onClick={logout} mode="ghost" />
65
- </Flex>
66
- )
67
- }
26
+ 1. Create a new React TypeScript project using the Sanity template
27
+
28
+ ```bash
29
+ pnpx sanity@latest init --template app-quickstart
30
+ cd my-content-os-app
68
31
  ```
69
32
 
70
- ## Customizing your application
33
+ 2. Install dependencies
71
34
 
72
- If you would like to implement a custom look and feel, you can use the hooks in your own components.
35
+ ```bash
36
+ npm i
37
+ ```
73
38
 
74
- ## Available Hooks
39
+ 3. Run the app
75
40
 
76
- - `useAuthState` - Get current authentication state
77
- - `useCurrentUser` - Access the currently authenticated user
78
- - `useAuthToken` - Access the authentication token
79
- - `useLoginUrls` - Get OAuth login URLs
80
- - `useLogOut` - Handle user logout
81
- - `useSanityInstance` - Access the Sanity client instance
82
- - and more...
41
+ ```bash
42
+ npm run dev
43
+ ```
44
+
45
+ 4. Open the App in Sanity Dashboard with your organization ID
83
46
 
84
- ## TypeScript Support
47
+ ```
48
+ https://core.sanity.io/<your-organization-id>?dev=http://localhost:3333
49
+ ```
85
50
 
86
- This package includes TypeScript definitions. You can import types like:
51
+ 5. Update the `src/App.tsx` file with your Sanity project and dataset
87
52
 
88
53
  ```tsx
89
- import type {
90
- SanityProviderProps,
91
- AuthBoundaryProps,
92
- LoginLayoutProps,
93
- LoginErrorProps,
94
- } from '@sanity/react'
54
+ // src/App.tsx
55
+ import {createSanityInstance} from '@sanity/sdk'
56
+ ...
57
+
58
+ const sanityConfig: SanityConfigs = [
59
+ {
60
+ projectId: 'abc123',
61
+ dataset: 'production',
62
+ },
63
+ ]
64
+
65
+ ...
95
66
  ```
96
67
 
97
68
  ## License