diff --git a/src/components/Select.js b/src/components/Select.js
new file mode 100644
index 000000000..c14983a01
--- /dev/null
+++ b/src/components/Select.js
@@ -0,0 +1,94 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { css } from '@emotion/react';
+
+const Select = ({ disabled, ...props }) => (
+
+
+
+
+);
+
+Select.propTypes = {
+ disabled: PropTypes.bool,
+};
+
+export default Select;
diff --git a/src/pages/observability-packs.js b/src/pages/observability-packs.js
index 790e1cd00..f873fdb54 100644
--- a/src/pages/observability-packs.js
+++ b/src/pages/observability-packs.js
@@ -5,9 +5,20 @@ import DevSiteSeo from '../components/DevSiteSeo';
import { css } from '@emotion/react';
import PackTile from '../components/PackTile';
import PackList from '../components/PackList';
+import Select from '../components/Select';
import { SearchInput, Button, Dropdown } from '@newrelic/gatsby-theme-newrelic';
import { useQueryParam, StringParam } from 'use-query-params';
+const sortOptionValues = ['Alphabetical', 'Reverse', 'Popularity'];
+const packContentsFilterValues = [
+ 'Anything',
+ 'Dashboards',
+ 'Alerts',
+ 'Visualizations',
+ 'Synthetics Checks',
+ 'Applications',
+];
+
const ObservabilityPacksPage = ({ data, location }) => {
const {
allObservabilityPacks: { nodes: o11yPacks },
@@ -106,12 +117,26 @@ const ObservabilityPacksPage = ({ data, location }) => {
.dark-mode & {
background-color: var(--color-dark-100);
}
+ @media screen and (max-width: 1180px) {
+ flex-direction: column;
+ align-items: normal;
+ > * {
+ margin: 0.5rem 0;
+ }
+ }
`}
>
Showing {filteredPacks.length} results
* {
+ margin: 0.5rem 0;
+ }
+ }
`}
>
{
margin: 0 0.5rem;
`}
>
-
- Sort by
-
-
-
+
+
-
- {
- setSortState('Alphabetical');
- }}
- >
- Alphabetical
-
- {
- setSortState('Reverse');
- }}
- >
- Reverse
-
- {
- setSortState('Popularity');
- }}
- >
- Popularity
-
-
-
+ {sortOptionValues.map((sortOption) => (
+
+ ))}
+
+
-
- Filter packs containing
-
-
-
+
+
-
- {
- setContainingFilterState('Anything');
- }}
- >
- Anything
-
- {
- setContainingFilterState('Dashboards');
- }}
- >
- Dashboards
-
- {
- setContainingFilterState('Alerts');
- }}
- >
- Alerts
-
- {
- setContainingFilterState('Visualizations');
- }}
- >
- Visualizations
-
- {
- setContainingFilterState('Synthetics');
- }}
- >
- Synthetic Checks
-
- {
- setContainingFilterState('Applications');
- }}
- >
- Applications
-
-
-
+ {packContentsFilterValues.map((packContentsItem) => (
+
+ ))}
+
+
@@ -304,4 +252,35 @@ export const pageQuery = graphql`
}
`;
+const Label = ({ children, htmlFor }) => (
+
+);
+
+Label.propTypes = {
+ children: PropTypes.node,
+ htmlFor: PropTypes.string,
+};
+
+const FormControl = ({ children }) => (
+
+ {children}
+
+);
+
export default ObservabilityPacksPage;