@redocly/theme
Version:
Shared UI components lib
77 lines (73 loc) • 3.06 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.FooterColumn = FooterColumn;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importDefault(require("styled-components"));
const FooterItem_1 = require("../../components/Footer/FooterItem");
const utils_1 = require("../../core/utils");
const hooks_1 = require("../../core/hooks");
const Link_1 = require("../../components/Link/Link");
function FooterColumn({ column, className }) {
const { useTranslate } = (0, hooks_1.useThemeHooks)();
const { translate } = useTranslate();
const { items = [] } = column;
const iconsOnly = items.every((item) => item.label === item.link && (item.icon || item.srcSet));
const label = translate(column.labelTranslationKey, column.label);
return (react_1.default.createElement(FooterColumnWrapper, { "data-component-name": "Footer/FooterColumn", className: className },
react_1.default.createElement(FooterColumnTitle, null, (0, utils_1.isNavLinkItem)(column) ? (react_1.default.createElement(Link_1.Link, { to: column.link, external: column.external, target: column.target }, label)) : (label)),
react_1.default.createElement(FooterColumnItems, { iconsOnly: iconsOnly }, items === null || items === void 0 ? void 0 : items.map((columnItem, columnItemIndex) => (react_1.default.createElement(FooterItem_1.FooterItem, { item: columnItem, iconsOnly: iconsOnly, key: columnItemIndex }))))));
}
const FooterColumnWrapper = styled_components_1.default.div `
display: flex;
flex: 1;
position: relative;
flex-direction: column;
text-align: center;
word-break: break-word;
min-width: var(--footer-column-min-width);
align-content: center;
flex-wrap: wrap;
gap: var(--footer-column-title-gap);
@media screen and (min-width: ${utils_1.breakpoints.small}) {
text-align: left;
&:not(:last-child) {
&::after {
content: '';
position: absolute;
display: block;
width: 1px;
height: 100%;
background-color: var(--footer-column-divider-color);
right: calc(0px - var(--footer-column-gap) / 2);
}
}
}
`;
const FooterColumnTitle = styled_components_1.default.div `
display: inline-block;
font-weight: var(--footer-title-font-weight);
font-size: var(--footer-title-font-size);
margin-top: 0;
color: var(--footer-title-text-color);
margin-bottom: 0;
a {
text-decoration: none;
color: var(--footer-title-text-color);
&:hover {
color: var(--footer-title-text-color-hover);
}
}
`;
const FooterColumnItems = styled_components_1.default.div `
display: flex;
flex-wrap: wrap;
justify-content: center;
flex-direction: ${(props) => (props.iconsOnly ? 'row' : 'column')};
@media screen and (min-width: ${utils_1.breakpoints.small}) {
justify-content: flex-start;
}
`;
//# sourceMappingURL=FooterColumn.js.map