@looker/api-explorer 0.9.22 → 0.9.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.
Files changed (203) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/lib/ApiExplorer.d.ts +4 -39
  3. package/lib/ApiExplorer.js +23 -24
  4. package/lib/ApiExplorer.js.map +1 -1
  5. package/lib/App.d.ts +1 -0
  6. package/lib/App.js +29 -0
  7. package/lib/App.js.map +1 -0
  8. package/lib/StandaloneApiExplorer.js +8 -13
  9. package/lib/StandaloneApiExplorer.js.map +1 -1
  10. package/lib/components/DocMarkdown/DocMarkdown.js +5 -5
  11. package/lib/components/DocMarkdown/DocMarkdown.js.map +1 -1
  12. package/lib/components/DocSdkUsage/DocSdkUsage.js +3 -6
  13. package/lib/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  14. package/lib/components/DocSource/DocSource.js +5 -7
  15. package/lib/components/DocSource/DocSource.js.map +1 -1
  16. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.d.ts +1 -1
  17. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +152 -8
  18. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  19. package/lib/components/SelectorContainer/SdkLanguageSelector.js +1 -1
  20. package/lib/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  21. package/lib/components/SideNav/SideNav.js +1 -1
  22. package/lib/components/SideNav/SideNav.js.map +1 -1
  23. package/lib/components/common/Loader.d.ts +1 -1
  24. package/lib/components/common/Loader.js.map +1 -1
  25. package/lib/esm/ApiExplorer.js +25 -26
  26. package/lib/esm/ApiExplorer.js.map +1 -1
  27. package/lib/esm/App.js +19 -0
  28. package/lib/esm/App.js.map +1 -0
  29. package/lib/esm/StandaloneApiExplorer.js +7 -10
  30. package/lib/esm/StandaloneApiExplorer.js.map +1 -1
  31. package/lib/esm/components/DocMarkdown/DocMarkdown.js +3 -3
  32. package/lib/esm/components/DocMarkdown/DocMarkdown.js.map +1 -1
  33. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js +5 -7
  34. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  35. package/lib/esm/components/DocSource/DocSource.js +4 -5
  36. package/lib/esm/components/DocSource/DocSource.js.map +1 -1
  37. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +153 -6
  38. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  39. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js +2 -2
  40. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  41. package/lib/esm/components/SideNav/SideNav.js +2 -2
  42. package/lib/esm/components/SideNav/SideNav.js.map +1 -1
  43. package/lib/esm/components/common/Loader.js.map +1 -1
  44. package/lib/esm/index.js +4 -18
  45. package/lib/esm/index.js.map +1 -1
  46. package/lib/esm/routes/AppRouter.js +2 -2
  47. package/lib/esm/routes/AppRouter.js.map +1 -1
  48. package/lib/esm/scenes/MethodScene/MethodScene.js +9 -11
  49. package/lib/esm/scenes/MethodScene/MethodScene.js.map +1 -1
  50. package/lib/esm/state/index.js +1 -0
  51. package/lib/esm/state/index.js.map +1 -1
  52. package/lib/esm/state/lodes/index.js +3 -0
  53. package/lib/{test-utils/envAdaptor.js.map → esm/state/lodes/index.js.map} +1 -1
  54. package/lib/esm/state/lodes/sagas.js +25 -0
  55. package/lib/esm/state/lodes/sagas.js.map +1 -0
  56. package/lib/esm/state/lodes/selectors.js +5 -0
  57. package/lib/esm/state/lodes/selectors.js.map +1 -0
  58. package/lib/esm/state/lodes/slice.js +30 -0
  59. package/lib/esm/state/lodes/slice.js.map +1 -0
  60. package/lib/esm/state/settings/sagas.js +28 -16
  61. package/lib/esm/state/settings/sagas.js.map +1 -1
  62. package/lib/esm/state/settings/selectors.js +5 -5
  63. package/lib/esm/state/settings/selectors.js.map +1 -1
  64. package/lib/esm/state/settings/slice.js +8 -8
  65. package/lib/esm/state/settings/slice.js.map +1 -1
  66. package/lib/esm/state/store.js +6 -3
  67. package/lib/esm/state/store.js.map +1 -1
  68. package/lib/esm/test-utils/index.js +1 -2
  69. package/lib/esm/test-utils/index.js.map +1 -1
  70. package/lib/esm/test-utils/lodes.js +12 -0
  71. package/lib/esm/test-utils/lodes.js.map +1 -0
  72. package/lib/esm/test-utils/redux.js +11 -8
  73. package/lib/esm/test-utils/redux.js.map +1 -1
  74. package/lib/esm/utils/index.js +0 -1
  75. package/lib/esm/utils/index.js.map +1 -1
  76. package/lib/esm/utils/lodeUtils.js +3 -7
  77. package/lib/esm/utils/lodeUtils.js.map +1 -1
  78. package/lib/index.d.ts +4 -1
  79. package/lib/index.js +52 -23
  80. package/lib/index.js.map +1 -1
  81. package/lib/routes/AppRouter.d.ts +2 -2
  82. package/lib/routes/AppRouter.js +2 -2
  83. package/lib/routes/AppRouter.js.map +1 -1
  84. package/lib/scenes/MethodScene/MethodScene.d.ts +2 -2
  85. package/lib/scenes/MethodScene/MethodScene.js +7 -9
  86. package/lib/scenes/MethodScene/MethodScene.js.map +1 -1
  87. package/lib/state/index.d.ts +1 -0
  88. package/lib/state/index.js +13 -0
  89. package/lib/state/index.js.map +1 -1
  90. package/lib/state/lodes/index.d.ts +2 -0
  91. package/lib/state/lodes/index.js +32 -0
  92. package/lib/state/lodes/index.js.map +1 -0
  93. package/lib/state/lodes/sagas.d.ts +1 -0
  94. package/lib/state/lodes/sagas.js +34 -0
  95. package/lib/state/lodes/sagas.js.map +1 -0
  96. package/lib/state/lodes/selectors.d.ts +3 -0
  97. package/lib/state/lodes/selectors.js +17 -0
  98. package/lib/state/lodes/selectors.js.map +1 -0
  99. package/lib/state/lodes/slice.d.ts +29 -0
  100. package/lib/state/lodes/slice.js +45 -0
  101. package/lib/state/lodes/slice.js.map +1 -0
  102. package/lib/state/settings/sagas.js +28 -15
  103. package/lib/state/settings/sagas.js.map +1 -1
  104. package/lib/state/settings/selectors.js +5 -5
  105. package/lib/state/settings/selectors.js.map +1 -1
  106. package/lib/state/settings/slice.d.ts +13 -13
  107. package/lib/state/settings/slice.js +13 -13
  108. package/lib/state/settings/slice.js.map +1 -1
  109. package/lib/state/store.d.ts +3 -0
  110. package/lib/state/store.js +6 -2
  111. package/lib/state/store.js.map +1 -1
  112. package/lib/test-data/declarations.js +24 -0
  113. package/lib/test-data/declarations.js.map +1 -0
  114. package/lib/test-data/index.js +23 -0
  115. package/lib/test-data/index.js.map +1 -1
  116. package/lib/test-utils/index.d.ts +1 -2
  117. package/lib/test-utils/index.js +12 -28
  118. package/lib/test-utils/index.js.map +1 -1
  119. package/lib/test-utils/lodes.d.ts +4 -0
  120. package/lib/test-utils/lodes.js +23 -0
  121. package/lib/test-utils/lodes.js.map +1 -0
  122. package/lib/test-utils/redux.d.ts +3 -1
  123. package/lib/test-utils/redux.js +12 -8
  124. package/lib/test-utils/redux.js.map +1 -1
  125. package/lib/utils/index.d.ts +0 -1
  126. package/lib/utils/index.js +0 -24
  127. package/lib/utils/index.js.map +1 -1
  128. package/lib/utils/lodeUtils.d.ts +2 -2
  129. package/lib/utils/lodeUtils.js +3 -7
  130. package/lib/utils/lodeUtils.js.map +1 -1
  131. package/package.json +11 -10
  132. package/public/Looker.3.1.json +1343 -412
  133. package/public/Looker.4.0.json +3305 -661
  134. package/src/ApiExplorer.tsx +99 -102
  135. package/src/{index.tsx → App.tsx} +0 -0
  136. package/src/StandaloneApiExplorer.tsx +8 -16
  137. package/src/components/DocMarkdown/DocMarkdown.tsx +3 -3
  138. package/src/components/DocSdkUsage/DocSdkUsage.spec.tsx +2 -2
  139. package/src/components/DocSdkUsage/DocSdkUsage.tsx +5 -5
  140. package/src/components/DocSource/DocSource.tsx +4 -3
  141. package/src/components/ErrorBoundary/components/SomethingWentWrong/SomethingWentWrong.spec.tsx +1 -1
  142. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.tsx +170 -6
  143. package/src/components/SelectorContainer/SdkLanguageSelector.spec.tsx +3 -5
  144. package/src/components/SelectorContainer/SdkLanguageSelector.tsx +2 -2
  145. package/src/components/SideNav/SideNav.tsx +2 -2
  146. package/src/components/common/Loader.tsx +1 -1
  147. package/src/{context/lode/index.ts → index.ts} +4 -1
  148. package/src/routes/AppRouter.tsx +5 -4
  149. package/src/scenes/MethodScene/MethodScene.tsx +11 -11
  150. package/src/state/index.ts +1 -0
  151. package/src/{context → state/lodes}/index.ts +2 -1
  152. package/src/state/lodes/sagas.spec.ts +92 -0
  153. package/src/state/lodes/sagas.ts +51 -0
  154. package/src/state/lodes/selectors.spec.ts +42 -0
  155. package/src/{test-utils/envAdaptor.ts → state/lodes/selectors.ts} +8 -5
  156. package/src/{test-utils/render_with_lode.tsx → state/lodes/slice.ts} +37 -37
  157. package/src/state/settings/sagas.spec.ts +25 -21
  158. package/src/state/settings/sagas.ts +16 -16
  159. package/src/state/settings/selectors.spec.ts +1 -5
  160. package/src/state/settings/selectors.ts +5 -5
  161. package/src/state/settings/slice.ts +12 -7
  162. package/src/state/store.ts +7 -2
  163. package/src/{context/lode/LodeContext.ts → test-data/declarations.ts} +17 -14
  164. package/src/test-data/index.ts +1 -0
  165. package/src/test-utils/index.ts +1 -5
  166. package/src/test-utils/lodes.tsx +41 -0
  167. package/src/test-utils/redux.tsx +19 -7
  168. package/src/utils/index.ts +0 -1
  169. package/src/utils/lodeUtils.ts +4 -6
  170. package/webpack.dev.config.js +3 -0
  171. package/webpack.prod.config.js +4 -0
  172. package/lib/context/index.d.ts +0 -1
  173. package/lib/context/index.js +0 -20
  174. package/lib/context/index.js.map +0 -1
  175. package/lib/context/lode/LodeContext.d.ts +0 -9
  176. package/lib/context/lode/LodeContext.js +0 -21
  177. package/lib/context/lode/LodeContext.js.map +0 -1
  178. package/lib/context/lode/index.d.ts +0 -1
  179. package/lib/context/lode/index.js +0 -20
  180. package/lib/context/lode/index.js.map +0 -1
  181. package/lib/esm/context/index.js +0 -2
  182. package/lib/esm/context/index.js.map +0 -1
  183. package/lib/esm/context/lode/LodeContext.js +0 -11
  184. package/lib/esm/context/lode/LodeContext.js.map +0 -1
  185. package/lib/esm/context/lode/index.js +0 -2
  186. package/lib/esm/context/lode/index.js.map +0 -1
  187. package/lib/esm/test-utils/envAdaptor.js +0 -5
  188. package/lib/esm/test-utils/envAdaptor.js.map +0 -1
  189. package/lib/esm/test-utils/render_with_lode.js +0 -19
  190. package/lib/esm/test-utils/render_with_lode.js.map +0 -1
  191. package/lib/esm/utils/envAdaptor.js +0 -84
  192. package/lib/esm/utils/envAdaptor.js.map +0 -1
  193. package/lib/test-utils/envAdaptor.d.ts +0 -2
  194. package/lib/test-utils/envAdaptor.js +0 -15
  195. package/lib/test-utils/render_with_lode.d.ts +0 -7
  196. package/lib/test-utils/render_with_lode.js +0 -36
  197. package/lib/test-utils/render_with_lode.js.map +0 -1
  198. package/lib/utils/envAdaptor.d.ts +0 -31
  199. package/lib/utils/envAdaptor.js +0 -106
  200. package/lib/utils/envAdaptor.js.map +0 -1
  201. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/somethingWentWrong.svg +0 -45
  202. package/src/utils/envAdaptor.spec.ts +0 -50
  203. package/src/utils/envAdaptor.ts +0 -147
@@ -44,14 +44,12 @@ import { funFetch, fallbackFetch, OAuthScene } from '@looker/run-it'
44
44
  import { FirstPage } from '@styled-icons/material/FirstPage'
45
45
  import { LastPage } from '@styled-icons/material/LastPage'
46
46
 
47
- import { LodeContext, defaultLodeContextValue } from './context'
48
- import type { IApixEnvAdaptor } from './utils'
47
+ import type { IEnvironmentAdaptor } from '@looker/extension-utils'
49
48
  import {
50
- getLoded,
51
- oAuthPath,
52
49
  registerEnvAdaptor,
53
50
  unregisterEnvAdaptor,
54
- } from './utils'
51
+ } from '@looker/extension-utils'
52
+ import { oAuthPath } from './utils'
55
53
  import {
56
54
  Header,
57
55
  SideNav,
@@ -63,29 +61,36 @@ import {
63
61
  import { specReducer, initDefaultSpecState, updateSpecApi } from './reducers'
64
62
  import { AppRouter } from './routes'
65
63
  import { apixFilesHost } from './utils/lodeUtils'
66
- import { useActions, useSettingsStoreState } from './state'
64
+ import {
65
+ useSettingActions,
66
+ useSettingStoreState,
67
+ useLodeActions,
68
+ useLodesStoreState,
69
+ } from './state'
67
70
 
68
71
  export interface ApiExplorerProps {
69
72
  specs: SpecList
70
- envAdaptor: IApixEnvAdaptor
73
+ adaptor: IEnvironmentAdaptor
71
74
  setVersionsUrl: RunItSetter
72
- exampleLodeUrl?: string
75
+ examplesLodeUrl?: string
73
76
  declarationsLodeUrl?: string
74
77
  headless?: boolean
75
78
  }
76
79
 
77
- export const BodyOverride = createGlobalStyle` html { height: 100%; overflow: hidden; } `
80
+ const BodyOverride = createGlobalStyle` html { height: 100%; overflow: hidden; } `
78
81
 
79
- const ApiExplorer: FC<ApiExplorerProps> = ({
82
+ export const ApiExplorer: FC<ApiExplorerProps> = ({
80
83
  specs,
81
- envAdaptor,
84
+ adaptor,
82
85
  setVersionsUrl,
83
- exampleLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',
86
+ examplesLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',
84
87
  declarationsLodeUrl = `${apixFilesHost}/declarationsIndex.json`,
85
88
  headless = false,
86
89
  }) => {
87
- const { initialized } = useSettingsStoreState()
88
- const { initAction } = useActions()
90
+ const { initialized } = useSettingStoreState()
91
+ useLodesStoreState()
92
+ const { initLodesAction } = useLodeActions()
93
+ const { initSettingsAction } = useSettingActions()
89
94
  const location = useLocation()
90
95
  const oauthReturn = location.pathname === `/${oAuthPath}`
91
96
  const [specState, specDispatch] = useReducer(
@@ -94,8 +99,6 @@ const ApiExplorer: FC<ApiExplorerProps> = ({
94
99
  )
95
100
  const { spec } = specState
96
101
 
97
- const [lode, setLode] = useState(defaultLodeContextValue)
98
-
99
102
  const [hasNavigation, setHasNavigation] = useState(true)
100
103
  const toggleNavigation = (target?: boolean) =>
101
104
  setHasNavigation(target || !hasNavigation)
@@ -107,8 +110,9 @@ const ApiExplorer: FC<ApiExplorerProps> = ({
107
110
  }, [])
108
111
 
109
112
  useEffect(() => {
110
- registerEnvAdaptor(envAdaptor)
111
- initAction()
113
+ registerEnvAdaptor(adaptor)
114
+ initSettingsAction()
115
+ initLodesAction({ examplesLodeUrl, declarationsLodeUrl })
112
116
 
113
117
  return () => unregisterEnvAdaptor()
114
118
  }, [])
@@ -144,11 +148,7 @@ const ApiExplorer: FC<ApiExplorerProps> = ({
144
148
  }
145
149
  }, [spec, location])
146
150
 
147
- useEffect(() => {
148
- getLoded(exampleLodeUrl, declarationsLodeUrl).then((resp) => setLode(resp))
149
- }, [exampleLodeUrl, declarationsLodeUrl])
150
-
151
- const themeOverrides = envAdaptor.themeOverrides()
151
+ const themeOverrides = adaptor.themeOverrides()
152
152
 
153
153
  return (
154
154
  <>
@@ -159,88 +159,86 @@ const ApiExplorer: FC<ApiExplorerProps> = ({
159
159
  {!initialized ? (
160
160
  <Loader message="Initializing" themeOverrides={themeOverrides} />
161
161
  ) : (
162
- <ErrorBoundary logError={envAdaptor.logError.bind(envAdaptor)}>
163
- <LodeContext.Provider value={{ ...lode }}>
164
- <Page style={{ overflow: 'hidden' }}>
165
- {!headless && (
166
- <Header
167
- specs={specs}
168
- spec={spec}
169
- specDispatch={specDispatch}
170
- toggleNavigation={toggleNavigation}
171
- />
172
- )}
173
- <Layout hasAside height="100%">
174
- <AsideBorder
175
- borderRight
176
- isOpen={hasNavigation}
177
- headless={headless}
178
- >
179
- {headless && (
180
- <>
181
- <Space
182
- alignItems="center"
183
- py="u3"
184
- px={hasNavigation ? 'u5' : '0'}
185
- justifyContent={
186
- hasNavigation ? 'space-between' : 'center'
187
- }
188
- >
189
- {hasNavigation && (
190
- <Heading
191
- as="h2"
192
- fontSize="xsmall"
193
- fontWeight="bold"
194
- color="text2"
195
- >
196
- API DOCUMENTATION
197
- </Heading>
198
- )}
199
- <IconButton
200
- size="xsmall"
201
- shape="round"
202
- icon={hasNavigation ? <FirstPage /> : <LastPage />}
203
- label={HEADER_TOGGLE_LABEL}
204
- onClick={() => toggleNavigation()}
205
- />
206
- </Space>
162
+ <ErrorBoundary logError={adaptor.logError.bind(adaptor)}>
163
+ <Page style={{ overflow: 'hidden' }}>
164
+ {!headless && (
165
+ <Header
166
+ specs={specs}
167
+ spec={spec}
168
+ specDispatch={specDispatch}
169
+ toggleNavigation={toggleNavigation}
170
+ />
171
+ )}
172
+ <Layout hasAside height="100%">
173
+ <AsideBorder
174
+ borderRight
175
+ isOpen={hasNavigation}
176
+ headless={headless}
177
+ >
178
+ {headless && (
179
+ <>
180
+ <Space
181
+ alignItems="center"
182
+ py="u3"
183
+ px={hasNavigation ? 'u5' : '0'}
184
+ justifyContent={
185
+ hasNavigation ? 'space-between' : 'center'
186
+ }
187
+ >
207
188
  {hasNavigation && (
208
- <>
209
- <Divider mb="u3" appearance="light" />
210
- <SelectorContainer
211
- ml="large"
212
- mr="large"
213
- specs={specs}
214
- spec={spec}
215
- specDispatch={specDispatch}
216
- />
217
- </>
189
+ <Heading
190
+ as="h2"
191
+ fontSize="xsmall"
192
+ fontWeight="bold"
193
+ color="text2"
194
+ >
195
+ API DOCUMENTATION
196
+ </Heading>
218
197
  )}
219
- </>
220
- )}
221
- {hasNavigation && (
222
- <SideNav
223
- headless={headless}
224
- specs={specs}
225
- spec={spec}
226
- specDispatch={specDispatch}
227
- />
228
- )}
229
- </AsideBorder>
230
- {oauthReturn && <OAuthScene />}
231
- {!oauthReturn && spec.api && (
232
- <AppRouter
233
- api={spec.api}
234
- specKey={spec.key}
198
+ <IconButton
199
+ size="xsmall"
200
+ shape="round"
201
+ icon={hasNavigation ? <FirstPage /> : <LastPage />}
202
+ label={HEADER_TOGGLE_LABEL}
203
+ onClick={() => toggleNavigation()}
204
+ />
205
+ </Space>
206
+ {hasNavigation && (
207
+ <>
208
+ <Divider mb="u3" appearance="light" />
209
+ <SelectorContainer
210
+ ml="large"
211
+ mr="large"
212
+ specs={specs}
213
+ spec={spec}
214
+ specDispatch={specDispatch}
215
+ />
216
+ </>
217
+ )}
218
+ </>
219
+ )}
220
+ {hasNavigation && (
221
+ <SideNav
222
+ headless={headless}
235
223
  specs={specs}
236
- toggleNavigation={toggleNavigation}
237
- envAdaptor={envAdaptor}
238
- setVersionsUrl={setVersionsUrl}
224
+ spec={spec}
225
+ specDispatch={specDispatch}
239
226
  />
240
227
  )}
241
- </Layout>
242
- </Page>
243
- </LodeContext.Provider>
228
+ </AsideBorder>
229
+ {oauthReturn && <OAuthScene />}
230
+ {!oauthReturn && spec.api && (
231
+ <AppRouter
232
+ api={spec.api}
233
+ specKey={spec.key}
234
+ specs={specs}
235
+ toggleNavigation={toggleNavigation}
236
+ adaptor={adaptor}
237
+ setVersionsUrl={setVersionsUrl}
238
+ />
239
+ )}
240
+ </Layout>
241
+ </Page>
244
242
  </ErrorBoundary>
245
243
  )}
246
244
  </ComponentsProvider>
@@ -249,11 +247,10 @@ const ApiExplorer: FC<ApiExplorerProps> = ({
249
247
  )
250
248
  }
251
249
 
252
- export const AsideBorder = styled(Aside)<{
250
+ const AsideBorder = styled(Aside)<{
253
251
  isOpen: boolean
254
252
  headless: boolean
255
253
  }>`
256
254
  width: ${({ isOpen, headless }) =>
257
255
  isOpen ? '20rem' : headless ? '2.75rem' : '0rem'};
258
256
  `
259
- export default ApiExplorer
File without changes
@@ -28,19 +28,17 @@ import type { FC } from 'react'
28
28
  import React, { useEffect, useState } from 'react'
29
29
  import {
30
30
  RunItProvider,
31
- defaultConfigurator,
32
- initRunItSdk,
33
31
  loadSpecsFromVersions,
34
32
  RunItConfigKey,
35
33
  RunItNoConfig,
34
+ initRunItSdk,
36
35
  } from '@looker/run-it'
37
- import type { IAPIMethods } from '@looker/sdk-rtl'
38
36
  import type { SpecList } from '@looker/sdk-codegen'
39
37
  import { Provider } from 'react-redux'
38
+ import { BrowserAdaptor } from '@looker/extension-utils'
40
39
 
41
- import ApiExplorer from './ApiExplorer'
40
+ import { ApiExplorer } from './ApiExplorer'
42
41
  import { store } from './state'
43
- import { StandaloneEnvAdaptor } from './utils'
44
42
  import { Loader } from './components'
45
43
 
46
44
  export interface StandaloneApiExplorerProps {
@@ -48,10 +46,10 @@ export interface StandaloneApiExplorerProps {
48
46
  versionsUrl: string
49
47
  }
50
48
 
51
- const standaloneEnvAdaptor = new StandaloneEnvAdaptor()
49
+ const browserAdaptor = new BrowserAdaptor(initRunItSdk())
52
50
 
53
51
  const loadVersions = async (current: string) => {
54
- const data = await standaloneEnvAdaptor.localStorageGetItem(RunItConfigKey)
52
+ const data = await browserAdaptor.localStorageGetItem(RunItConfigKey)
55
53
  const config = data ? JSON.parse(data) : RunItNoConfig
56
54
  let url = config.base_url ? `${config.base_url}/versions` : current
57
55
  let response = await loadSpecsFromVersions(url)
@@ -86,25 +84,19 @@ export const StandaloneApiExplorer: FC<StandaloneApiExplorerProps> = ({
86
84
  }
87
85
  }, [versionsUrl, currentVersionsUrl])
88
86
 
89
- const chosenSdk: IAPIMethods = initRunItSdk(defaultConfigurator)
90
-
91
87
  return (
92
88
  <Provider store={store}>
93
- <RunItProvider
94
- sdk={chosenSdk}
95
- configurator={defaultConfigurator}
96
- basePath="/api/4.0"
97
- >
89
+ <RunItProvider basePath="/api/4.0">
98
90
  <>
99
91
  {specs ? (
100
92
  <ApiExplorer
101
93
  specs={specs}
102
- envAdaptor={standaloneEnvAdaptor}
94
+ adaptor={browserAdaptor}
103
95
  headless={headless}
104
96
  setVersionsUrl={setCurrentVersionsUrl}
105
97
  />
106
98
  ) : (
107
- <Loader themeOverrides={standaloneEnvAdaptor.themeOverrides()} />
99
+ <Loader themeOverrides={browserAdaptor.themeOverrides()} />
108
100
  )}
109
101
  </>
110
102
  </RunItProvider>
@@ -29,7 +29,7 @@ import React from 'react'
29
29
  import { useHistory } from 'react-router-dom'
30
30
  import { Markdown } from '@looker/code-editor'
31
31
  import { useSelector } from 'react-redux'
32
- import { getEnvAdaptor } from '../../utils'
32
+ import { getEnvAdaptor } from '@looker/extension-utils'
33
33
  import { selectSearchPattern } from '../../state'
34
34
  import { transformURL } from './utils'
35
35
 
@@ -48,8 +48,8 @@ export const DocMarkdown: FC<DocMarkdownProps> = ({ source, specKey }) => {
48
48
  } else if (url.startsWith(`/${specKey}`)) {
49
49
  history.push(url)
50
50
  } else if (url.startsWith('https://')) {
51
- const envAdaptor = getEnvAdaptor()
52
- envAdaptor.openBrowserWindow(url)
51
+ const adaptor = getEnvAdaptor()
52
+ adaptor.openBrowserWindow(url)
53
53
  }
54
54
  }
55
55
  return (
@@ -27,7 +27,7 @@ import React from 'react'
27
27
  import { screen } from '@testing-library/react'
28
28
  import { findExampleLanguages } from '@looker/sdk-codegen'
29
29
 
30
- import { renderWithReduxProviderAndLode } from '../../test-utils'
30
+ import { renderWithLode } from '../../test-utils'
31
31
  import { api, examples } from '../../test-data'
32
32
  import { DocSdkUsage } from './DocSdkUsage'
33
33
  import {
@@ -47,7 +47,7 @@ describe('DocSdkUsage', () => {
47
47
  method.operationId,
48
48
  1
49
49
  )
50
- renderWithReduxProviderAndLode(<DocSdkUsage method={method} />, examples)
50
+ renderWithLode(<DocSdkUsage method={method} />, examples)
51
51
  expect(screen.getAllByRole('link')).toHaveLength(PER_PAGE_COUNT)
52
52
 
53
53
  expect(
@@ -24,7 +24,7 @@
24
24
 
25
25
  */
26
26
  import type { FC } from 'react'
27
- import React, { useContext, useState, useEffect } from 'react'
27
+ import React, { useState, useEffect } from 'react'
28
28
  import {
29
29
  Box,
30
30
  Card,
@@ -41,8 +41,7 @@ import { CollapserCard } from '@looker/run-it'
41
41
  import { InsertDriveFile } from '@styled-icons/material-outlined/InsertDriveFile'
42
42
  import { useSelector } from 'react-redux'
43
43
 
44
- import { selectSdkLanguage } from '../../state'
45
- import { LodeContext } from '../../context'
44
+ import { selectSdkLanguage, selectExamplesLode } from '../../state'
46
45
  import {
47
46
  exampleColumns,
48
47
  EMPTY_STRING,
@@ -61,15 +60,16 @@ interface DocSdkUsageProps {
61
60
  * links to the source files
62
61
  */
63
62
  export const DocSdkUsage: FC<DocSdkUsageProps> = ({ method }) => {
64
- const { examples } = useContext(LodeContext)
63
+ const examples = useSelector(selectExamplesLode)
65
64
  const sdkLanguage = useSelector(selectSdkLanguage)
66
- let languages = findExampleLanguages(examples, method.name)
67
65
  const [page, setPage] = useState(1)
68
66
 
69
67
  useEffect(() => {
70
68
  setPage(1)
71
69
  }, [method])
72
70
 
71
+ if (!examples) return <></>
72
+ let languages = findExampleLanguages(examples, method.name)
73
73
  if (languages.length === 0) return <></>
74
74
 
75
75
  languages = sortLanguagesByPreference(languages, sdkLanguage)
@@ -24,13 +24,14 @@
24
24
 
25
25
  */
26
26
  import type { FC } from 'react'
27
- import React, { useContext } from 'react'
27
+ import React from 'react'
28
28
  import type { IMethod, IType } from '@looker/sdk-codegen'
29
29
  import { findDeclaration } from '@looker/sdk-codegen'
30
30
  import { Icon, Link, Tooltip } from '@looker/components'
31
31
  import { IdeFileDocument } from '@looker/icons'
32
+ import { useSelector } from 'react-redux'
32
33
 
33
- import { LodeContext } from '../../context'
34
+ import { selectDeclarationsLode } from '../../state'
34
35
 
35
36
  interface DocSourceProps {
36
37
  method?: IMethod
@@ -38,7 +39,7 @@ interface DocSourceProps {
38
39
  }
39
40
 
40
41
  export const DocSource: FC<DocSourceProps> = ({ method, type }) => {
41
- const { declarations } = useContext(LodeContext)
42
+ const declarations = useSelector(selectDeclarationsLode)
42
43
  let sourceLink
43
44
  let declaration
44
45
  if (declarations) {
@@ -54,6 +54,6 @@ describe('SomethingWentWrong', () => {
54
54
 
55
55
  expect(screen.getByText(header)).toBeVisible()
56
56
  expect(screen.getByText(actionMessage)).toBeVisible()
57
- expect(screen.getByAltText(altText)).toBeVisible()
57
+ expect(screen.getByTitle(altText)).toBeInTheDocument()
58
58
  })
59
59
  })