import { GetStaticPaths, GetStaticPathsResult, GetStaticProps } from "next"; import { useCallback, useMemo } from "react"; import { AppLayout, AppLayoutRequired } from "components/AppLayout"; import { ContentPanel, ContentPanelWidthSizes, } from "components/Panels/ContentPanel"; import { getOpenGraph } from "helpers/openGraph"; import { getReadySdk } from "graphql/sdk"; import { filterHasAttributes } from "helpers/others"; import { GetContentsFolderQuery } from "graphql/generated"; import { getDefaultPreferredLanguages, staticSmartLanguage, } from "helpers/locales"; import { prettySlug } from "helpers/formatters"; import { SmartList } from "components/SmartList"; import { Ico, Icon } from "components/Ico"; import { Button, TranslatedButton } from "components/Inputs/Button"; import { Link } from "components/Inputs/Link"; import { PanelHeader } from "components/PanelComponents/PanelHeader"; import { SubPanel } from "components/Panels/SubPanel"; import { TranslatedProps } from "helpers/types/TranslatedProps"; import { useSmartLanguage } from "hooks/useSmartLanguage"; import { TranslatedPreviewCard } from "components/PreviewCard"; import { HorizontalLine } from "components/HorizontalLine"; import { useIsContentPanelAtLeast } from "hooks/useContainerQuery"; import { cJoin, cIf } from "helpers/className"; import { useAppLayout } from "contexts/AppLayoutContext"; import { getLangui } from "graphql/fetchLocalData"; /* * ╭────────╮ * ──────────────────────────────────────────╯ PAGE ╰───────────────────────────────────────────── */ interface Props extends AppLayoutRequired { folder: NonNullable< NonNullable< GetContentsFolderQuery["contentsFolders"] >["data"][number]["attributes"] >; } const ContentsFolder = ({ openGraph, folder, ...otherProps }: Props): JSX.Element => { const { langui } = useAppLayout(); const isContentPanelAtLeast4xl = useIsContentPanelAtLeast("4xl"); const subPanel = useMemo( () => (