import { css } from '@emotion/css'; import { ThemeConfig } from '@reactive-resume/schema'; import clsx from 'clsx'; import get from 'lodash/get'; import { useMemo } from 'react'; import { useAppSelector } from '@/store/hooks'; import { getContrastColor } from '@/utils/styles'; import { PageProps } from '@/utils/template'; import { getSectionById } from '../sectionMap'; import styles from './Castform.module.scss'; import { MastheadMain, MastheadSidebar } from './widgets/Masthead'; import Section from './widgets/Section'; const Castform: React.FC = ({ page }) => { const isFirstPage = useMemo(() => page === 0, [page]); const layout: string[][] = useAppSelector((state) => state.resume.present.metadata.layout[page]); const theme: ThemeConfig = useAppSelector((state) => get(state.resume.present, 'metadata.theme', {} as ThemeConfig)); const contrast = useMemo(() => getContrastColor(theme.primary), [theme.primary]); const color = useMemo(() => (contrast === 'dark' ? theme.text : theme.background), [theme, contrast]); return (
{isFirstPage && }
{layout[1].map((key) => getSectionById(key, Section))}
{isFirstPage && }
{layout[0].map((key) => getSectionById(key, Section))}
); }; export default Castform;