@sanity/sdk-react 0.0.0-alpha.3 → 0.0.0-alpha.31
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 +6 -100
- package/dist/index.d.ts +2390 -2
- package/dist/index.js +1119 -2
- package/dist/index.js.map +1 -1
- package/package.json +35 -49
- package/src/_exports/index.ts +2 -10
- package/src/_exports/sdk-react.ts +73 -0
- package/src/components/SDKProvider.test.tsx +103 -0
- package/src/components/SDKProvider.tsx +52 -0
- package/src/components/SanityApp.test.tsx +244 -0
- package/src/components/SanityApp.tsx +106 -0
- package/src/components/auth/AuthBoundary.test.tsx +204 -29
- package/src/components/auth/AuthBoundary.tsx +96 -19
- package/src/components/auth/ConfigurationError.ts +22 -0
- package/src/components/auth/LoginCallback.test.tsx +22 -24
- package/src/components/auth/LoginCallback.tsx +6 -16
- package/src/components/auth/LoginError.test.tsx +11 -18
- package/src/components/auth/LoginError.tsx +43 -25
- package/src/components/utils.ts +22 -0
- package/src/context/ResourceProvider.test.tsx +157 -0
- package/src/context/ResourceProvider.tsx +111 -0
- package/src/context/SanityInstanceContext.ts +4 -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 +28 -4
- package/src/hooks/auth/useDashboardOrganizationId.test.tsx +42 -0
- package/src/hooks/auth/useDashboardOrganizationId.tsx +30 -0
- package/src/hooks/auth/useHandleAuthCallback.test.tsx +16 -0
- package/src/hooks/auth/{useHandleCallback.tsx → useHandleAuthCallback.tsx} +7 -6
- package/src/hooks/auth/useLogOut.test.tsx +2 -2
- package/src/hooks/auth/useLogOut.tsx +1 -1
- package/src/hooks/auth/useLoginUrl.tsx +14 -0
- package/src/hooks/auth/useVerifyOrgProjects.test.tsx +136 -0
- package/src/hooks/auth/useVerifyOrgProjects.tsx +48 -0
- package/src/hooks/client/useClient.ts +13 -33
- package/src/hooks/comlink/useFrameConnection.test.tsx +167 -0
- package/src/hooks/comlink/useFrameConnection.ts +107 -0
- package/src/hooks/comlink/useManageFavorite.test.ts +368 -0
- package/src/hooks/comlink/useManageFavorite.ts +210 -0
- package/src/hooks/comlink/useRecordDocumentHistoryEvent.test.ts +85 -0
- package/src/hooks/comlink/useRecordDocumentHistoryEvent.ts +115 -0
- package/src/hooks/comlink/useWindowConnection.test.ts +135 -0
- package/src/hooks/comlink/useWindowConnection.ts +123 -0
- package/src/hooks/context/useSanityInstance.test.tsx +157 -15
- package/src/hooks/context/useSanityInstance.ts +68 -11
- package/src/hooks/dashboard/useNavigateToStudioDocument.test.ts +276 -0
- package/src/hooks/dashboard/useNavigateToStudioDocument.ts +139 -0
- package/src/hooks/dashboard/useStudioWorkspacesByProjectIdDataset.test.tsx +291 -0
- package/src/hooks/dashboard/useStudioWorkspacesByProjectIdDataset.ts +101 -0
- package/src/hooks/datasets/useDatasets.test.ts +80 -0
- package/src/hooks/datasets/useDatasets.ts +52 -0
- package/src/hooks/document/useApplyDocumentActions.test.ts +20 -0
- package/src/hooks/document/useApplyDocumentActions.ts +124 -0
- package/src/hooks/document/useDocument.test.ts +118 -0
- package/src/hooks/document/useDocument.ts +212 -0
- package/src/hooks/document/useDocumentEvent.test.ts +62 -0
- package/src/hooks/document/useDocumentEvent.ts +94 -0
- package/src/hooks/document/useDocumentPermissions.test.ts +204 -0
- package/src/hooks/document/useDocumentPermissions.ts +131 -0
- package/src/hooks/document/useDocumentSyncStatus.test.ts +23 -0
- package/src/hooks/document/useDocumentSyncStatus.ts +61 -0
- package/src/hooks/document/useEditDocument.test.ts +196 -0
- package/src/hooks/document/useEditDocument.ts +314 -0
- package/src/hooks/documents/useDocuments.test.tsx +179 -0
- package/src/hooks/documents/useDocuments.ts +300 -0
- package/src/hooks/helpers/createCallbackHook.test.tsx +2 -2
- package/src/hooks/helpers/createCallbackHook.tsx +1 -1
- package/src/hooks/helpers/createStateSourceHook.test.tsx +67 -1
- package/src/hooks/helpers/createStateSourceHook.tsx +27 -11
- package/src/hooks/paginatedDocuments/usePaginatedDocuments.test.tsx +284 -0
- package/src/hooks/paginatedDocuments/usePaginatedDocuments.ts +353 -0
- package/src/hooks/preview/usePreview.test.tsx +85 -17
- package/src/hooks/preview/usePreview.tsx +81 -22
- package/src/hooks/projection/useProjection.test.tsx +283 -0
- package/src/hooks/projection/useProjection.ts +232 -0
- package/src/hooks/projects/useProject.test.ts +80 -0
- package/src/hooks/projects/useProject.ts +51 -0
- package/src/hooks/projects/useProjects.test.ts +77 -0
- package/src/hooks/projects/useProjects.ts +45 -0
- package/src/hooks/query/useQuery.test.tsx +188 -0
- package/src/hooks/query/useQuery.ts +193 -0
- package/src/hooks/releases/useActiveReleases.test.tsx +84 -0
- package/src/hooks/releases/useActiveReleases.ts +39 -0
- package/src/hooks/releases/usePerspective.test.tsx +120 -0
- package/src/hooks/releases/usePerspective.ts +49 -0
- package/src/hooks/users/useUsers.test.tsx +330 -0
- package/src/hooks/users/useUsers.ts +120 -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 -259
- package/dist/components.js +0 -301
- package/dist/components.js.map +0 -1
- package/dist/hooks.d.ts +0 -186
- 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/Login/LoginLinks.test.tsx +0 -100
- package/src/components/Login/LoginLinks.tsx +0 -73
- package/src/components/auth/Login.test.tsx +0 -41
- package/src/components/auth/Login.tsx +0 -45
- package/src/components/auth/LoginFooter.test.tsx +0 -29
- package/src/components/auth/LoginFooter.tsx +0 -65
- package/src/components/auth/LoginLayout.test.tsx +0 -33
- package/src/components/auth/LoginLayout.tsx +0 -81
- package/src/components/context/SanityProvider.test.tsx +0 -25
- 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/auth/useHandleCallback.test.tsx +0 -16
- package/src/hooks/auth/useLoginUrls.test.tsx +0 -68
- package/src/hooks/auth/useLoginUrls.tsx +0 -51
- 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
|
@@ -2,110 +2,16 @@
|
|
|
2
2
|
<a href="https://sanity.io">
|
|
3
3
|
<img src="https://cdn.sanity.io/images/3do82whm/next/1dfce9dde7a62ccaa8e8377254a1e919f6c07ad3-128x128.svg" />
|
|
4
4
|
</a>
|
|
5
|
-
<h1 align="center">Sanity
|
|
5
|
+
<h1 align="center">Sanity React App SDK</h1>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
React
|
|
8
|
+
React hooks for creating Sanity applications.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Documentation
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## SDK Documentation
|
|
17
|
-
|
|
18
|
-
See the [SDK Documentation](https://sdk-docs.sanity.dev) for more information.
|
|
19
|
-
|
|
20
|
-
## Quick Start
|
|
21
|
-
|
|
22
|
-
Here's how to implement your Sanity application:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# Create a new Vite React TypeScript project
|
|
26
|
-
npm create vite@latest my-content-os-app -- --template react-ts -y
|
|
27
|
-
cd my-content-os-app
|
|
28
|
-
# Install Sanity dependencies
|
|
29
|
-
npm i @sanity/sdk-react @sanity/sdk @sanity/ui
|
|
30
|
-
# Run the app
|
|
31
|
-
npm run dev
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
```tsx
|
|
35
|
-
// src/App.tsx
|
|
36
|
-
import {createSanityInstance} from '@sanity/sdk'
|
|
37
|
-
import {AuthBoundary, SanityProvider} from '@sanity/sdk-react/components'
|
|
38
|
-
import {useCurrentUser, useLogOut} from '@sanity/sdk-react/hooks'
|
|
39
|
-
import {Button, Flex, Spinner, Text, ThemeProvider} from '@sanity/ui'
|
|
40
|
-
import {buildTheme} from '@sanity/ui/theme'
|
|
41
|
-
import {Suspense} from 'react'
|
|
42
|
-
|
|
43
|
-
const theme = buildTheme({})
|
|
44
|
-
const sanityInstance = createSanityInstance({
|
|
45
|
-
projectId: '<your-project-id>',
|
|
46
|
-
dataset: '<your-dataset>',
|
|
47
|
-
// optional auth config set projectId and dataset to '' and authScope to 'org' for a global token
|
|
48
|
-
// auth: {
|
|
49
|
-
// authScope: 'org',
|
|
50
|
-
// ...
|
|
51
|
-
// },
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
export function App(): JSX.Element {
|
|
55
|
-
return (
|
|
56
|
-
<ThemeProvider theme={theme}>
|
|
57
|
-
<Suspense fallback={<Spinner />}>
|
|
58
|
-
<SanityProvider sanityInstance={sanityInstance}>
|
|
59
|
-
<AuthBoundary header={<Text>My Sanity App</Text>}>
|
|
60
|
-
<Authenticated />
|
|
61
|
-
</AuthBoundary>
|
|
62
|
-
</SanityProvider>
|
|
63
|
-
</Suspense>
|
|
64
|
-
</ThemeProvider>
|
|
65
|
-
)
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function Authenticated() {
|
|
69
|
-
const currentUser = useCurrentUser()
|
|
70
|
-
const logout = useLogOut()
|
|
71
|
-
|
|
72
|
-
return (
|
|
73
|
-
<Flex direction="column" gap={2}>
|
|
74
|
-
<Text>Hello, {currentUser?.name}!</Text>
|
|
75
|
-
<Button text="Logout" onClick={logout} mode="ghost" />
|
|
76
|
-
</Flex>
|
|
77
|
-
)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export default App
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Customizing your application
|
|
84
|
-
|
|
85
|
-
If you would like to implement a custom look and feel, you can use the hooks in your own components.
|
|
86
|
-
|
|
87
|
-
## Available Hooks
|
|
88
|
-
|
|
89
|
-
- `useAuthState` - Get current authentication state
|
|
90
|
-
- `useCurrentUser` - Access the currently authenticated user
|
|
91
|
-
- `useAuthToken` - Access the authentication token
|
|
92
|
-
- `useLoginUrls` - Get OAuth login URLs
|
|
93
|
-
- `useLogOut` - Handle user logout
|
|
94
|
-
- `useSanityInstance` - Access the Sanity client instance
|
|
95
|
-
- and more...
|
|
96
|
-
|
|
97
|
-
## TypeScript Support
|
|
98
|
-
|
|
99
|
-
This package includes TypeScript definitions. You can import types like:
|
|
100
|
-
|
|
101
|
-
```tsx
|
|
102
|
-
import type {
|
|
103
|
-
SanityProviderProps,
|
|
104
|
-
AuthBoundaryProps,
|
|
105
|
-
LoginLayoutProps,
|
|
106
|
-
LoginErrorProps,
|
|
107
|
-
} from '@sanity/react'
|
|
108
|
-
```
|
|
12
|
+
- Familiarize yourself with the App SDK via a conceptual overview, a quickstart guide, and a step by step walkthrough on **[the Sanity Docs site](https://sanity.io/docs/app-sdk)**
|
|
13
|
+
- Go in depth with the **[App SDK reference docs](https://sdk-docs.sanity.dev)**
|
|
14
|
+
- View example implementations on the **[SDK Explorer](https://sdk-examples.sanity.dev)**
|
|
109
15
|
|
|
110
16
|
## License
|
|
111
17
|
|