@noya-app/noya-api-client-react 0.1.23 → 0.1.24
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/.turbo/turbo-build.log +7 -7
- package/CHANGELOG.md +8 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/react/hooks.ts +3 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
[34mCLI[39m Target: esnext
|
|
7
7
|
[34mCJS[39m Build start
|
|
8
8
|
[34mESM[39m Build start
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
9
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m8.81 KB[39m
|
|
10
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m15.57 KB[39m
|
|
11
|
+
[32mESM[39m ⚡️ Build success in 17ms
|
|
12
|
+
[32mCJS[39m [1mdist/index.js [22m[32m12.58 KB[39m
|
|
13
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m15.81 KB[39m
|
|
14
|
+
[32mCJS[39m ⚡️ Build success in 17ms
|
|
15
15
|
DTS Build start
|
|
16
|
-
DTS ⚡️ Build success in
|
|
16
|
+
DTS ⚡️ Build success in 4014ms
|
|
17
17
|
DTS dist/index.d.ts 9.53 KB
|
|
18
18
|
DTS dist/index.d.mts 9.53 KB
|
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -102,7 +102,7 @@ function useNoyaFiles() {
|
|
|
102
102
|
}, [client, files.loading, session]);
|
|
103
103
|
return {
|
|
104
104
|
files: files.files,
|
|
105
|
-
loading: files.loading === "loadedInClient" || files.loading === "populatedOnServer"
|
|
105
|
+
loading: !(files.loading === "loadedInClient" || files.loading === "populatedOnServer")
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
function useNoyaIsOwnFile(fileId) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/react/context.ts","../src/react/hooks.ts"],"sourcesContent":["export * from \"@noya-app/noya-api\";\nexport * from \"./react/context\";\nexport * from \"./react/hooks\";\n","import { NoyaAPI } from \"@noya-app/noya-api\";\nimport { createContext, useContext, useMemo } from \"react\";\n\ntype NoyaAPIContextValue = NoyaAPI.Client;\n\nconst NoyaAPIContext = createContext<NoyaAPIContextValue | undefined>(\n undefined\n);\n\nexport const NoyaAPIProvider: React.Provider<NoyaAPIContextValue | undefined> =\n NoyaAPIContext.Provider;\n\nexport function useNoyaClient(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n if (!value) {\n throw new Error(\"Missing NoyaAPIContextValue\");\n }\n\n return value;\n}\n\nexport function useOptionalNoyaClient(): NoyaAPIContextValue | undefined {\n return useContext(NoyaAPIContext);\n}\n\n/**\n * If there's no client, fallback to a memory client.\n * We do this to safely render content when logged out (e.g. when sharing).\n */\nexport function useNoyaClientOrFallback(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n const memoryClient = useMemo(() => {\n return new NoyaAPI.Client({\n networkClient: new NoyaAPI.MemoryClient(),\n });\n }, []);\n\n return value ?? memoryClient;\n}\n","import { useSelector } from \"@legendapp/state/react\";\nimport { GENERATED_PAGE_NAME_COUNT, NoyaAPI } from \"@noya-app/noya-api\";\nimport { range } from \"@noya-app/noya-utils\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport {\n useNoyaClient,\n useNoyaClientOrFallback,\n useOptionalNoyaClient,\n} from \"./context\";\n\nexport function useNoyaFiles(): {\n files: NoyaAPI.File[];\n loading: boolean;\n} {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(useNoyaClient().session$);\n\n useEffect(() => {\n if (!session) return;\n\n if (\n files.loading === \"notStarted\" ||\n files.loading === \"populatedOnServer\"\n ) {\n client.files.refetch();\n }\n }, [client, files.loading, session]);\n\n return {\n files: files.files,\n loading:\n files.loading === \"loadedInClient\" ||\n files.loading === \"populatedOnServer\",\n };\n}\n\nexport function useNoyaIsOwnFile(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(client.session$);\n const file = files.files.find((file) => file.id === fileId);\n return file?.userId === session?.user.id;\n}\n\nexport function useNoyaTools(initial?: NoyaAPI.Tool[]) {\n const didInitialize = useRef(false);\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n useEffect(() => {\n if (didInitialize.current) return;\n didInitialize.current = true;\n\n if (initial) {\n client.tools.setInitial(initial);\n } else {\n client.tools.list();\n }\n }, [client, initial]);\n return tools;\n}\n\nexport function useOptionalNoyaTools(initial?: NoyaAPI.Tool[]) {\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n return useMemo(\n () =>\n tools.loading && initial ? { loading: true, tools: initial } : tools,\n [initial, tools]\n );\n}\n\nexport function useNoyaTags() {\n const client = useNoyaClient();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useOptionalNoyaTags() {\n const client = useNoyaClientOrFallback();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useOptionalNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useNoyaAssets(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const empty = useMemo(() => ({ assets: [], loading: true }), []);\n const assets = useSelector(\n fileId ? client.assetsByFileId$[fileId] : client.assets$\n );\n return assets ?? empty;\n}\n\nexport function useNoyaSession() {\n const session = useSelector(useNoyaClient().session$);\n return session;\n}\n\nexport function useOptionalNoyaSession() {\n const session = useSelector(useOptionalNoyaClient()?.session$);\n return session;\n}\n\nexport function useNoyaBilling() {\n const billing = useSelector(useNoyaClient().billing$);\n return billing;\n}\n\nexport function useNoyaEmailLists() {\n const emailLists = useSelector(useNoyaClient().emailLists$);\n return emailLists;\n}\n\nexport function useNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useOptionalNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useIsBeta() {\n const userData = useOptionalNoyaUserData();\n return userData?.userData?.beta ?? false;\n}\n\nexport function useMetadata<T extends NoyaAPI.Json>(key: string) {\n const { userData } = useNoyaUserData();\n const metadata = userData?.metadata || [];\n const metadataItem = metadata.find((item) => item.key === key);\n return metadataItem?.value as T | undefined;\n}\n\nexport function useGeneratedComponentNames(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedNames$, loadingNames$ } = useNoyaClientOrFallback();\n const result = useSelector(\n () => generatedNames$[key].get() as NoyaAPI.GeneratedName[] | undefined\n );\n const loading = useSelector(() => loadingNames$[key].get());\n return useMemo(() => ({ names: result ?? [], loading }), [loading, result]);\n}\n\nexport function useGeneratedComponentDescriptions() {\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const descriptions = useSelector(generatedDescriptions$);\n const loading = useSelector(loadingDescriptions$);\n return useMemo(() => ({ descriptions, loading }), [loading, descriptions]);\n}\n\nexport function useGeneratedComponentDescription(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const description = useSelector(\n () => generatedDescriptions$[key].get() as string | undefined\n );\n const loading = useSelector(() => loadingDescriptions$[key].get());\n return useMemo(() => ({ description, loading }), [loading, description]);\n}\n\nexport function useRandomImages() {\n const { randomImages$, loadingRandomImages$ } = useNoyaClientOrFallback();\n const images = useSelector(randomImages$);\n const loading = useSelector(loadingRandomImages$);\n return useMemo(() => ({ images, loading }), [loading, images]);\n}\n\nexport function useRandomIcons() {\n const { randomIcons$, loadingRandomIcons$ } = useNoyaClientOrFallback();\n const icons = useSelector(randomIcons$);\n const loading = useSelector(loadingRandomIcons$);\n return useMemo(() => ({ icons, loading }), [loading, icons]);\n}\n\nexport function useNetworkRequests() {\n const { requests$ } = useNoyaClientOrFallback();\n const requests = useSelector(requests$) as NoyaAPI.RequestSnapshot[];\n return requests;\n}\n\nexport type EnhancedGeneratedPageName = NoyaAPI.GeneratedName & {\n index: number;\n type: \"suggestion\";\n};\n\nexport function useGeneratedPageNames(): EnhancedGeneratedPageName[] {\n const { generatedPageNames$ } = useNoyaClientOrFallback();\n const names = useSelector(generatedPageNames$) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Page ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useGeneratedPageComponentNames(): EnhancedGeneratedPageName[] {\n const { generatedPageComponentNames$: generatedComponentNames$ } =\n useNoyaClientOrFallback();\n const names = useSelector(\n generatedComponentNames$\n ) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Component ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useNoyaSites() {\n const sites = useSelector(useNoyaClientOrFallback().sites$);\n return sites;\n}\n\nexport function useNoyaDeployments() {\n const deployments = useSelector(useNoyaClientOrFallback().deployments$);\n return deployments;\n}\n\nexport function useNoyaSite(siteId: string) {\n const { sites } = useNoyaSites();\n const site = sites.find((s) => s.id === siteId);\n\n if (!site) {\n throw new Error(`Site ${siteId} not found`);\n }\n\n return { site };\n}\n\nexport function useNoyaPersonalAccessTokens() {\n const tokens = useSelector(useNoyaClientOrFallback().personalAccessTokens$);\n return tokens;\n}\n"],"mappings":"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","names":["import_react","import_noya_api","file"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/react/context.ts","../src/react/hooks.ts"],"sourcesContent":["export * from \"@noya-app/noya-api\";\nexport * from \"./react/context\";\nexport * from \"./react/hooks\";\n","import { NoyaAPI } from \"@noya-app/noya-api\";\nimport { createContext, useContext, useMemo } from \"react\";\n\ntype NoyaAPIContextValue = NoyaAPI.Client;\n\nconst NoyaAPIContext = createContext<NoyaAPIContextValue | undefined>(\n undefined\n);\n\nexport const NoyaAPIProvider: React.Provider<NoyaAPIContextValue | undefined> =\n NoyaAPIContext.Provider;\n\nexport function useNoyaClient(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n if (!value) {\n throw new Error(\"Missing NoyaAPIContextValue\");\n }\n\n return value;\n}\n\nexport function useOptionalNoyaClient(): NoyaAPIContextValue | undefined {\n return useContext(NoyaAPIContext);\n}\n\n/**\n * If there's no client, fallback to a memory client.\n * We do this to safely render content when logged out (e.g. when sharing).\n */\nexport function useNoyaClientOrFallback(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n const memoryClient = useMemo(() => {\n return new NoyaAPI.Client({\n networkClient: new NoyaAPI.MemoryClient(),\n });\n }, []);\n\n return value ?? memoryClient;\n}\n","import { useSelector } from \"@legendapp/state/react\";\nimport { GENERATED_PAGE_NAME_COUNT, NoyaAPI } from \"@noya-app/noya-api\";\nimport { range } from \"@noya-app/noya-utils\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport {\n useNoyaClient,\n useNoyaClientOrFallback,\n useOptionalNoyaClient,\n} from \"./context\";\n\nexport function useNoyaFiles(): {\n files: NoyaAPI.File[];\n loading: boolean;\n} {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(useNoyaClient().session$);\n\n useEffect(() => {\n if (!session) return;\n\n if (\n files.loading === \"notStarted\" ||\n files.loading === \"populatedOnServer\"\n ) {\n client.files.refetch();\n }\n }, [client, files.loading, session]);\n\n return {\n files: files.files,\n loading: !(\n files.loading === \"loadedInClient\" ||\n files.loading === \"populatedOnServer\"\n ),\n };\n}\n\nexport function useNoyaIsOwnFile(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(client.session$);\n const file = files.files.find((file) => file.id === fileId);\n return file?.userId === session?.user.id;\n}\n\nexport function useNoyaTools(initial?: NoyaAPI.Tool[]) {\n const didInitialize = useRef(false);\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n useEffect(() => {\n if (didInitialize.current) return;\n didInitialize.current = true;\n\n if (initial) {\n client.tools.setInitial(initial);\n } else {\n client.tools.list();\n }\n }, [client, initial]);\n return tools;\n}\n\nexport function useOptionalNoyaTools(initial?: NoyaAPI.Tool[]) {\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n return useMemo(\n () =>\n tools.loading && initial ? { loading: true, tools: initial } : tools,\n [initial, tools]\n );\n}\n\nexport function useNoyaTags() {\n const client = useNoyaClient();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useOptionalNoyaTags() {\n const client = useNoyaClientOrFallback();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useOptionalNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useNoyaAssets(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const empty = useMemo(() => ({ assets: [], loading: true }), []);\n const assets = useSelector(\n fileId ? client.assetsByFileId$[fileId] : client.assets$\n );\n return assets ?? empty;\n}\n\nexport function useNoyaSession() {\n const session = useSelector(useNoyaClient().session$);\n return session;\n}\n\nexport function useOptionalNoyaSession() {\n const session = useSelector(useOptionalNoyaClient()?.session$);\n return session;\n}\n\nexport function useNoyaBilling() {\n const billing = useSelector(useNoyaClient().billing$);\n return billing;\n}\n\nexport function useNoyaEmailLists() {\n const emailLists = useSelector(useNoyaClient().emailLists$);\n return emailLists;\n}\n\nexport function useNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useOptionalNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useIsBeta() {\n const userData = useOptionalNoyaUserData();\n return userData?.userData?.beta ?? false;\n}\n\nexport function useMetadata<T extends NoyaAPI.Json>(key: string) {\n const { userData } = useNoyaUserData();\n const metadata = userData?.metadata || [];\n const metadataItem = metadata.find((item) => item.key === key);\n return metadataItem?.value as T | undefined;\n}\n\nexport function useGeneratedComponentNames(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedNames$, loadingNames$ } = useNoyaClientOrFallback();\n const result = useSelector(\n () => generatedNames$[key].get() as NoyaAPI.GeneratedName[] | undefined\n );\n const loading = useSelector(() => loadingNames$[key].get());\n return useMemo(() => ({ names: result ?? [], loading }), [loading, result]);\n}\n\nexport function useGeneratedComponentDescriptions() {\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const descriptions = useSelector(generatedDescriptions$);\n const loading = useSelector(loadingDescriptions$);\n return useMemo(() => ({ descriptions, loading }), [loading, descriptions]);\n}\n\nexport function useGeneratedComponentDescription(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const description = useSelector(\n () => generatedDescriptions$[key].get() as string | undefined\n );\n const loading = useSelector(() => loadingDescriptions$[key].get());\n return useMemo(() => ({ description, loading }), [loading, description]);\n}\n\nexport function useRandomImages() {\n const { randomImages$, loadingRandomImages$ } = useNoyaClientOrFallback();\n const images = useSelector(randomImages$);\n const loading = useSelector(loadingRandomImages$);\n return useMemo(() => ({ images, loading }), [loading, images]);\n}\n\nexport function useRandomIcons() {\n const { randomIcons$, loadingRandomIcons$ } = useNoyaClientOrFallback();\n const icons = useSelector(randomIcons$);\n const loading = useSelector(loadingRandomIcons$);\n return useMemo(() => ({ icons, loading }), [loading, icons]);\n}\n\nexport function useNetworkRequests() {\n const { requests$ } = useNoyaClientOrFallback();\n const requests = useSelector(requests$) as NoyaAPI.RequestSnapshot[];\n return requests;\n}\n\nexport type EnhancedGeneratedPageName = NoyaAPI.GeneratedName & {\n index: number;\n type: \"suggestion\";\n};\n\nexport function useGeneratedPageNames(): EnhancedGeneratedPageName[] {\n const { generatedPageNames$ } = useNoyaClientOrFallback();\n const names = useSelector(generatedPageNames$) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Page ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useGeneratedPageComponentNames(): EnhancedGeneratedPageName[] {\n const { generatedPageComponentNames$: generatedComponentNames$ } =\n useNoyaClientOrFallback();\n const names = useSelector(\n generatedComponentNames$\n ) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Component ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useNoyaSites() {\n const sites = useSelector(useNoyaClientOrFallback().sites$);\n return sites;\n}\n\nexport function useNoyaDeployments() {\n const deployments = useSelector(useNoyaClientOrFallback().deployments$);\n return deployments;\n}\n\nexport function useNoyaSite(siteId: string) {\n const { sites } = useNoyaSites();\n const site = sites.find((s) => s.id === siteId);\n\n if (!site) {\n throw new Error(`Site ${siteId} not found`);\n }\n\n return { site };\n}\n\nexport function useNoyaPersonalAccessTokens() {\n const tokens = useSelector(useNoyaClientOrFallback().personalAccessTokens$);\n return tokens;\n}\n"],"mappings":"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","names":["import_react","import_noya_api","file"]}
|
package/dist/index.mjs
CHANGED
|
@@ -45,7 +45,7 @@ function useNoyaFiles() {
|
|
|
45
45
|
}, [client, files.loading, session]);
|
|
46
46
|
return {
|
|
47
47
|
files: files.files,
|
|
48
|
-
loading: files.loading === "loadedInClient" || files.loading === "populatedOnServer"
|
|
48
|
+
loading: !(files.loading === "loadedInClient" || files.loading === "populatedOnServer")
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
function useNoyaIsOwnFile(fileId) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/react/context.ts","../src/react/hooks.ts"],"sourcesContent":["export * from \"@noya-app/noya-api\";\nexport * from \"./react/context\";\nexport * from \"./react/hooks\";\n","import { NoyaAPI } from \"@noya-app/noya-api\";\nimport { createContext, useContext, useMemo } from \"react\";\n\ntype NoyaAPIContextValue = NoyaAPI.Client;\n\nconst NoyaAPIContext = createContext<NoyaAPIContextValue | undefined>(\n undefined\n);\n\nexport const NoyaAPIProvider: React.Provider<NoyaAPIContextValue | undefined> =\n NoyaAPIContext.Provider;\n\nexport function useNoyaClient(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n if (!value) {\n throw new Error(\"Missing NoyaAPIContextValue\");\n }\n\n return value;\n}\n\nexport function useOptionalNoyaClient(): NoyaAPIContextValue | undefined {\n return useContext(NoyaAPIContext);\n}\n\n/**\n * If there's no client, fallback to a memory client.\n * We do this to safely render content when logged out (e.g. when sharing).\n */\nexport function useNoyaClientOrFallback(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n const memoryClient = useMemo(() => {\n return new NoyaAPI.Client({\n networkClient: new NoyaAPI.MemoryClient(),\n });\n }, []);\n\n return value ?? memoryClient;\n}\n","import { useSelector } from \"@legendapp/state/react\";\nimport { GENERATED_PAGE_NAME_COUNT, NoyaAPI } from \"@noya-app/noya-api\";\nimport { range } from \"@noya-app/noya-utils\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport {\n useNoyaClient,\n useNoyaClientOrFallback,\n useOptionalNoyaClient,\n} from \"./context\";\n\nexport function useNoyaFiles(): {\n files: NoyaAPI.File[];\n loading: boolean;\n} {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(useNoyaClient().session$);\n\n useEffect(() => {\n if (!session) return;\n\n if (\n files.loading === \"notStarted\" ||\n files.loading === \"populatedOnServer\"\n ) {\n client.files.refetch();\n }\n }, [client, files.loading, session]);\n\n return {\n files: files.files,\n loading:\n files.loading === \"loadedInClient\" ||\n files.loading === \"populatedOnServer\",\n };\n}\n\nexport function useNoyaIsOwnFile(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(client.session$);\n const file = files.files.find((file) => file.id === fileId);\n return file?.userId === session?.user.id;\n}\n\nexport function useNoyaTools(initial?: NoyaAPI.Tool[]) {\n const didInitialize = useRef(false);\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n useEffect(() => {\n if (didInitialize.current) return;\n didInitialize.current = true;\n\n if (initial) {\n client.tools.setInitial(initial);\n } else {\n client.tools.list();\n }\n }, [client, initial]);\n return tools;\n}\n\nexport function useOptionalNoyaTools(initial?: NoyaAPI.Tool[]) {\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n return useMemo(\n () =>\n tools.loading && initial ? { loading: true, tools: initial } : tools,\n [initial, tools]\n );\n}\n\nexport function useNoyaTags() {\n const client = useNoyaClient();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useOptionalNoyaTags() {\n const client = useNoyaClientOrFallback();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useOptionalNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useNoyaAssets(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const empty = useMemo(() => ({ assets: [], loading: true }), []);\n const assets = useSelector(\n fileId ? client.assetsByFileId$[fileId] : client.assets$\n );\n return assets ?? empty;\n}\n\nexport function useNoyaSession() {\n const session = useSelector(useNoyaClient().session$);\n return session;\n}\n\nexport function useOptionalNoyaSession() {\n const session = useSelector(useOptionalNoyaClient()?.session$);\n return session;\n}\n\nexport function useNoyaBilling() {\n const billing = useSelector(useNoyaClient().billing$);\n return billing;\n}\n\nexport function useNoyaEmailLists() {\n const emailLists = useSelector(useNoyaClient().emailLists$);\n return emailLists;\n}\n\nexport function useNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useOptionalNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useIsBeta() {\n const userData = useOptionalNoyaUserData();\n return userData?.userData?.beta ?? false;\n}\n\nexport function useMetadata<T extends NoyaAPI.Json>(key: string) {\n const { userData } = useNoyaUserData();\n const metadata = userData?.metadata || [];\n const metadataItem = metadata.find((item) => item.key === key);\n return metadataItem?.value as T | undefined;\n}\n\nexport function useGeneratedComponentNames(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedNames$, loadingNames$ } = useNoyaClientOrFallback();\n const result = useSelector(\n () => generatedNames$[key].get() as NoyaAPI.GeneratedName[] | undefined\n );\n const loading = useSelector(() => loadingNames$[key].get());\n return useMemo(() => ({ names: result ?? [], loading }), [loading, result]);\n}\n\nexport function useGeneratedComponentDescriptions() {\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const descriptions = useSelector(generatedDescriptions$);\n const loading = useSelector(loadingDescriptions$);\n return useMemo(() => ({ descriptions, loading }), [loading, descriptions]);\n}\n\nexport function useGeneratedComponentDescription(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const description = useSelector(\n () => generatedDescriptions$[key].get() as string | undefined\n );\n const loading = useSelector(() => loadingDescriptions$[key].get());\n return useMemo(() => ({ description, loading }), [loading, description]);\n}\n\nexport function useRandomImages() {\n const { randomImages$, loadingRandomImages$ } = useNoyaClientOrFallback();\n const images = useSelector(randomImages$);\n const loading = useSelector(loadingRandomImages$);\n return useMemo(() => ({ images, loading }), [loading, images]);\n}\n\nexport function useRandomIcons() {\n const { randomIcons$, loadingRandomIcons$ } = useNoyaClientOrFallback();\n const icons = useSelector(randomIcons$);\n const loading = useSelector(loadingRandomIcons$);\n return useMemo(() => ({ icons, loading }), [loading, icons]);\n}\n\nexport function useNetworkRequests() {\n const { requests$ } = useNoyaClientOrFallback();\n const requests = useSelector(requests$) as NoyaAPI.RequestSnapshot[];\n return requests;\n}\n\nexport type EnhancedGeneratedPageName = NoyaAPI.GeneratedName & {\n index: number;\n type: \"suggestion\";\n};\n\nexport function useGeneratedPageNames(): EnhancedGeneratedPageName[] {\n const { generatedPageNames$ } = useNoyaClientOrFallback();\n const names = useSelector(generatedPageNames$) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Page ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useGeneratedPageComponentNames(): EnhancedGeneratedPageName[] {\n const { generatedPageComponentNames$: generatedComponentNames$ } =\n useNoyaClientOrFallback();\n const names = useSelector(\n generatedComponentNames$\n ) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Component ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useNoyaSites() {\n const sites = useSelector(useNoyaClientOrFallback().sites$);\n return sites;\n}\n\nexport function useNoyaDeployments() {\n const deployments = useSelector(useNoyaClientOrFallback().deployments$);\n return deployments;\n}\n\nexport function useNoyaSite(siteId: string) {\n const { sites } = useNoyaSites();\n const site = sites.find((s) => s.id === siteId);\n\n if (!site) {\n throw new Error(`Site ${siteId} not found`);\n }\n\n return { site };\n}\n\nexport function useNoyaPersonalAccessTokens() {\n const tokens = useSelector(useNoyaClientOrFallback().personalAccessTokens$);\n return tokens;\n}\n"],"mappings":"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","names":["useMemo","file","useMemo"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/react/context.ts","../src/react/hooks.ts"],"sourcesContent":["export * from \"@noya-app/noya-api\";\nexport * from \"./react/context\";\nexport * from \"./react/hooks\";\n","import { NoyaAPI } from \"@noya-app/noya-api\";\nimport { createContext, useContext, useMemo } from \"react\";\n\ntype NoyaAPIContextValue = NoyaAPI.Client;\n\nconst NoyaAPIContext = createContext<NoyaAPIContextValue | undefined>(\n undefined\n);\n\nexport const NoyaAPIProvider: React.Provider<NoyaAPIContextValue | undefined> =\n NoyaAPIContext.Provider;\n\nexport function useNoyaClient(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n if (!value) {\n throw new Error(\"Missing NoyaAPIContextValue\");\n }\n\n return value;\n}\n\nexport function useOptionalNoyaClient(): NoyaAPIContextValue | undefined {\n return useContext(NoyaAPIContext);\n}\n\n/**\n * If there's no client, fallback to a memory client.\n * We do this to safely render content when logged out (e.g. when sharing).\n */\nexport function useNoyaClientOrFallback(): NoyaAPIContextValue {\n const value = useContext(NoyaAPIContext);\n\n const memoryClient = useMemo(() => {\n return new NoyaAPI.Client({\n networkClient: new NoyaAPI.MemoryClient(),\n });\n }, []);\n\n return value ?? memoryClient;\n}\n","import { useSelector } from \"@legendapp/state/react\";\nimport { GENERATED_PAGE_NAME_COUNT, NoyaAPI } from \"@noya-app/noya-api\";\nimport { range } from \"@noya-app/noya-utils\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport {\n useNoyaClient,\n useNoyaClientOrFallback,\n useOptionalNoyaClient,\n} from \"./context\";\n\nexport function useNoyaFiles(): {\n files: NoyaAPI.File[];\n loading: boolean;\n} {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(useNoyaClient().session$);\n\n useEffect(() => {\n if (!session) return;\n\n if (\n files.loading === \"notStarted\" ||\n files.loading === \"populatedOnServer\"\n ) {\n client.files.refetch();\n }\n }, [client, files.loading, session]);\n\n return {\n files: files.files,\n loading: !(\n files.loading === \"loadedInClient\" ||\n files.loading === \"populatedOnServer\"\n ),\n };\n}\n\nexport function useNoyaIsOwnFile(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const files = useSelector(client.files$);\n const session = useSelector(client.session$);\n const file = files.files.find((file) => file.id === fileId);\n return file?.userId === session?.user.id;\n}\n\nexport function useNoyaTools(initial?: NoyaAPI.Tool[]) {\n const didInitialize = useRef(false);\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n useEffect(() => {\n if (didInitialize.current) return;\n didInitialize.current = true;\n\n if (initial) {\n client.tools.setInitial(initial);\n } else {\n client.tools.list();\n }\n }, [client, initial]);\n return tools;\n}\n\nexport function useOptionalNoyaTools(initial?: NoyaAPI.Tool[]) {\n const client = useNoyaClientOrFallback();\n const tools = useSelector(client.tools$);\n return useMemo(\n () =>\n tools.loading && initial ? { loading: true, tools: initial } : tools,\n [initial, tools]\n );\n}\n\nexport function useNoyaTags() {\n const client = useNoyaClient();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useOptionalNoyaTags() {\n const client = useNoyaClientOrFallback();\n const tags = useSelector(client.tags$);\n useEffect(() => {\n client.tags.read();\n }, [client]);\n return tags;\n}\n\nexport function useNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useOptionalNoyaCreators() {\n const client = useNoyaClientOrFallback();\n const creators = useSelector(client.creators$);\n useEffect(() => {\n client.creators.read();\n }, [client]);\n return creators;\n}\n\nexport function useNoyaAssets(fileId?: string) {\n const client = useNoyaClientOrFallback();\n const empty = useMemo(() => ({ assets: [], loading: true }), []);\n const assets = useSelector(\n fileId ? client.assetsByFileId$[fileId] : client.assets$\n );\n return assets ?? empty;\n}\n\nexport function useNoyaSession() {\n const session = useSelector(useNoyaClient().session$);\n return session;\n}\n\nexport function useOptionalNoyaSession() {\n const session = useSelector(useOptionalNoyaClient()?.session$);\n return session;\n}\n\nexport function useNoyaBilling() {\n const billing = useSelector(useNoyaClient().billing$);\n return billing;\n}\n\nexport function useNoyaEmailLists() {\n const emailLists = useSelector(useNoyaClient().emailLists$);\n return emailLists;\n}\n\nexport function useNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useOptionalNoyaUserData() {\n const userData = useSelector(useNoyaClientOrFallback().userData$);\n return userData;\n}\n\nexport function useIsBeta() {\n const userData = useOptionalNoyaUserData();\n return userData?.userData?.beta ?? false;\n}\n\nexport function useMetadata<T extends NoyaAPI.Json>(key: string) {\n const { userData } = useNoyaUserData();\n const metadata = userData?.metadata || [];\n const metadataItem = metadata.find((item) => item.key === key);\n return metadataItem?.value as T | undefined;\n}\n\nexport function useGeneratedComponentNames(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedNames$, loadingNames$ } = useNoyaClientOrFallback();\n const result = useSelector(\n () => generatedNames$[key].get() as NoyaAPI.GeneratedName[] | undefined\n );\n const loading = useSelector(() => loadingNames$[key].get());\n return useMemo(() => ({ names: result ?? [], loading }), [loading, result]);\n}\n\nexport function useGeneratedComponentDescriptions() {\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const descriptions = useSelector(generatedDescriptions$);\n const loading = useSelector(loadingDescriptions$);\n return useMemo(() => ({ descriptions, loading }), [loading, descriptions]);\n}\n\nexport function useGeneratedComponentDescription(name: string) {\n const key = name.trim().toLowerCase();\n const { generatedDescriptions$, loadingDescriptions$ } =\n useNoyaClientOrFallback();\n const description = useSelector(\n () => generatedDescriptions$[key].get() as string | undefined\n );\n const loading = useSelector(() => loadingDescriptions$[key].get());\n return useMemo(() => ({ description, loading }), [loading, description]);\n}\n\nexport function useRandomImages() {\n const { randomImages$, loadingRandomImages$ } = useNoyaClientOrFallback();\n const images = useSelector(randomImages$);\n const loading = useSelector(loadingRandomImages$);\n return useMemo(() => ({ images, loading }), [loading, images]);\n}\n\nexport function useRandomIcons() {\n const { randomIcons$, loadingRandomIcons$ } = useNoyaClientOrFallback();\n const icons = useSelector(randomIcons$);\n const loading = useSelector(loadingRandomIcons$);\n return useMemo(() => ({ icons, loading }), [loading, icons]);\n}\n\nexport function useNetworkRequests() {\n const { requests$ } = useNoyaClientOrFallback();\n const requests = useSelector(requests$) as NoyaAPI.RequestSnapshot[];\n return requests;\n}\n\nexport type EnhancedGeneratedPageName = NoyaAPI.GeneratedName & {\n index: number;\n type: \"suggestion\";\n};\n\nexport function useGeneratedPageNames(): EnhancedGeneratedPageName[] {\n const { generatedPageNames$ } = useNoyaClientOrFallback();\n const names = useSelector(generatedPageNames$) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Page ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useGeneratedPageComponentNames(): EnhancedGeneratedPageName[] {\n const { generatedPageComponentNames$: generatedComponentNames$ } =\n useNoyaClientOrFallback();\n const names = useSelector(\n generatedComponentNames$\n ) as NoyaAPI.GeneratedName[];\n\n const namesWithDefaultsAndTypes = useMemo(() => {\n const rangeArray = range(0, GENERATED_PAGE_NAME_COUNT);\n\n // Fill any empty slots with default names in the 'loading' state\n const withDefaults = rangeArray.map((index): NoyaAPI.GeneratedName => {\n const name = names[index];\n return name ?? { name: `Component ${index + 1}`, loading: true, key: \"\" };\n });\n\n return withDefaults.map(\n (name, index): EnhancedGeneratedPageName => ({\n ...name,\n index,\n type: \"suggestion\",\n })\n );\n }, [names]);\n\n // Take the first 3\n return namesWithDefaultsAndTypes.slice(0, 3);\n}\n\nexport function useNoyaSites() {\n const sites = useSelector(useNoyaClientOrFallback().sites$);\n return sites;\n}\n\nexport function useNoyaDeployments() {\n const deployments = useSelector(useNoyaClientOrFallback().deployments$);\n return deployments;\n}\n\nexport function useNoyaSite(siteId: string) {\n const { sites } = useNoyaSites();\n const site = sites.find((s) => s.id === siteId);\n\n if (!site) {\n throw new Error(`Site ${siteId} not found`);\n }\n\n return { site };\n}\n\nexport function useNoyaPersonalAccessTokens() {\n const tokens = useSelector(useNoyaClientOrFallback().personalAccessTokens$);\n return tokens;\n}\n"],"mappings":"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","names":["useMemo","file","useMemo"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@noya-app/noya-api-client-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@legendapp/state": "^2.1.1",
|
|
13
|
-
"@noya-app/noya-api": "0.1.
|
|
13
|
+
"@noya-app/noya-api": "0.1.24",
|
|
14
14
|
"@noya-app/noya-utils": "0.1.3"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
package/src/react/hooks.ts
CHANGED