@redocly/theme
Version:
Shared UI components lib
113 lines (104 loc) • 5.84 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CatalogPageDescriptionWrapper = exports.CatalogPageWrapper = exports.CatalogDescription = exports.CatalogTitle = exports.CatalogPageContent = void 0;
exports.default = CatalogClassic;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importDefault(require("styled-components"));
const utils_1 = require("../../core/utils");
const hooks_1 = require("../../core/hooks");
const H2_1 = require("../../components/Typography/H2");
const FilterContent_1 = require("../../components/Filter/FilterContent");
const FilterPopover_1 = require("../../components/Filter/FilterPopover");
const CatalogClassicHighlight_1 = require("../../components/CatalogClassic/CatalogClassicHighlight");
const CatalogClassicActions_1 = require("../../components/CatalogClassic/CatalogClassicActions");
const Sidebar_1 = require("../../components/Sidebar/Sidebar");
const CatalogClassicVirtualizedGroups_1 = require("../../components/CatalogClassic/CatalogClassicVirtualizedGroups");
function CatalogClassic(props) {
const { catalogConfig } = props.pageProps;
const { useTranslate, useCatalogClassic } = (0, hooks_1.useThemeHooks)();
const { filterTerm, setFilterTerm, groups, filters } = useCatalogClassic(catalogConfig);
const [filterPopoverVisible, setFilterPopoverVisible] = react_1.default.useState(false);
const { translate } = useTranslate();
(0, hooks_1.useModalScrollLock)(filterPopoverVisible);
return (react_1.default.createElement(CatalogClassicHighlight_1.HighlightContext.Provider, { value: [filterTerm] },
react_1.default.createElement(exports.CatalogPageWrapper, { "data-component-name": "CatalogClassic/CatalogClassic", withoutFilters: !filters.length },
react_1.default.createElement(FiltersSidebar, { menu: react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, filterValuesCasing: catalogConfig.filterValuesCasing }) }),
filterPopoverVisible && (react_1.default.createElement(FilterPopover_1.FilterPopover, { onClose: () => setFilterPopoverVisible(false), setFilterTerm: setFilterTerm, filterTerm: filterTerm, filters: filters, filterValuesCasing: catalogConfig.filterValuesCasing })),
react_1.default.createElement(CatalogClassicActions_1.CatalogClassicActions, { onOpenFilter: () => setFilterPopoverVisible(true), filters: filters, filterTerm: filterTerm }),
react_1.default.createElement(exports.CatalogPageContent, null,
react_1.default.createElement(exports.CatalogPageDescriptionWrapper, null,
catalogConfig.title ? (react_1.default.createElement(exports.CatalogTitle, { "data-translation-key": catalogConfig.titleTranslationKey },
' ',
translate(catalogConfig.titleTranslationKey, catalogConfig.title),
' ')) : null,
catalogConfig.description ? (react_1.default.createElement(exports.CatalogDescription, { "data-translation-key": catalogConfig.descriptionTranslationKey },
' ',
translate(catalogConfig.descriptionTranslationKey, catalogConfig.description),
' ')) : null),
react_1.default.createElement(CatalogClassicVirtualizedGroups_1.CatalogClassicVirtualizedGroups, { groups: groups, filters: filters, filterTerm: filterTerm })))));
}
exports.CatalogPageContent = styled_components_1.default.main `
flex: 1;
width: 90%;
margin: 0 auto;
@media screen and (min-width: ${utils_1.breakpoints.medium}) {
width: 100%;
padding: var(--catalog-classic-page-padding);
}
`;
exports.CatalogTitle = (0, styled_components_1.default)(H2_1.H2) `
color: var(--catalog-classic-title-text-color);
font-weight: var(--catalog-classic-title-font-weight);
font-size: var(--catalog-classic-title-font-size);
margin: var(--catalog-classic-title-margin);
`;
exports.CatalogDescription = styled_components_1.default.p `
color: var(--catalog-classic-description-text-color);
font-weight: var(--catalog-classic-description-font-weight);
font-size: var(--catalog-classic-description-font-size);
margin: var(--catalog-classic-description-margin);
`;
exports.CatalogPageWrapper = styled_components_1.default.div `
--sidebar-width: var(--catalog-classic-sidebar-width, 285px);
display: flex;
flex-direction: column;
font-weight: var(--font-weight-regular);
color: var(--text-color-secondary);
font-size: var(--font-size-base);
font-family: var(--font-family-base);
line-height: var(--line-height-base);
hr {
border: 0;
width: calc(100% + 48px);
margin: auto -24px 0 -24px;
border-top: 1px solid var(--border-color-primary);
}
a:not([role='button']) {
text-decoration: none;
color: var(--link-color-primary);
font-weight: var(--link-font-weight);
}
padding: ${({ withoutFilters }) => (withoutFilters ? 'var(--spacing-base) 0 0 0' : '0')};
@media screen and (min-width: ${utils_1.breakpoints.medium}) {
flex-direction: row;
padding: 0;
}
`;
exports.CatalogPageDescriptionWrapper = styled_components_1.default.div `
margin: var(--catalog-classic-heading-margin);
display: none;
@media screen and (min-width: ${utils_1.breakpoints.medium}) {
display: block;
}
`;
const FiltersSidebar = (0, styled_components_1.default)(Sidebar_1.Sidebar) `
display: none;
@media screen and (min-width: ${utils_1.breakpoints.medium}) {
display: flex;
}
--menu-container-padding-top: 0;
`;
//# sourceMappingURL=CatalogClassic.js.map