@verdaccio/ui-components 2.0.0-6-next.9 → 2.0.0-6-next.10

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 (259) hide show
  1. package/.babelrc +1 -9
  2. package/CHANGELOG.md +6 -0
  3. package/build/Theme/ResetStyles.js +34 -37
  4. package/build/Theme/StyleBaseline.js +4 -6
  5. package/build/Theme/ThemeProvider.js +24 -34
  6. package/build/Theme/colors.js +1 -1
  7. package/build/Theme/index.js +9 -10
  8. package/build/Theme/theme.js +26 -28
  9. package/build/__mocks__/react-markdown.js +6 -5
  10. package/build/__mocks__/remark-plugin.js +1 -1
  11. package/build/components/ActionBar/ActionBar.js +23 -36
  12. package/build/components/ActionBar/ActionBarAction.js +45 -56
  13. package/build/components/ActionBar/index.js +3 -3
  14. package/build/components/Author/Author.js +26 -21
  15. package/build/components/Author/index.js +3 -3
  16. package/build/components/Author/styles.js +5 -5
  17. package/build/components/CopyClipboard/CopyToClipBoard.js +21 -23
  18. package/build/components/CopyClipboard/index.js +4 -4
  19. package/build/components/CopyClipboard/utils.js +14 -16
  20. package/build/components/Dependencies/Dependencies.js +68 -66
  21. package/build/components/Dependencies/index.js +3 -3
  22. package/build/components/Dependencies/styles.js +9 -11
  23. package/build/components/Deprecated/Deprecated.js +10 -8
  24. package/build/components/Deprecated/index.js +3 -3
  25. package/build/components/Developers/Developers.js +27 -42
  26. package/build/components/Developers/Title.js +19 -18
  27. package/build/components/Developers/get-unique-developer-values.js +3 -13
  28. package/build/components/Developers/index.js +5 -6
  29. package/build/components/Developers/styles.js +7 -7
  30. package/build/components/Distribution/Dist.js +24 -22
  31. package/build/components/Distribution/index.js +3 -3
  32. package/build/components/Distribution/styles.js +7 -7
  33. package/build/components/Distribution/utilts.spec.js +4 -4
  34. package/build/components/Engines/Engines.js +37 -36
  35. package/build/components/Engines/index.js +3 -3
  36. package/build/components/Engines/styles.js +4 -4
  37. package/build/components/ErrorBoundary/ErrorBoundary.js +29 -50
  38. package/build/components/ErrorBoundary/index.js +3 -3
  39. package/build/components/FundButton/FundButton.js +28 -29
  40. package/build/components/FundButton/index.js +3 -3
  41. package/build/components/HeaderInfoDialog/HeaderInfoDialog.js +33 -45
  42. package/build/components/HeaderInfoDialog/index.js +3 -3
  43. package/build/components/Heading/Heading.js +10 -14
  44. package/build/components/Heading/index.js +3 -3
  45. package/build/components/Help/Help.js +22 -21
  46. package/build/components/Help/index.js +3 -3
  47. package/build/components/Help/styles.js +2 -2
  48. package/build/components/Icons/DevsIcons/CommonJS.js +9 -10
  49. package/build/components/Icons/DevsIcons/ES6Module.js +9 -10
  50. package/build/components/Icons/DevsIcons/Git.js +9 -10
  51. package/build/components/Icons/DevsIcons/NodeJS.js +9 -10
  52. package/build/components/Icons/DevsIcons/TypeScript.js +9 -10
  53. package/build/components/Icons/DevsIcons/index.js +5 -5
  54. package/build/components/Icons/Earth.js +11 -11
  55. package/build/components/Icons/FileBinary.js +4 -4
  56. package/build/components/Icons/Law.js +4 -4
  57. package/build/components/Icons/License.js +5 -5
  58. package/build/components/Icons/License.js.map +1 -1
  59. package/build/components/Icons/Managers/Npm.js +9 -10
  60. package/build/components/Icons/Managers/Pnpm.js +9 -10
  61. package/build/components/Icons/Managers/Yarn.js +9 -10
  62. package/build/components/Icons/Managers/index.js +3 -3
  63. package/build/components/Icons/SvgIcon.js +14 -22
  64. package/build/components/Icons/Time.js +6 -6
  65. package/build/components/Icons/Version.js +4 -4
  66. package/build/components/Icons/index.js +8 -8
  67. package/build/components/Install/Install.js +40 -26
  68. package/build/components/Install/InstallListItem.js +46 -37
  69. package/build/components/Install/index.js +3 -3
  70. package/build/components/Label/Label.js +13 -19
  71. package/build/components/Label/index.js +3 -3
  72. package/build/components/Link/Link.js +16 -15
  73. package/build/components/Link/index.js +3 -3
  74. package/build/components/Loading/Loading.js +10 -12
  75. package/build/components/Loading/Spinner/Spinner.js +27 -37
  76. package/build/components/Loading/Spinner/index.js +3 -3
  77. package/build/components/Loading/index.js +3 -3
  78. package/build/components/Loading/styles.js +11 -12
  79. package/build/components/LoginDialog/LoginDialog.js +44 -79
  80. package/build/components/LoginDialog/LoginDialogCloseButton.js +20 -19
  81. package/build/components/LoginDialog/LoginDialogForm.js +40 -39
  82. package/build/components/LoginDialog/LoginDialogFormError.js +26 -28
  83. package/build/components/LoginDialog/LoginDialogHeader.js +29 -29
  84. package/build/components/LoginDialog/index.js +3 -3
  85. package/build/components/Logo/Logo.js +35 -36
  86. package/build/components/Logo/index.js +3 -3
  87. package/build/components/MenuItem/MenuItem.js +8 -9
  88. package/build/components/MenuItem/index.js +3 -3
  89. package/build/components/NoItems/NoItems.js +10 -21
  90. package/build/components/NoItems/index.js +3 -3
  91. package/build/components/NotFound/NotFound.js +24 -25
  92. package/build/components/NotFound/index.js +3 -3
  93. package/build/components/Package/Package.js +108 -146
  94. package/build/components/Package/Tag/Tag.js +6 -7
  95. package/build/components/Package/Tag/index.js +3 -3
  96. package/build/components/Package/Tag/styles.js +2 -2
  97. package/build/components/Package/index.js +5 -6
  98. package/build/components/Package/styles.js +65 -70
  99. package/build/components/PackageList/PackageList.js +56 -52
  100. package/build/components/PackageList/index.js +3 -3
  101. package/build/components/RawViewer/RawViewer.js +23 -22
  102. package/build/components/RawViewer/index.js +3 -3
  103. package/build/components/Readme/Readme.js +21 -21
  104. package/build/components/Readme/Readme.js.map +1 -1
  105. package/build/components/Readme/Readme.spec.js +6 -6
  106. package/build/components/Readme/Readme.spec.js.map +1 -1
  107. package/build/components/Readme/index.js +3 -3
  108. package/build/components/Readme/utils.js +7 -8
  109. package/build/components/RegistryInfoDialog/RegistryInfoDialog.js +14 -14
  110. package/build/components/RegistryInfoDialog/index.js +3 -3
  111. package/build/components/RegistryInfoDialog/styles.js +17 -19
  112. package/build/components/Repository/Repository.js +37 -36
  113. package/build/components/Repository/index.js +3 -3
  114. package/build/components/Search/AutoComplete/AutoComplete.js +26 -35
  115. package/build/components/Search/AutoComplete/index.js +3 -3
  116. package/build/components/Search/AutoComplete/styles.js +15 -16
  117. package/build/components/Search/Search.js +54 -54
  118. package/build/components/Search/SearchItem.js +56 -64
  119. package/build/components/Search/index.js +3 -3
  120. package/build/components/Search/styles.js +16 -17
  121. package/build/components/SettingsMenu/SettingsMenu.js +68 -0
  122. package/build/components/SettingsMenu/index.js +14 -0
  123. package/build/components/SideBarTittle/SideBarTittle.js +33 -31
  124. package/build/components/SideBarTittle/index.js +3 -3
  125. package/build/components/SideBarTittle/utils.js +4 -4
  126. package/build/components/TextField/TextField.js +16 -24
  127. package/build/components/TextField/index.js +3 -3
  128. package/build/components/UpLinks/UpLinks.js +18 -16
  129. package/build/components/UpLinks/index.js +3 -3
  130. package/build/components/UpLinks/styles.js +20 -22
  131. package/build/components/Versions/HistoryList.js +25 -25
  132. package/build/components/Versions/TagList.js +19 -22
  133. package/build/components/Versions/Versions.js +21 -20
  134. package/build/components/Versions/index.js +3 -3
  135. package/build/components/Versions/styles.js +19 -21
  136. package/build/hooks/index.js +5 -5
  137. package/build/hooks/useLocalStorage.js +18 -27
  138. package/build/hooks/useOnClickOutside.js +5 -5
  139. package/build/index.js +104 -97
  140. package/build/layouts/Version/Version.js +8 -8
  141. package/build/layouts/Version/index.js +3 -3
  142. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js +18 -31
  143. package/build/providers/AppConfigurationProvider/index.js +5 -6
  144. package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.js +38 -0
  145. package/build/providers/PersistenceSettingProvider/index.js +21 -0
  146. package/build/providers/TranslatorProvider/TranslatorProvider.js +26 -49
  147. package/build/providers/TranslatorProvider/TranslatorProvider.spec.js +21 -19
  148. package/build/providers/TranslatorProvider/index.js +6 -7
  149. package/build/providers/VersionProvider/VersionProvider.js +32 -34
  150. package/build/providers/VersionProvider/index.js +5 -6
  151. package/build/providers/index.js +3 -3
  152. package/build/sections/Detail/ContainerContent.js +21 -32
  153. package/build/sections/Detail/Detail.js +18 -27
  154. package/build/sections/Detail/ReadmeSection.js +7 -6
  155. package/build/sections/Detail/Tabs.js +16 -14
  156. package/build/sections/Detail/index.js +3 -3
  157. package/build/sections/Footer/Footer.js +54 -56
  158. package/build/sections/Footer/index.js +3 -3
  159. package/build/sections/Footer/styles.js +41 -47
  160. package/build/sections/Header/Header.js +36 -70
  161. package/build/sections/Header/HeaderGreetings.js +10 -8
  162. package/build/sections/Header/HeaderLeft.js +11 -12
  163. package/build/sections/Header/HeaderMenu.js +18 -17
  164. package/build/sections/Header/HeaderRight.js +41 -51
  165. package/build/sections/Header/HeaderSettingsDialog.js +48 -58
  166. package/build/sections/Header/HeaderToolTip.js +10 -11
  167. package/build/sections/Header/HeaderToolTipIcon.js +19 -19
  168. package/build/sections/Header/LanguageSwitch.js +51 -56
  169. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js +72 -71
  170. package/build/sections/Header/RegistryInfoContent/index.js +3 -3
  171. package/build/sections/Header/RegistryInfoContent/styles.js +13 -16
  172. package/build/sections/Header/RegistryInfoDialog/RegistryInfoDialog.js +14 -14
  173. package/build/sections/Header/RegistryInfoDialog/index.js +3 -3
  174. package/build/sections/Header/RegistryInfoDialog/styles.js +17 -19
  175. package/build/sections/Header/index.js +3 -3
  176. package/build/sections/Header/styles.js +35 -38
  177. package/build/sections/Home/Home.js +11 -14
  178. package/build/sections/Home/index.js +3 -3
  179. package/build/sections/SideBar/Sidebar.js +38 -54
  180. package/build/sections/SideBar/index.js +3 -3
  181. package/build/sections/index.js +5 -5
  182. package/build/src/components/ActionBar/ActionBar.stories.d.ts +11 -6
  183. package/build/src/components/Dependencies/Dependencies.stories.d.ts +8 -6
  184. package/build/src/components/FundButton/FundButton.stories.d.ts +7 -5
  185. package/build/src/components/Install/Install.stories.d.ts +9 -5
  186. package/build/src/components/NoItems/NoItems.d.ts +0 -1
  187. package/build/src/components/Repository/Repository.stories.d.ts +8 -6
  188. package/build/src/components/SettingsMenu/SettingsMenu.d.ts +6 -0
  189. package/build/src/components/SettingsMenu/index.d.ts +1 -0
  190. package/build/src/components/SideBarTittle/SideBarTittle.stories.d.ts +9 -0
  191. package/build/src/components/Versions/types.d.ts +0 -2
  192. package/build/src/index.d.ts +1 -0
  193. package/build/src/layouts/Version/Version.stories.d.ts +7 -6
  194. package/build/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.d.ts +6 -0
  195. package/build/src/providers/PersistenceSettingProvider/index.d.ts +1 -0
  196. package/build/src/providers/VersionProvider/VersionProvider.d.ts +0 -2
  197. package/build/store/api.js +35 -52
  198. package/build/store/index.js +9 -9
  199. package/build/store/models/configuration.js +12 -32
  200. package/build/store/models/download.js +22 -44
  201. package/build/store/models/index.js +1 -1
  202. package/build/store/models/login.js +55 -77
  203. package/build/store/models/manifest.js +52 -76
  204. package/build/store/models/packages.js +22 -49
  205. package/build/store/models/search.js +59 -85
  206. package/build/store/storage.js +5 -5
  207. package/build/store/store.js +3 -3
  208. package/build/test/i18n-config.js +5 -5
  209. package/build/test/test-react-testing-library.js +19 -24
  210. package/build/utils/__partials__/packageMeta.js +1 -1
  211. package/build/utils/cli-utils.js +27 -20
  212. package/build/utils/index.js +10 -11
  213. package/build/utils/loadable.js +9 -12
  214. package/build/utils/routes.js +1 -1
  215. package/build/utils/url.js +9 -9
  216. package/build/utils/utils.js +18 -22
  217. package/package.json +5 -5
  218. package/src/components/ActionBar/ActionBar.stories.tsx +60 -46
  219. package/src/components/Author/Author.stories.tsx +1 -1
  220. package/src/components/CopyClipboard/CopyToClipBoard.stories.tsx +1 -1
  221. package/src/components/CopyClipboard/CopyToClipBoard.tsx +2 -2
  222. package/src/components/Dependencies/Dependencies.stories.tsx +151 -51
  223. package/src/components/Dependencies/Dependencies.tsx +61 -51
  224. package/src/components/Deprecated/Deprecated.stories.tsx +1 -1
  225. package/src/components/Developers/Developers.stories.tsx +1 -1
  226. package/src/components/Distribution/Dist.stories.tsx +1 -1
  227. package/src/components/Engines/Engines.stories.tsx +1 -1
  228. package/src/components/FundButton/FundButton.stories.tsx +48 -17
  229. package/src/components/Help/Help.stories.tsx +1 -1
  230. package/src/components/Icons/Icons.stories.tsx +1 -1
  231. package/src/components/Install/Install.stories.tsx +79 -26
  232. package/src/components/Install/Install.tsx +28 -14
  233. package/src/components/Install/InstallListItem.tsx +24 -8
  234. package/src/components/Loading/Loading.stories.tsx +1 -1
  235. package/src/components/LoginDialog/LoginDialog.stories.tsx +1 -1
  236. package/src/components/NoItems/NoItems.stories.tsx +1 -1
  237. package/src/components/NoItems/NoItems.tsx +5 -6
  238. package/src/components/Repository/Repository.stories.tsx +39 -12
  239. package/src/components/Repository/Repository.tsx +2 -4
  240. package/src/components/Search/Search.stories.tsx +1 -1
  241. package/src/components/SettingsMenu/SettingsMenu.tsx +67 -0
  242. package/src/components/SettingsMenu/index.ts +1 -0
  243. package/src/components/SideBarTittle/SideBarTittle.stories.tsx +68 -0
  244. package/src/components/UpLinks/Uplinks.stories.tsx +1 -1
  245. package/src/components/Versions/types.ts +0 -2
  246. package/src/index.ts +2 -0
  247. package/src/layouts/Version/Version.stories.tsx +35 -20
  248. package/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx +0 -1
  249. package/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx +57 -0
  250. package/src/providers/PersistenceSettingProvider/index.ts +1 -0
  251. package/src/providers/VersionProvider/VersionProvider.tsx +0 -2
  252. package/src/sections/Detail/Detail.stories.tsx +1 -1
  253. package/src/sections/Header/Header.stories.tsx +1 -1
  254. package/src/sections/Home/Home.stories.tsx +1 -1
  255. package/src/sections/SideBar/Sidebar.stories.tsx +1 -1
  256. package/src/sections/SideBar/Sidebar.test.tsx +0 -1
  257. package/src/test/test-react-testing-library.tsx +17 -12
  258. package/src/utils/url.test.ts +4 -0
  259. package/src/utils/url.ts +1 -1
@@ -0,0 +1,68 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import React from 'react';
3
+
4
+ import { default as SideBarTittle } from '.';
5
+
6
+ const meta: Meta<typeof SideBarTittle> = {
7
+ title: 'Components/Sidebar/Title',
8
+ component: SideBarTittle,
9
+ };
10
+
11
+ export default meta;
12
+
13
+ type Story = StoryObj<typeof SideBarTittle>;
14
+
15
+ export const Commonjs: Story = {
16
+ name: 'CommonJS package',
17
+ render: () => (
18
+ <SideBarTittle
19
+ isLatest={false}
20
+ moduleType="commonjs"
21
+ packageName="jquery"
22
+ time="2012-12-31T06:54:14.275Z"
23
+ version="1.0.0"
24
+ />
25
+ ),
26
+ };
27
+
28
+ export const ES6: Story = {
29
+ name: 'ES6 package',
30
+ render: () => (
31
+ <SideBarTittle
32
+ isLatest={true}
33
+ moduleType="module"
34
+ packageName="react"
35
+ time="2012-12-31T06:54:14.275Z"
36
+ version="14.0.0"
37
+ />
38
+ ),
39
+ };
40
+
41
+ export const Description: Story = {
42
+ name: 'With description',
43
+ render: () => (
44
+ <SideBarTittle
45
+ description="Storybook's CLI - easiest method of adding storybook to your projects"
46
+ isLatest={true}
47
+ moduleType="module"
48
+ packageName="storybook"
49
+ time="2012-12-31T06:54:14.275Z"
50
+ version="14.0.0"
51
+ />
52
+ ),
53
+ };
54
+
55
+ export const WithTypes: Story = {
56
+ name: 'With types declaration',
57
+ render: () => (
58
+ <SideBarTittle
59
+ description="Storybook's CLI - easiest method of adding storybook to your projects"
60
+ hasTypes={true}
61
+ isLatest={true}
62
+ moduleType="module"
63
+ packageName="storybook"
64
+ time="2012-12-31T06:54:14.275Z"
65
+ version="14.0.0"
66
+ />
67
+ ),
68
+ };
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { default as Uplinks } from '.';
4
4
 
5
5
  export default {
6
- title: 'Uplinks',
6
+ title: 'Components/Detail/Uplinks',
7
7
  };
8
8
 
9
9
  export const UplinksAll: any = () => {
@@ -1,7 +1,6 @@
1
1
  import { PackageMetaInterface } from '../../types/packageMeta';
2
2
 
3
3
  export interface DetailContextProps {
4
- enableLoading: () => void;
5
4
  hasNotBeenFound: boolean;
6
5
  isLoading: boolean;
7
6
  packageMeta: PackageMetaInterface;
@@ -11,7 +10,6 @@ export interface DetailContextProps {
11
10
  }
12
11
 
13
12
  export interface VersionPageConsumerProps {
14
- enableLoading: () => void;
15
13
  packageMeta: PackageMetaInterface;
16
14
  packageName: string;
17
15
  packageVersion?: string;
package/src/index.ts CHANGED
@@ -42,6 +42,8 @@ export { VersionLayout } from './layouts/Version';
42
42
 
43
43
  // providers
44
44
  export { default as AppConfigurationProvider } from './providers/AppConfigurationProvider';
45
+ export { default as PersistenceSettingProvider } from './providers/PersistenceSettingProvider';
46
+
45
47
  export * from './providers/AppConfigurationProvider';
46
48
  export { TranslatorProvider, useLanguage, LanguageItem } from './providers/TranslatorProvider';
47
49
  export * from './providers/TranslatorProvider';
@@ -1,29 +1,44 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
1
2
  import React from 'react';
2
3
  import { MemoryRouter, Route } from 'react-router';
3
4
 
4
5
  import { VersionProvider } from '../../providers';
5
6
  import VersionLayout from './Version';
6
7
 
7
- export default {
8
- title: 'VersionLayout',
8
+ const meta: Meta<typeof VersionLayout> = {
9
+ title: 'Layout/Version',
10
+ component: VersionLayout,
9
11
  };
10
12
 
11
- export const VersionLayoutStorybook: any = () => (
12
- <MemoryRouter initialEntries={[`/-/web/detail/storybook`]}>
13
- <Route exact={true} path="/-/web/detail/:package">
14
- <VersionProvider>
15
- <VersionLayout />
16
- </VersionProvider>
17
- </Route>
18
- </MemoryRouter>
19
- );
13
+ export default meta;
14
+ type Story = StoryObj<typeof VersionLayout>;
20
15
 
21
- export const VersionLayoutJquery: any = () => (
22
- <MemoryRouter initialEntries={[`/-/web/detail/jquery`]}>
23
- <Route exact={true} path="/-/web/detail/:package">
24
- <VersionProvider>
25
- <VersionLayout />
26
- </VersionProvider>
27
- </Route>
28
- </MemoryRouter>
29
- );
16
+ export const Primary: Story = {
17
+ name: 'Storybook',
18
+ render: () => {
19
+ return (
20
+ <MemoryRouter initialEntries={[`/-/web/detail/storybook`]}>
21
+ <Route exact={true} path="/-/web/detail/:package">
22
+ <VersionProvider>
23
+ <VersionLayout />
24
+ </VersionProvider>
25
+ </Route>
26
+ </MemoryRouter>
27
+ );
28
+ },
29
+ };
30
+
31
+ export const jQuery: Story = {
32
+ name: 'jQuery',
33
+ render: () => {
34
+ return (
35
+ <MemoryRouter initialEntries={[`/-/web/detail/jquery`]}>
36
+ <Route exact={true} path="/-/web/detail/:package">
37
+ <VersionProvider>
38
+ <VersionLayout />
39
+ </VersionProvider>
40
+ </Route>
41
+ </MemoryRouter>
42
+ );
43
+ },
44
+ };
@@ -54,7 +54,6 @@ const AppConfigurationContext = createContext<ConfigProviderProps>(defaultValues
54
54
  const AppConfigurationProvider: FunctionComponent<{ children: React.ReactElement<any> }> = ({
55
55
  children,
56
56
  }) => {
57
- // Read only
58
57
  const [configOptions] = useState<TemplateUIOptions>(getConfiguration());
59
58
 
60
59
  const value = useMemo(
@@ -0,0 +1,57 @@
1
+ import React, {
2
+ FunctionComponent,
3
+ createContext,
4
+ useCallback,
5
+ useContext,
6
+ useMemo,
7
+ useState,
8
+ } from 'react';
9
+
10
+ import useLocalStorage from '../../hooks/useLocalStorage';
11
+
12
+ type PersistenceSettingsProps = {
13
+ isGlobal?: boolean;
14
+ };
15
+
16
+ const defaultValues: PersistenceSettingsProps = {
17
+ isGlobal: false,
18
+ };
19
+
20
+ const PersistenceSettingContext = createContext<any>(defaultValues);
21
+
22
+ const PersistenceSettingProvider: FunctionComponent<{ children: React.ReactElement<any> }> = ({
23
+ children,
24
+ }) => {
25
+ // get the initial state from the local storage
26
+ const [settings, setSettings] = useLocalStorage(`settings-ui-verdaccio`, {});
27
+
28
+ const [localSettings, setLocalSettings] = useState<PersistenceSettingsProps>(
29
+ settings ? settings : {}
30
+ );
31
+
32
+ const updateSettings = useCallback(
33
+ (newSettings: React.SetStateAction<PersistenceSettingsProps>) => {
34
+ setLocalSettings(newSettings);
35
+ setSettings(newSettings);
36
+ },
37
+ [setSettings]
38
+ );
39
+
40
+ const value = useMemo(
41
+ () => ({
42
+ localSettings: localSettings ? localSettings : {},
43
+ updateSettings,
44
+ }),
45
+ [localSettings, updateSettings]
46
+ );
47
+
48
+ return (
49
+ <PersistenceSettingContext.Provider value={value}>
50
+ {children}
51
+ </PersistenceSettingContext.Provider>
52
+ );
53
+ };
54
+
55
+ export default PersistenceSettingProvider;
56
+
57
+ export const useSettings = () => useContext(PersistenceSettingContext);
@@ -0,0 +1 @@
1
+ export { default, useSettings } from './PersistenceSettingProvider';
@@ -15,7 +15,6 @@ function getRouterPackageName(packageName: string, scope?: string): string {
15
15
  }
16
16
 
17
17
  export interface DetailContextProps {
18
- enableLoading: () => void;
19
18
  hasNotBeenFound: boolean;
20
19
  isLoading: boolean;
21
20
  packageMeta: PackageMetaInterface;
@@ -25,7 +24,6 @@ export interface DetailContextProps {
25
24
  }
26
25
 
27
26
  export interface VersionPageConsumerProps {
28
- enableLoading: () => void;
29
27
  packageMeta: PackageMetaInterface;
30
28
  packageName: string;
31
29
  packageVersion?: string;
@@ -5,7 +5,7 @@ import { VersionProvider } from '../../providers';
5
5
  import Detail from './Detail';
6
6
 
7
7
  export default {
8
- title: 'Detail',
8
+ title: 'Sections/Detail',
9
9
  };
10
10
 
11
11
  export const DetailStorybook: any = () => (
@@ -6,7 +6,7 @@ import { VersionProvider } from '../../providers';
6
6
  import Header from './Header';
7
7
 
8
8
  export default {
9
- title: 'Header',
9
+ title: 'Sections/Header',
10
10
  };
11
11
 
12
12
  function CustomInfoDialog({ onCloseDialog, title, isOpen }) {
@@ -4,7 +4,7 @@ import { MemoryRouter, Route } from 'react-router';
4
4
  import Home from './Home';
5
5
 
6
6
  export default {
7
- title: 'Home',
7
+ title: 'Sections/Home',
8
8
  };
9
9
 
10
10
  export const HomeDefault: any = () => (
@@ -5,7 +5,7 @@ import { VersionProvider } from '../../providers';
5
5
  import DetailSidebar from './Sidebar';
6
6
 
7
7
  export default {
8
- title: 'Sidebar',
8
+ title: 'Sections/Sidebar',
9
9
  };
10
10
 
11
11
  export const SidebarLatestPackage: any = () => (
@@ -43,7 +43,6 @@ const packageMeta = {
43
43
  // const detailContextValue = {
44
44
  // packageName: 'foo',
45
45
  // readMe: 'test',
46
- // enableLoading: () => {},
47
46
  // isLoading: false,
48
47
  // hasNotBeenFound: false,
49
48
  // packageMeta: ,
@@ -6,6 +6,7 @@ import { Provider } from 'react-redux';
6
6
 
7
7
  import { ThemeProvider } from '../Theme';
8
8
  import AppConfigurationProvider from '../providers/AppConfigurationProvider';
9
+ import PersistenceSettingProvider from '../providers/PersistenceSettingProvider';
9
10
  import { Store } from '../store/store';
10
11
  import i18nConfig from './i18n-config';
11
12
 
@@ -13,13 +14,15 @@ const renderWithStore = (ui: React.ReactElement<any>, store: Store) =>
13
14
  render(ui, {
14
15
  wrapper: ({ children }) => (
15
16
  <Provider store={store}>
16
- <AppConfigurationProvider>
17
- <StyledEngineProvider injectFirst={true}>
18
- <ThemeProvider>
19
- <I18nextProvider i18n={i18nConfig}>{children}</I18nextProvider>
20
- </ThemeProvider>
21
- </StyledEngineProvider>
22
- </AppConfigurationProvider>
17
+ <PersistenceSettingProvider>
18
+ <AppConfigurationProvider>
19
+ <StyledEngineProvider injectFirst={true}>
20
+ <ThemeProvider>
21
+ <I18nextProvider i18n={i18nConfig}>{children}</I18nextProvider>
22
+ </ThemeProvider>
23
+ </StyledEngineProvider>
24
+ </AppConfigurationProvider>
25
+ </PersistenceSettingProvider>
23
26
  </Provider>
24
27
  ),
25
28
  });
@@ -27,11 +30,13 @@ const renderWithStore = (ui: React.ReactElement<any>, store: Store) =>
27
30
  const customRender = (node: React.ReactElement, ...options: any) => {
28
31
  return render(
29
32
  <AppConfigurationProvider>
30
- <StyledEngineProvider injectFirst={true}>
31
- <ThemeProvider>
32
- <I18nextProvider i18n={i18nConfig}>{node}</I18nextProvider>
33
- </ThemeProvider>
34
- </StyledEngineProvider>
33
+ <PersistenceSettingProvider>
34
+ <StyledEngineProvider injectFirst={true}>
35
+ <ThemeProvider>
36
+ <I18nextProvider i18n={i18nConfig}>{node}</I18nextProvider>
37
+ </ThemeProvider>
38
+ </StyledEngineProvider>
39
+ </PersistenceSettingProvider>
35
40
  </AppConfigurationProvider>,
36
41
  ...options
37
42
  );
@@ -16,6 +16,10 @@ describe('utils', () => {
16
16
  test('isEmail() - should return false if invalid', () => {
17
17
  expect(isEmail('')).toBeFalsy();
18
18
  });
19
+
20
+ test('git repo is valid', () => {
21
+ expect(isURL('git://github.com/verdaccio/ui.git')).toBeTruthy();
22
+ });
19
23
  });
20
24
 
21
25
  describe('extractFileName', () => {
package/src/utils/url.ts CHANGED
@@ -3,7 +3,7 @@ import isURLValidator from 'validator/lib/isURL';
3
3
 
4
4
  export function isURL(url: string): boolean {
5
5
  return isURLValidator(url || '', {
6
- protocols: ['http', 'https', 'git+https'],
6
+ protocols: ['http', 'https', 'git+https', 'git'],
7
7
  require_protocol: true,
8
8
  require_tld: false,
9
9
  });