]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-12886 Update LTS handling in static documentation
authorWouter Admiraal <wouter.admiraal@sonarsource.com>
Thu, 2 Jan 2020 14:20:29 +0000 (15:20 +0100)
committersonartech <sonartech@sonarsource.com>
Fri, 15 May 2020 20:03:57 +0000 (20:03 +0000)
server/sonar-docs/src/@types/types.d.ts
server/sonar-docs/src/components/Sidebar.tsx
server/sonar-docs/src/components/VersionSelect.tsx
server/sonar-docs/src/components/__tests__/Sidebar-test.tsx
server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx [new file with mode: 0644]
server/sonar-docs/src/components/__tests__/__snapshots__/Sidebar-test.tsx.snap
server/sonar-docs/src/components/__tests__/__snapshots__/VersionSelect-test.tsx.snap [new file with mode: 0644]
server/sonar-docs/src/layouts/layout.css
server/sonar-docs/static/DocsVersions.json
server/sonar-docs/yarn.lock

index 289ad620c2af383bc83cba5c779d99f15ad7a060..4dffe9d522780e326eccc09fe49c7a84e42b7fef 100644 (file)
@@ -22,6 +22,7 @@ export type Dict<T> = { [key: string]: T };
 
 export interface DocVersion {
   current: boolean;
+  lts?: boolean;
   value: string;
 }
 
index e49e89b8b4e0a20de8fe5f2b67c2e8513b8c1d0e..fa6ba53d7968649c4cbde713f0a479b881938ffb 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import * as React from 'react';
 import { Link } from 'gatsby';
+import * as React from 'react';
 import CategoryBlockLink from './CategoryBlockLink';
 import ExternalLink from './ExternalLink';
-import PageLink from './PageLink';
-import Search from './Search';
-import SearchEntryResult from './SearchEntryResult';
-import VersionSelect from './VersionSelect';
 import DownloadIcon from './icons/DownloadIcon';
 import {
   getNavTree,
+  getOpenChainFromPath,
   isDocsNavigationBlock,
   isDocsNavigationExternalLink,
-  getOpenChainFromPath,
   testPathAgainstUrl
 } from './navTreeUtils';
+import PageLink from './PageLink';
+import Search from './Search';
+import SearchEntryResult from './SearchEntryResult';
+import VersionSelect from './VersionSelect';
+import { DocNavigationItem, DocVersion, SearchResult } from '../@types/types';
 import { MarkdownRemark } from '../@types/graphql-types';
-import { SearchResult, DocVersion, DocNavigationItem } from '../@types/types';
 
 interface Props {
   location: Location;
@@ -169,10 +169,16 @@ export default class Sidebar extends React.PureComponent<Props, State> {
 
   render() {
     const { versions } = this.state;
+    const { version } = this.props;
+
     const currentVersion = versions.find(v => v.current);
+    const ltsVersion = versions.find(v => Boolean(v.lts));
+
     const selectedVersionValue =
-      currentVersion && this.props.version === 'latest' ? currentVersion.value : this.props.version;
+      currentVersion && version === 'latest' ? currentVersion.value : version;
     const isOnCurrentVersion = !currentVersion || selectedVersionValue === currentVersion.value;
+    const isOnLTSVersion = ltsVersion && version === ltsVersion.value;
+
     return (
       <div className="page-sidebar">
         <div className="sidebar-header">
@@ -180,7 +186,7 @@ export default class Sidebar extends React.PureComponent<Props, State> {
             <img
               alt="Continuous Code Quality"
               className="sidebar-logo"
-              src={`/${this.props.version}/images/SonarQubeIcon.svg`}
+              src={`/${version}/images/SonarQubeIcon.svg`}
               title="Continuous Code Quality"
               width="160"
             />
@@ -190,11 +196,10 @@ export default class Sidebar extends React.PureComponent<Props, State> {
             selectedVersionValue={selectedVersionValue}
             versions={versions}
           />
-          {this.state.loaded && !isOnCurrentVersion && (
+          {this.state.loaded && !isOnCurrentVersion && !isOnLTSVersion && (
             <div className="alert alert-warning">
-              This is an archived version of the doc for{' '}
-              <b>SonarQube version {this.props.version}</b>. <a href="/">See Documentation</a> for
-              current functionnality.
+              This is an archived version of the doc for <b>SonarQube version {version}</b>.{' '}
+              <a href="/">See Documentation</a> for current functionnality.
             </div>
           )}
         </div>
@@ -211,21 +216,21 @@ export default class Sidebar extends React.PureComponent<Props, State> {
             <DownloadIcon /> SonarQube
           </a>
           <a href="https://community.sonarsource.com/" rel="noopener noreferrer" target="_blank">
-            <img alt="Community" src={`/${this.props.version}/images/community.svg`} /> Community
+            <img alt="Community" src={`/${version}/images/community.svg`} /> Community
           </a>
           <a
             className="icon-only"
             href="https://twitter.com/SonarQube"
             rel="noopener noreferrer"
             target="_blank">
-            <img alt="Twitter" src={`/${this.props.version}/images/twitter.svg`} />
+            <img alt="Twitter" src={`/${version}/images/twitter.svg`} />
           </a>
           <a
             className="icon-only"
             href="https://www.sonarsource.com/resources/product-news/"
             rel="noopener noreferrer"
             target="_blank">
-            <img alt="Product News" src={`/${this.props.version}/images/newspaper.svg`} />
+            <img alt="Product News" src={`/${version}/images/newspaper.svg`} />
             <span className="tooltip">Product News</span>
           </a>
         </div>
index a7ea4465824c2b81479b1de404f02ec447a54089..1723e998448bfd899633c74d1d6a2884ad363115 100644 (file)
@@ -62,7 +62,9 @@ export default class VersionSelect extends React.PureComponent<Props, State> {
                 return (
                   <li key={version.value}>
                     <a href={version.current ? '/' : '/' + version.value}>
-                      <span className={version.current ? 'current' : ''}>{version.value}</span>
+                      <span className={version.current || version.lts ? 'current' : ''}>
+                        {version.value + (version.lts ? ' LTS' : '')}
+                      </span>
                     </a>
                   </li>
                 );
index a7d64ea8ba2d645d70c19b784891952deb3f09d7..5545d47234470e2884fd05705652742349fafe39 100644 (file)
@@ -59,18 +59,23 @@ jest.mock('../navTreeUtils', () => {
 beforeEach(() => {
   (fetch as FetchMock).resetMocks();
   (fetch as FetchMock).mockResponse(`[
-    { "value": "2.0", "current": true },
+    { "value": "3.0", "current": true },
+    { "value": "2.0", "current": false, "lts": true },
     { "value": "1.0", "current": false }
   ]`);
 });
 
-it('should render correctly', () => {
+it('should render correctly', async () => {
   const wrapper = shallowRender();
-  expect(wrapper).toMatchSnapshot();
+  await new Promise(setImmediate);
+
+  expect(wrapper).toMatchSnapshot('default');
+  expect(wrapper.setProps({ version: '1.0' })).toMatchSnapshot('show warning');
+  expect(wrapper.setProps({ version: '2.0' })).toMatchSnapshot('lts');
 });
 
 function shallowRender(props: Partial<Sidebar['props']> = {}) {
-  return shallow(
+  return shallow<Sidebar>(
     <Sidebar
       location={{ pathname: '/foo/baz/foo/bar' } as Location}
       pages={[
@@ -99,7 +104,7 @@ function shallowRender(props: Partial<Sidebar['props']> = {}) {
           }
         } as MarkdownRemark
       ]}
-      version="2.0"
+      version="3.0"
       {...props}
     />
   );
diff --git a/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx b/server/sonar-docs/src/components/__tests__/VersionSelect-test.tsx
new file mode 100644 (file)
index 0000000..411b562
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2020 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+import { shallow } from 'enzyme';
+import * as React from 'react';
+import OutsideClickHandler from '../OutsideClickHandler';
+import VersionSelect from '../VersionSelect';
+
+it('should render correctly', () => {
+  expect(shallowRender()).toMatchSnapshot('default');
+
+  const wrapper = shallowRender();
+  wrapper.setState({ open: true });
+  expect(wrapper).toMatchSnapshot('open');
+
+  expect(shallowRender({ isOnCurrentVersion: true })).toMatchSnapshot('on current version');
+});
+
+it('should handle open/closing the list', () => {
+  const wrapper = shallowRender();
+
+  wrapper.find('button').simulate('click');
+  expect(wrapper.state().open).toBe(true);
+  wrapper.find('button').simulate('click');
+  expect(wrapper.state().open).toBe(false);
+
+  wrapper.setState({ open: true });
+  wrapper.find(OutsideClickHandler).prop('onClickOutside')();
+  expect(wrapper.state().open).toBe(false);
+});
+
+function shallowRender(props: Partial<VersionSelect['props']> = {}) {
+  return shallow<VersionSelect>(
+    <VersionSelect
+      isOnCurrentVersion={false}
+      selectedVersionValue="1.0"
+      versions={[
+        { value: '3.0', current: true },
+        { value: '2.0', current: false, lts: true },
+        { value: '1.0', current: false }
+      ]}
+      {...props}
+    />
+  );
+}
index 3380f584f822841891968145ebf701a589ac9145..d7c45fad7d63ceea853dc3304db0d5e133de6a42 100644 (file)
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`should render correctly 1`] = `
+exports[`should render correctly: default 1`] = `
 <div
   className="page-sidebar"
 >
@@ -13,15 +13,294 @@ exports[`should render correctly 1`] = `
       <img
         alt="Continuous Code Quality"
         className="sidebar-logo"
-        src="/2.0/images/SonarQubeIcon.svg"
+        src="/3.0/images/SonarQubeIcon.svg"
         title="Continuous Code Quality"
         width="160"
       />
     </ForwardRef>
     <VersionSelect
       isOnCurrentVersion={true}
+      selectedVersionValue="3.0"
+      versions={
+        Array [
+          Object {
+            "current": true,
+            "value": "3.0",
+          },
+          Object {
+            "current": false,
+            "lts": true,
+            "value": "2.0",
+          },
+          Object {
+            "current": false,
+            "value": "1.0",
+          },
+        ]
+      }
+    />
+  </div>
+  <div
+    className="page-indexes"
+  >
+    <Search
+      navigation={
+        Array [
+          "/foo/",
+          Object {
+            "children": Array [
+              "/foo/bar/",
+              "/foo/baz/",
+              Object {
+                "children": Array [
+                  "/foo/baz/bar/",
+                  "/foo/baz/foo/",
+                  Object {
+                    "children": Array [
+                      "/foo/baz/foo/bar/",
+                      "/foo/baz/foo/baz",
+                    ],
+                    "title": "Foo Baz Foo subs",
+                  },
+                ],
+                "title": "Foo Baz subs",
+              },
+            ],
+            "title": "Foo subs",
+          },
+          "/bar/",
+          Object {
+            "children": Array [
+              Object {
+                "title": "External link 1",
+                "url": "http://example.com/1",
+              },
+              "/bar/foo/",
+            ],
+            "title": "Bar subs",
+          },
+          Object {
+            "title": "External link 2",
+            "url": "http://example.com/2",
+          },
+        ]
+      }
+      onResultsChange={[Function]}
+      pages={
+        Array [
+          Object {
+            "fields": Object {
+              "slug": "/foo/",
+            },
+            "frontmatter": Object {
+              "title": "Foo",
+            },
+          },
+          Object {
+            "fields": Object {
+              "slug": "/foo/baz/bar",
+            },
+            "frontmatter": Object {
+              "title": "Foo Baz Bar",
+            },
+          },
+          Object {
+            "fields": Object {
+              "slug": "/bar/",
+            },
+            "frontmatter": Object {
+              "title": "Bar",
+            },
+          },
+        ]
+      }
+    />
+    <nav>
+      <PageLink
+        className="page-indexes-link"
+        key="/foo/"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        node={
+          Object {
+            "fields": Object {
+              "slug": "/foo/",
+            },
+            "frontmatter": Object {
+              "title": "Foo",
+            },
+          }
+        }
+      />
+      <CategoryLink
+        key="Foo subs"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        openByDefault={true}
+        title="Foo subs"
+      >
+        <CategoryLink
+          key="Foo Baz subs"
+          location={
+            Object {
+              "pathname": "/foo/baz/foo/bar",
+            }
+          }
+          openByDefault={true}
+          title="Foo Baz subs"
+        >
+          <Component />
+          <CategoryLink
+            key="Foo Baz Foo subs"
+            location={
+              Object {
+                "pathname": "/foo/baz/foo/bar",
+              }
+            }
+            openByDefault={true}
+            title="Foo Baz Foo subs"
+          />
+        </CategoryLink>
+      </CategoryLink>
+      <PageLink
+        className="page-indexes-link"
+        key="/bar/"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        node={
+          Object {
+            "fields": Object {
+              "slug": "/bar/",
+            },
+            "frontmatter": Object {
+              "title": "Bar",
+            },
+          }
+        }
+      />
+      <CategoryLink
+        key="Bar subs"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        openByDefault={false}
+        title="Bar subs"
+      >
+        <ExternalLink
+          external="http://example.com/1"
+          key="External link 1"
+          title="External link 1"
+        />
+      </CategoryLink>
+      <ExternalLink
+        external="http://example.com/2"
+        key="External link 2"
+        title="External link 2"
+      />
+    </nav>
+  </div>
+  <div
+    className="sidebar-footer"
+  >
+    <a
+      href="https://www.sonarqube.org/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <DownloadIcon />
+       SonarQube
+    </a>
+    <a
+      href="https://community.sonarsource.com/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Community"
+        src="/3.0/images/community.svg"
+      />
+       Community
+    </a>
+    <a
+      className="icon-only"
+      href="https://twitter.com/SonarQube"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Twitter"
+        src="/3.0/images/twitter.svg"
+      />
+    </a>
+    <a
+      className="icon-only"
+      href="https://www.sonarsource.com/resources/product-news/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Product News"
+        src="/3.0/images/newspaper.svg"
+      />
+      <span
+        className="tooltip"
+      >
+        Product News
+      </span>
+    </a>
+  </div>
+</div>
+`;
+
+exports[`should render correctly: lts 1`] = `
+<div
+  className="page-sidebar"
+>
+  <div
+    className="sidebar-header"
+  >
+    <ForwardRef
+      to="/"
+    >
+      <img
+        alt="Continuous Code Quality"
+        className="sidebar-logo"
+        src="/2.0/images/SonarQubeIcon.svg"
+        title="Continuous Code Quality"
+        width="160"
+      />
+    </ForwardRef>
+    <VersionSelect
+      isOnCurrentVersion={false}
       selectedVersionValue="2.0"
-      versions={Array []}
+      versions={
+        Array [
+          Object {
+            "current": true,
+            "value": "3.0",
+          },
+          Object {
+            "current": false,
+            "lts": true,
+            "value": "2.0",
+          },
+          Object {
+            "current": false,
+            "value": "1.0",
+          },
+        ]
+      }
     />
   </div>
   <div
@@ -246,3 +525,283 @@ exports[`should render correctly 1`] = `
   </div>
 </div>
 `;
+
+exports[`should render correctly: show warning 1`] = `
+<div
+  className="page-sidebar"
+>
+  <div
+    className="sidebar-header"
+  >
+    <ForwardRef
+      to="/"
+    >
+      <img
+        alt="Continuous Code Quality"
+        className="sidebar-logo"
+        src="/1.0/images/SonarQubeIcon.svg"
+        title="Continuous Code Quality"
+        width="160"
+      />
+    </ForwardRef>
+    <VersionSelect
+      isOnCurrentVersion={false}
+      selectedVersionValue="1.0"
+      versions={
+        Array [
+          Object {
+            "current": true,
+            "value": "3.0",
+          },
+          Object {
+            "current": false,
+            "lts": true,
+            "value": "2.0",
+          },
+          Object {
+            "current": false,
+            "value": "1.0",
+          },
+        ]
+      }
+    />
+    <div
+      className="alert alert-warning"
+    >
+      This is an archived version of the doc for 
+      <b>
+        SonarQube version 
+        1.0
+      </b>
+      .
+       
+      <a
+        href="/"
+      >
+        See Documentation
+      </a>
+       for current functionnality.
+    </div>
+  </div>
+  <div
+    className="page-indexes"
+  >
+    <Search
+      navigation={
+        Array [
+          "/foo/",
+          Object {
+            "children": Array [
+              "/foo/bar/",
+              "/foo/baz/",
+              Object {
+                "children": Array [
+                  "/foo/baz/bar/",
+                  "/foo/baz/foo/",
+                  Object {
+                    "children": Array [
+                      "/foo/baz/foo/bar/",
+                      "/foo/baz/foo/baz",
+                    ],
+                    "title": "Foo Baz Foo subs",
+                  },
+                ],
+                "title": "Foo Baz subs",
+              },
+            ],
+            "title": "Foo subs",
+          },
+          "/bar/",
+          Object {
+            "children": Array [
+              Object {
+                "title": "External link 1",
+                "url": "http://example.com/1",
+              },
+              "/bar/foo/",
+            ],
+            "title": "Bar subs",
+          },
+          Object {
+            "title": "External link 2",
+            "url": "http://example.com/2",
+          },
+        ]
+      }
+      onResultsChange={[Function]}
+      pages={
+        Array [
+          Object {
+            "fields": Object {
+              "slug": "/foo/",
+            },
+            "frontmatter": Object {
+              "title": "Foo",
+            },
+          },
+          Object {
+            "fields": Object {
+              "slug": "/foo/baz/bar",
+            },
+            "frontmatter": Object {
+              "title": "Foo Baz Bar",
+            },
+          },
+          Object {
+            "fields": Object {
+              "slug": "/bar/",
+            },
+            "frontmatter": Object {
+              "title": "Bar",
+            },
+          },
+        ]
+      }
+    />
+    <nav>
+      <PageLink
+        className="page-indexes-link"
+        key="/foo/"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        node={
+          Object {
+            "fields": Object {
+              "slug": "/foo/",
+            },
+            "frontmatter": Object {
+              "title": "Foo",
+            },
+          }
+        }
+      />
+      <CategoryLink
+        key="Foo subs"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        openByDefault={true}
+        title="Foo subs"
+      >
+        <CategoryLink
+          key="Foo Baz subs"
+          location={
+            Object {
+              "pathname": "/foo/baz/foo/bar",
+            }
+          }
+          openByDefault={true}
+          title="Foo Baz subs"
+        >
+          <Component />
+          <CategoryLink
+            key="Foo Baz Foo subs"
+            location={
+              Object {
+                "pathname": "/foo/baz/foo/bar",
+              }
+            }
+            openByDefault={true}
+            title="Foo Baz Foo subs"
+          />
+        </CategoryLink>
+      </CategoryLink>
+      <PageLink
+        className="page-indexes-link"
+        key="/bar/"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        node={
+          Object {
+            "fields": Object {
+              "slug": "/bar/",
+            },
+            "frontmatter": Object {
+              "title": "Bar",
+            },
+          }
+        }
+      />
+      <CategoryLink
+        key="Bar subs"
+        location={
+          Object {
+            "pathname": "/foo/baz/foo/bar",
+          }
+        }
+        openByDefault={false}
+        title="Bar subs"
+      >
+        <ExternalLink
+          external="http://example.com/1"
+          key="External link 1"
+          title="External link 1"
+        />
+      </CategoryLink>
+      <ExternalLink
+        external="http://example.com/2"
+        key="External link 2"
+        title="External link 2"
+      />
+    </nav>
+  </div>
+  <div
+    className="sidebar-footer"
+  >
+    <a
+      href="https://www.sonarqube.org/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <DownloadIcon />
+       SonarQube
+    </a>
+    <a
+      href="https://community.sonarsource.com/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Community"
+        src="/1.0/images/community.svg"
+      />
+       Community
+    </a>
+    <a
+      className="icon-only"
+      href="https://twitter.com/SonarQube"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Twitter"
+        src="/1.0/images/twitter.svg"
+      />
+    </a>
+    <a
+      className="icon-only"
+      href="https://www.sonarsource.com/resources/product-news/"
+      rel="noopener noreferrer"
+      target="_blank"
+    >
+      <img
+        alt="Product News"
+        src="/1.0/images/newspaper.svg"
+      />
+      <span
+        className="tooltip"
+      >
+        Product News
+      </span>
+    </a>
+  </div>
+</div>
+`;
diff --git a/server/sonar-docs/src/components/__tests__/__snapshots__/VersionSelect-test.tsx.snap b/server/sonar-docs/src/components/__tests__/__snapshots__/VersionSelect-test.tsx.snap
new file mode 100644 (file)
index 0000000..b91c29e
--- /dev/null
@@ -0,0 +1,109 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render correctly: default 1`] = `
+<div
+  className="version-select"
+>
+  <button
+    onClick={[Function]}
+    type="button"
+  >
+    Docs 
+    <span
+      className=""
+    >
+      1.0
+    </span>
+    <ChevronDownIcon
+      size={10}
+    />
+  </button>
+</div>
+`;
+
+exports[`should render correctly: on current version 1`] = `
+<div
+  className="version-select"
+>
+  <button
+    onClick={[Function]}
+    type="button"
+  >
+    Docs 
+    <span
+      className="current"
+    >
+      1.0
+    </span>
+    <ChevronDownIcon
+      size={10}
+    />
+  </button>
+</div>
+`;
+
+exports[`should render correctly: open 1`] = `
+<div
+  className="version-select"
+>
+  <button
+    onClick={[Function]}
+    type="button"
+  >
+    Docs 
+    <span
+      className=""
+    >
+      1.0
+    </span>
+    <ChevronUpIcon
+      size={10}
+    />
+  </button>
+  <OutsideClickHandler
+    onClickOutside={[Function]}
+  >
+    <ul>
+      <li
+        key="3.0"
+      >
+        <a
+          href="/"
+        >
+          <span
+            className="current"
+          >
+            3.0
+          </span>
+        </a>
+      </li>
+      <li
+        key="2.0"
+      >
+        <a
+          href="/2.0"
+        >
+          <span
+            className="current"
+          >
+            2.0 LTS
+          </span>
+        </a>
+      </li>
+      <li
+        key="1.0"
+      >
+        <a
+          href="/1.0"
+        >
+          <span
+            className=""
+          >
+            1.0
+          </span>
+        </a>
+      </li>
+    </ul>
+  </OutsideClickHandler>
+</div>
+`;
index 8a8f25594c27623970bc8e98906689db084ebd84..e15e9484cc79bff67c657e7268e7d214ff7ac1af 100644 (file)
@@ -485,8 +485,9 @@ a.search-result .note {
   font-size: 15px;
   margin: 0;
   padding: 4px 16px;
-  text-align: center;
+  text-align: left;
   transition: all 0.2s ease;
+  white-space: nowrap;
 }
 
 .version-select ul li:hover {
index 19772b03b16f9851f747d8549314b01fdd2a47b7..501eab58d1eae270380771aeec3ca56be370f8ab 100644 (file)
@@ -1,6 +1,6 @@
 [
   { "value": "7.3", "current": true },
   { "value": "7.2", "current": false },
-  { "value": "7.1", "current": false },
+  { "value": "7.1", "current": false, "lts": true },
   { "value": "7.0", "current": false }
 ]
index 7862252cb087b5f3c645abd620e3f6b9eb018058..cc8bdefa6eadb6eff01cedf4bdf91fb802213a71 100644 (file)
@@ -4826,7 +4826,7 @@ gatsby-plugin-page-creator@^2.0.11:
     parse-filepath "^1.0.1"
     slash "^1.0.0"
 
-gatsby-plugin-polyfill-io@^1.1.0:
+gatsby-plugin-polyfill-io@1.1.0:
   version "1.1.0"
   resolved "https://repox.jfrog.io/repox/api/npm/npm/gatsby-plugin-polyfill-io/-/gatsby-plugin-polyfill-io-1.1.0.tgz#61424c773ae123680e50b9a6692a4b939a1e6e13"
   integrity sha1-YUJMdzrhI2gOULmmaSpLk5oebhM=