@contember/react-client 1.1.0 → 1.2.0-alpha.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.
- package/dist/development/ContemberClient.js +14 -29
- package/dist/development/ContemberClient.js.map +1 -1
- package/dist/development/apiRequest/useApiRequest.js +1 -0
- package/dist/development/apiRequest/useApiRequest.js.map +1 -1
- package/dist/development/auth/SessionTokenContext.js +5 -1
- package/dist/development/auth/SessionTokenContext.js.map +1 -1
- package/dist/development/auth/useSessionToken.js +4 -2
- package/dist/development/auth/useSessionToken.js.map +1 -1
- package/dist/development/components/RichTextRenderer/ElementRenderer.js +2 -6
- package/dist/development/components/RichTextRenderer/ElementRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/LeafRenderer.js +2 -6
- package/dist/development/components/RichTextRenderer/LeafRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RenderElementFallback.js +21 -94
- package/dist/development/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RenderLeafFallback.js +11 -47
- package/dist/development/components/RichTextRenderer/RenderLeafFallback.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RichTextRenderer.js +5 -20
- package/dist/development/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/renderChildren.js +5 -17
- package/dist/development/components/RichTextRenderer/renderChildren.js.map +1 -1
- package/dist/development/components/RichTextRenderer/resolveRichTextElementMetadata.js.map +1 -1
- package/dist/development/index.js +2 -1
- package/dist/development/upload/fileUploadReducer.js +1 -0
- package/dist/development/upload/fileUploadReducer.js.map +1 -1
- package/dist/development/upload/useFileUpload.js.map +1 -1
- package/dist/production/ContemberClient.js +13 -4
- package/dist/production/ContemberClient.js.map +1 -1
- package/dist/production/apiRequest/useApiRequest.js +1 -0
- package/dist/production/apiRequest/useApiRequest.js.map +1 -1
- package/dist/production/auth/SessionTokenContext.js +5 -1
- package/dist/production/auth/SessionTokenContext.js.map +1 -1
- package/dist/production/auth/useSessionToken.js +4 -2
- package/dist/production/auth/useSessionToken.js.map +1 -1
- package/dist/production/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
- package/dist/production/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
- package/dist/production/components/RichTextRenderer/resolveRichTextElementMetadata.js.map +1 -1
- package/dist/production/index.js +2 -1
- package/dist/production/upload/fileUploadReducer.js +1 -0
- package/dist/production/upload/fileUploadReducer.js.map +1 -1
- package/dist/production/upload/useFileUpload.js.map +1 -1
- package/dist/types/ContemberClient.d.ts +3 -1
- package/dist/types/ContemberClient.d.ts.map +1 -1
- package/dist/types/auth/SessionTokenContext.d.ts +6 -2
- package/dist/types/auth/SessionTokenContext.d.ts.map +1 -1
- package/dist/types/auth/SetSessionTokenContext.d.ts +0 -1
- package/dist/types/auth/SetSessionTokenContext.d.ts.map +1 -1
- package/dist/types/auth/useSessionToken.d.ts +1 -0
- package/dist/types/auth/useSessionToken.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/RenderLeafFallback.d.ts +0 -1
- package/dist/types/components/RichTextRenderer/RenderLeafFallback.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/RichTextRenderMetadataContext.d.ts +0 -1
- package/dist/types/components/RichTextRenderer/RichTextRenderMetadataContext.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts +3 -0
- package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts.map +1 -1
- package/dist/types/config/ApiBaseUrlContext.d.ts +0 -1
- package/dist/types/config/ApiBaseUrlContext.d.ts.map +1 -1
- package/dist/types/config/LoginTokenContext.d.ts +0 -1
- package/dist/types/config/LoginTokenContext.d.ts.map +1 -1
- package/dist/types/project/ProjectSlugContext.d.ts +0 -1
- package/dist/types/project/ProjectSlugContext.d.ts.map +1 -1
- package/dist/types/project/StageSlugContext.d.ts +0 -1
- package/dist/types/project/StageSlugContext.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/ContemberClient.tsx +28 -13
- package/src/auth/SessionTokenContext.ts +11 -1
- package/src/auth/useSessionToken.ts +2 -1
- package/src/components/RichTextRenderer/RichTextRenderer.tsx +3 -0
- package/src/ambient.d.ts +0 -1
package/src/ContemberClient.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { memo, useCallback,
|
|
2
|
-
import { SessionTokenContext, SetSessionTokenContext } from './auth'
|
|
1
|
+
import { memo, useCallback, useMemo, useState } from 'react'
|
|
2
|
+
import { SessionTokenContext, SessionTokenContextValue, SetSessionTokenContext } from './auth'
|
|
3
3
|
import { ApiBaseUrlContext, LoginTokenContext } from './config'
|
|
4
4
|
import { ProjectSlugContext, StageSlugContext } from './project'
|
|
5
5
|
|
|
@@ -13,6 +13,9 @@ export interface ContemberClientProps {
|
|
|
13
13
|
|
|
14
14
|
const sessionTokenKey = 'contember_session_token'
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* @group Entrypoints
|
|
18
|
+
*/
|
|
16
19
|
export const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({
|
|
17
20
|
apiBaseUrl,
|
|
18
21
|
children,
|
|
@@ -21,22 +24,19 @@ export const ContemberClient = memo<ContemberClientProps & { children: React.Rea
|
|
|
21
24
|
sessionToken,
|
|
22
25
|
stage,
|
|
23
26
|
}) {
|
|
24
|
-
const [
|
|
27
|
+
const [localStorageSessionToken, setLocalStorageSessionToken] = useLocalStorageSessionToken()
|
|
25
28
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
setSessionTokenInner(token)
|
|
33
|
-
}, [])
|
|
29
|
+
const sessionTokenContextValue = useMemo((): SessionTokenContextValue => ({
|
|
30
|
+
propsToken: sessionToken,
|
|
31
|
+
token: localStorageSessionToken ?? sessionToken,
|
|
32
|
+
source: localStorageSessionToken ? 'localstorage' : (sessionToken ? 'props' : undefined),
|
|
33
|
+
}), [localStorageSessionToken, sessionToken])
|
|
34
34
|
|
|
35
35
|
return (
|
|
36
36
|
<ApiBaseUrlContext.Provider value={apiBaseUrl}>
|
|
37
37
|
<LoginTokenContext.Provider value={loginToken}>
|
|
38
|
-
<SetSessionTokenContext.Provider value={
|
|
39
|
-
<SessionTokenContext.Provider value={
|
|
38
|
+
<SetSessionTokenContext.Provider value={setLocalStorageSessionToken}>
|
|
39
|
+
<SessionTokenContext.Provider value={sessionTokenContextValue}>
|
|
40
40
|
<ProjectSlugContext.Provider value={project}>
|
|
41
41
|
<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>
|
|
42
42
|
</ProjectSlugContext.Provider>
|
|
@@ -46,3 +46,18 @@ export const ContemberClient = memo<ContemberClientProps & { children: React.Rea
|
|
|
46
46
|
</ApiBaseUrlContext.Provider>
|
|
47
47
|
)
|
|
48
48
|
})
|
|
49
|
+
|
|
50
|
+
const useLocalStorageSessionToken = (): [value: string | undefined, set: (token: string | undefined) => void] => {
|
|
51
|
+
const [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? undefined)
|
|
52
|
+
|
|
53
|
+
const setSessionToken = useCallback((token: string | undefined) => {
|
|
54
|
+
if (token !== undefined) {
|
|
55
|
+
localStorage.setItem(sessionTokenKey, token)
|
|
56
|
+
} else {
|
|
57
|
+
localStorage.removeItem(sessionTokenKey)
|
|
58
|
+
}
|
|
59
|
+
setSessionTokenInner(token)
|
|
60
|
+
}, [])
|
|
61
|
+
|
|
62
|
+
return [sessionTokenInner, setSessionToken]
|
|
63
|
+
}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { createContext } from 'react'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export interface SessionTokenContextValue {
|
|
4
|
+
propsToken: string | undefined
|
|
5
|
+
source: 'props' | 'localstorage' | undefined
|
|
6
|
+
token: string | undefined
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const SessionTokenContext = createContext<SessionTokenContextValue>({
|
|
10
|
+
propsToken: undefined,
|
|
11
|
+
source: undefined,
|
|
12
|
+
token: undefined,
|
|
13
|
+
})
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useContext } from 'react'
|
|
2
2
|
import { SessionTokenContext } from './SessionTokenContext'
|
|
3
3
|
|
|
4
|
-
export const useSessionToken = () => useContext(SessionTokenContext)
|
|
4
|
+
export const useSessionToken = () => useContext(SessionTokenContext).token
|
|
5
|
+
export const useSessionTokenWithMeta = () => useContext(SessionTokenContext)
|
|
@@ -39,6 +39,9 @@ export type RichTextRendererProps<
|
|
|
39
39
|
renderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>
|
|
40
40
|
} & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* @group Content rendering
|
|
44
|
+
*/
|
|
42
45
|
export const RichTextRenderer = memo(function RichTextRenderer<
|
|
43
46
|
CustomElements extends RichTextElement = never,
|
|
44
47
|
CustomLeaves extends RichTextLeaf = never,
|
package/src/ambient.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|