@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.
- package/README.md +38 -67
- package/dist/index.d.ts +4742 -2
- package/dist/index.js +1054 -2
- package/dist/index.js.map +1 -1
- package/package.json +27 -58
- package/src/_exports/index.ts +66 -10
- package/src/components/Login/LoginLinks.test.tsx +2 -12
- package/src/components/Login/LoginLinks.tsx +14 -29
- package/src/components/SDKProvider.test.tsx +79 -0
- package/src/components/SDKProvider.tsx +42 -0
- package/src/components/SanityApp.test.tsx +156 -0
- package/src/components/SanityApp.tsx +90 -0
- package/src/components/auth/AuthBoundary.test.tsx +4 -17
- package/src/components/auth/AuthBoundary.tsx +20 -4
- package/src/components/auth/Login.test.tsx +2 -16
- package/src/components/auth/Login.tsx +11 -30
- package/src/components/auth/LoginCallback.test.tsx +2 -17
- package/src/components/auth/LoginCallback.tsx +5 -10
- package/src/components/auth/LoginError.test.tsx +2 -17
- package/src/components/auth/LoginError.tsx +11 -16
- package/src/components/auth/LoginFooter.test.tsx +2 -16
- package/src/components/auth/LoginFooter.tsx +8 -24
- package/src/components/auth/LoginLayout.test.tsx +2 -16
- package/src/components/auth/LoginLayout.tsx +8 -38
- package/src/components/auth/authTestHelpers.tsx +11 -0
- package/src/components/utils.ts +22 -0
- package/src/context/SanityInstanceContext.ts +4 -0
- package/src/{components/context → context}/SanityProvider.test.tsx +2 -2
- package/src/context/SanityProvider.tsx +50 -0
- package/src/hooks/_synchronous-groq-js.mjs +4 -0
- package/src/hooks/auth/useAuthState.tsx +4 -5
- package/src/hooks/auth/useAuthToken.tsx +1 -1
- package/src/hooks/auth/useCurrentUser.tsx +27 -4
- package/src/hooks/auth/useDashboardOrganizationId.test.tsx +42 -0
- package/src/hooks/auth/useDashboardOrganizationId.tsx +29 -0
- package/src/hooks/auth/useHandleCallback.tsx +1 -0
- package/src/hooks/auth/useLogOut.tsx +1 -1
- package/src/hooks/auth/useLoginUrls.tsx +1 -0
- package/src/hooks/client/useClient.ts +8 -30
- package/src/hooks/comlink/useFrameConnection.test.tsx +167 -0
- package/src/hooks/comlink/useFrameConnection.ts +107 -0
- package/src/hooks/comlink/useManageFavorite.test.ts +106 -0
- package/src/hooks/comlink/useManageFavorite.ts +101 -0
- package/src/hooks/comlink/useRecordDocumentHistoryEvent.test.ts +77 -0
- package/src/hooks/comlink/useRecordDocumentHistoryEvent.ts +79 -0
- package/src/hooks/comlink/useWindowConnection.test.ts +135 -0
- package/src/hooks/comlink/useWindowConnection.ts +122 -0
- package/src/hooks/context/useSanityInstance.test.tsx +2 -2
- package/src/hooks/context/useSanityInstance.ts +24 -8
- package/src/hooks/dashboard/useNavigateToStudioDocument.ts +97 -0
- package/src/hooks/dashboard/useStudioWorkspacesByResourceId.test.tsx +274 -0
- package/src/hooks/dashboard/useStudioWorkspacesByResourceId.ts +91 -0
- package/src/hooks/datasets/useDatasets.ts +37 -0
- package/src/hooks/document/useApplyActions.test.ts +25 -0
- package/src/hooks/document/useApplyActions.ts +74 -0
- package/src/hooks/document/useDocument.test.ts +81 -0
- package/src/hooks/document/useDocument.ts +107 -0
- package/src/hooks/document/useDocumentEvent.test.ts +63 -0
- package/src/hooks/document/useDocumentEvent.ts +54 -0
- package/src/hooks/document/useDocumentSyncStatus.test.ts +16 -0
- package/src/hooks/document/useDocumentSyncStatus.ts +30 -0
- package/src/hooks/document/useEditDocument.test.ts +179 -0
- package/src/hooks/document/useEditDocument.ts +195 -0
- package/src/hooks/document/usePermissions.ts +82 -0
- package/src/hooks/helpers/createCallbackHook.tsx +3 -2
- package/src/hooks/helpers/createStateSourceHook.test.tsx +66 -0
- package/src/hooks/helpers/createStateSourceHook.tsx +29 -10
- package/src/hooks/infiniteList/useInfiniteList.test.tsx +152 -0
- package/src/hooks/infiniteList/useInfiniteList.ts +174 -0
- package/src/hooks/paginatedList/usePaginatedList.test.tsx +259 -0
- package/src/hooks/paginatedList/usePaginatedList.ts +290 -0
- package/src/hooks/preview/usePreview.test.tsx +19 -10
- package/src/hooks/preview/usePreview.tsx +67 -13
- package/src/hooks/projection/useProjection.test.tsx +218 -0
- package/src/hooks/projection/useProjection.ts +147 -0
- package/src/hooks/projects/useProject.ts +45 -0
- package/src/hooks/projects/useProjects.ts +41 -0
- package/src/hooks/query/useQuery.test.tsx +188 -0
- package/src/hooks/query/useQuery.ts +103 -0
- package/src/hooks/users/useUsers.test.ts +163 -0
- package/src/hooks/users/useUsers.ts +107 -0
- package/src/utils/getEnv.ts +21 -0
- package/src/version.ts +8 -0
- package/src/vite-env.d.ts +10 -0
- package/dist/_chunks-es/useLogOut.js +0 -44
- package/dist/_chunks-es/useLogOut.js.map +0 -1
- package/dist/assets/bundle-CcAyERuZ.css +0 -11
- package/dist/components.d.ts +0 -257
- package/dist/components.js +0 -316
- package/dist/components.js.map +0 -1
- package/dist/hooks.d.ts +0 -187
- package/dist/hooks.js +0 -81
- package/dist/hooks.js.map +0 -1
- package/src/_exports/components.ts +0 -13
- package/src/_exports/hooks.ts +0 -9
- package/src/components/DocumentGridLayout/DocumentGridLayout.stories.tsx +0 -113
- package/src/components/DocumentGridLayout/DocumentGridLayout.test.tsx +0 -42
- package/src/components/DocumentGridLayout/DocumentGridLayout.tsx +0 -21
- package/src/components/DocumentListLayout/DocumentListLayout.stories.tsx +0 -105
- package/src/components/DocumentListLayout/DocumentListLayout.test.tsx +0 -42
- package/src/components/DocumentListLayout/DocumentListLayout.tsx +0 -12
- package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.md +0 -49
- package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.stories.tsx +0 -39
- package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.test.tsx +0 -30
- package/src/components/DocumentPreviewLayout/DocumentPreviewLayout.tsx +0 -171
- package/src/components/context/SanityProvider.tsx +0 -42
- package/src/css/css.config.js +0 -220
- package/src/css/paramour.css +0 -2347
- package/src/css/styles.css +0 -11
- package/src/hooks/client/useClient.test.tsx +0 -130
- package/src/hooks/documentCollection/useDocuments.test.ts +0 -130
- 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
|
|
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
|
|
13
|
+
npm i @sanity/sdk-react @sanity/sdk
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
33
|
+
2. Install dependencies
|
|
71
34
|
|
|
72
|
-
|
|
35
|
+
```bash
|
|
36
|
+
npm i
|
|
37
|
+
```
|
|
73
38
|
|
|
74
|
-
|
|
39
|
+
3. Run the app
|
|
75
40
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
47
|
+
```
|
|
48
|
+
https://core.sanity.io/<your-organization-id>?dev=http://localhost:3333
|
|
49
|
+
```
|
|
85
50
|
|
|
86
|
-
|
|
51
|
+
5. Update the `src/App.tsx` file with your Sanity project and dataset
|
|
87
52
|
|
|
88
53
|
```tsx
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|