fix: small fixes
This commit is contained in:
parent
696e8849bb
commit
b55b92f83e
15 changed files with 100 additions and 46 deletions
BIN
src/app/icon.ico
BIN
src/app/icon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 15 KiB |
|
|
@ -3,13 +3,19 @@ import { fetchWorship } from '@/fetch/worship'
|
||||||
import { fetchBlog } from '@/fetch/blog'
|
import { fetchBlog } from '@/fetch/blog'
|
||||||
import { fetchHighlights } from '@/fetch/highlights'
|
import { fetchHighlights } from '@/fetch/highlights'
|
||||||
import { Home } from '@/pageComponents/Home/Home'
|
import { Home } from '@/pageComponents/Home/Home'
|
||||||
|
import moment from 'moment'
|
||||||
|
|
||||||
export const dynamic = 'force-dynamic'
|
export const dynamic = 'force-dynamic'
|
||||||
|
|
||||||
export default async function HomePage() {
|
export default async function HomePage() {
|
||||||
|
|
||||||
|
const fromDate = moment().isoWeekday(1);
|
||||||
|
const tillDate = moment().isoWeekday(7);
|
||||||
const events = await fetchEvents()
|
const events = await fetchEvents()
|
||||||
const worship = await fetchWorship()
|
const worship = await fetchWorship({
|
||||||
|
fromDate: fromDate.toDate(),
|
||||||
|
tillDate: tillDate.toDate(),
|
||||||
|
});
|
||||||
const blog = await fetchBlog()
|
const blog = await fetchBlog()
|
||||||
const highlights = await fetchHighlights()
|
const highlights = await fetchHighlights()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,3 +19,12 @@
|
||||||
.hover:hover {
|
.hover:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 576px) {
|
||||||
|
.contact {
|
||||||
|
margin-top: 10px;
|
||||||
|
gap: 10px;
|
||||||
|
align-items: flex-start;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -31,9 +31,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
width: 100%;
|
width: 95%;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border: 4px solid $base-color;
|
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,18 @@ export const MassTable = ({ location, masses }: MassTableProps) => {
|
||||||
<ChurchCard church={church(location)} backgroundColor={"#ffffff"} width={200} />
|
<ChurchCard church={church(location)} backgroundColor={"#ffffff"} width={200} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{masses.map((mass) => (
|
<div>
|
||||||
<MassTableRow
|
{masses.map((mass) => (
|
||||||
key={mass.id}
|
<MassTableRow
|
||||||
id={mass.id}
|
key={mass.id}
|
||||||
date={mass.date}
|
id={mass.id}
|
||||||
type={mass.type}
|
date={mass.date}
|
||||||
cancelled={mass.cancelled}
|
type={mass.type}
|
||||||
/>
|
cancelled={mass.cancelled}
|
||||||
))}
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import { useState } from 'react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import classNames from 'classnames'
|
import classNames from 'classnames'
|
||||||
import { useTime } from '@/hooks/useTime'
|
import { useTime } from '@/hooks/useTime'
|
||||||
import { useCompactDate, useShortDayName } from '@/hooks/useCompactDate'
|
|
||||||
|
|
||||||
export type MassTableRowProps = {
|
export type MassTableRowProps = {
|
||||||
id: string
|
id: string
|
||||||
|
|
@ -23,10 +22,11 @@ export const MassTableRow = ({
|
||||||
type,
|
type,
|
||||||
cancelled,
|
cancelled,
|
||||||
}: MassTableRowProps) => {
|
}: MassTableRowProps) => {
|
||||||
const [symbol, setSymbol] = useState('-')
|
const [symbol, setSymbol] = useState('')
|
||||||
const time = useTime(date)
|
const time = useTime(date)
|
||||||
const compactDate = useCompactDate(date)
|
//const compactDate = useCompactDate(date)
|
||||||
const day = useShortDayName(date)
|
//const day = useShortDayName(date)
|
||||||
|
const day = new Date(date).toLocaleDateString("de-DE", {weekday: 'long'})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
|
|
@ -36,11 +36,12 @@ export const MassTableRow = ({
|
||||||
<div
|
<div
|
||||||
className={styles.row}
|
className={styles.row}
|
||||||
onMouseEnter={() => setSymbol('†')}
|
onMouseEnter={() => setSymbol('†')}
|
||||||
onMouseLeave={() => setSymbol('-')}
|
onMouseLeave={() => setSymbol('')}
|
||||||
>
|
>
|
||||||
<div className={styles.time}>{day} {compactDate}</div>
|
<div className={styles.day}>{day}</div>
|
||||||
<div className={styles.symbol}>{symbol}</div>
|
<div className={styles.symbol}>{symbol}</div>
|
||||||
<div>{time}</div>
|
<div className={styles.time}>
|
||||||
|
{time}
|
||||||
|
|
||||||
{type === 'FAMILY' && (
|
{type === 'FAMILY' && (
|
||||||
<Image src={family} width={18} height={18} alt={'Familien Messe'} />
|
<Image src={family} width={18} height={18} alt={'Familien Messe'} />
|
||||||
|
|
@ -49,6 +50,7 @@ export const MassTableRow = ({
|
||||||
{type === 'WORD' && (
|
{type === 'WORD' && (
|
||||||
<Image src={bible} width={18} height={18} alt={'Wortgottesfeier'} />
|
<Image src={bible} width={18} height={18} alt={'Wortgottesfeier'} />
|
||||||
)}
|
)}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,12 @@
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 5px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
align-items: center;
|
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
align-items: flex-start;
|
||||||
|
margin-bottom: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
|
|
@ -25,17 +26,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.symbol {
|
.symbol {
|
||||||
|
flex-shrink: 0;
|
||||||
width: 14px;
|
width: 14px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.day {
|
||||||
|
flex-shrink: 0;
|
||||||
|
width: 90px;
|
||||||
|
}
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
width: 80px;
|
display: inline-flex;
|
||||||
|
gap: 3px;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table {
|
.table {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
text-align: center;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@
|
||||||
line-height: 95%;
|
line-height: 95%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 576px) {
|
@media screen and (max-width: 1100px) {
|
||||||
.menu {
|
.menu {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
|
|
@ -75,7 +75,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu, .itemGroup, .groupTitle, .itemTitle {
|
.menu, .itemGroup, .groupTitle, .itemTitle {
|
||||||
font-size: 15px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemGroup {
|
.itemGroup {
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
.itemGroupContent {
|
.itemGroupContent {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 10px
|
gap: 11px
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemDescription {
|
.itemDescription {
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 15px 15px;
|
padding: 15px 15px;
|
||||||
align-items: inherit;
|
align-items: inherit;
|
||||||
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.megaMenu {
|
.megaMenu {
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.content h3 {
|
.content h3 {
|
||||||
font-size: 33px;
|
font-size: 28px;
|
||||||
margin: 33px 0 20px 0;
|
margin: 25px 0 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content p {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 576px) {
|
||||||
|
.content h3 {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
.subtitle {
|
.subtitle {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -30px;
|
top: -20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.base {
|
.base {
|
||||||
|
|
@ -59,11 +59,11 @@
|
||||||
|
|
||||||
@media screen and (max-width: 576px) {
|
@media screen and (max-width: 576px) {
|
||||||
.extraLarge {
|
.extraLarge {
|
||||||
font-size: 60px;
|
font-size: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.large {
|
.large {
|
||||||
font-size: 40px;
|
font-size: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.medium {
|
.medium {
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ export const CollapsibleImageWithText = ({backgroundColor, title, image, text, s
|
||||||
schema={schema}
|
schema={schema}
|
||||||
backgroundColor={backgroundColor}
|
backgroundColor={backgroundColor}
|
||||||
unoptimized={false}
|
unoptimized={false}
|
||||||
|
opaque={true}
|
||||||
link={<MoreInformation isCollapsed={isCollapsed} onClick={() => setIsCollapsed(!isCollapsed)} />}
|
link={<MoreInformation isCollapsed={isCollapsed} onClick={() => setIsCollapsed(!isCollapsed)} />}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { BackgroundColor, Section } from '@/components/Section/Section'
|
||||||
import { Title } from '@/components/Title/Title'
|
import { Title } from '@/components/Title/Title'
|
||||||
import { Container } from '@/components/Container/Container'
|
import { Container } from '@/components/Container/Container'
|
||||||
import Image, { StaticImageData } from 'next/image'
|
import Image, { StaticImageData } from 'next/image'
|
||||||
import styles from "./styles.module.scss"
|
import styles from './styles.module.scss'
|
||||||
import classNames from 'classnames'
|
import classNames from 'classnames'
|
||||||
import { Row } from '@/components/Flex/Row'
|
import { Row } from '@/components/Flex/Row'
|
||||||
import { TextDiv } from '@/components/Text/TextDiv'
|
import { TextDiv } from '@/components/Text/TextDiv'
|
||||||
|
|
@ -14,35 +14,45 @@ type ImageWithTextProps = {
|
||||||
text: string
|
text: string
|
||||||
link?: React.ReactNode
|
link?: React.ReactNode
|
||||||
schema?: 'base' | 'contrast',
|
schema?: 'base' | 'contrast',
|
||||||
unoptimized?: boolean
|
unoptimized?: boolean,
|
||||||
|
opaque?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ImageWithText = ({backgroundColor, title, image, text, link, schema = "base", unoptimized=true}: ImageWithTextProps) => {
|
export const ImageWithText = (
|
||||||
|
{
|
||||||
|
backgroundColor,
|
||||||
|
title,
|
||||||
|
image,
|
||||||
|
text, link,
|
||||||
|
schema = 'base',
|
||||||
|
unoptimized = true,
|
||||||
|
opaque = false,
|
||||||
|
}: ImageWithTextProps) => {
|
||||||
return (
|
return (
|
||||||
<Section backgroundColor={backgroundColor}>
|
<Section backgroundColor={backgroundColor}>
|
||||||
<Container>
|
<Container>
|
||||||
<Row alignItems={"center"}>
|
<Row alignItems={'center'}>
|
||||||
<div className={classNames(styles.col, styles.imageCol)}>
|
<div className={classNames(styles.col, styles.imageCol)}>
|
||||||
<Image
|
<Image
|
||||||
className={styles.image}
|
className={classNames({[styles.image]: true, [styles.imageOpaque]: opaque})}
|
||||||
width={800}
|
width={800}
|
||||||
height={800}
|
height={800}
|
||||||
src={image}
|
src={image}
|
||||||
objectFit={"cover"}
|
objectFit={'cover'}
|
||||||
unoptimized={unoptimized}
|
unoptimized={unoptimized}
|
||||||
alt={""} />
|
alt={''} />
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.col}>
|
<div className={styles.col}>
|
||||||
<Title title={title} size={"lg"} color={schema} />
|
<Title title={title} size={'lg'} color={schema} />
|
||||||
|
|
||||||
<Image
|
<Image
|
||||||
className={styles.imageMobile}
|
className={styles.imageMobile}
|
||||||
width={500}
|
width={500}
|
||||||
height={500}
|
height={500}
|
||||||
src={image}
|
src={image}
|
||||||
objectFit={"cover"}
|
objectFit={'cover'}
|
||||||
unoptimized={unoptimized}
|
unoptimized={unoptimized}
|
||||||
alt={""} />
|
alt={''} />
|
||||||
|
|
||||||
<TextDiv text={text} />
|
<TextDiv text={text} />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,16 @@
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
border-radius: 13px;
|
border-radius: 13px;
|
||||||
opacity: 0.6;
|
|
||||||
transition: opacity 3s;
|
transition: opacity 3s;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image:hover {
|
.imageOpaque {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.imageOpaque:hover {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,7 +23,6 @@
|
||||||
width: 70vw;
|
width: 70vw;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 13px;
|
border-radius: 13px;
|
||||||
opacity: 0.6;
|
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ export const Home = ({
|
||||||
<div className={styles.center}>
|
<div className={styles.center}>
|
||||||
<Button
|
<Button
|
||||||
href={"/gottesdienst"}
|
href={"/gottesdienst"}
|
||||||
size={"lg"}
|
size={"md"}
|
||||||
>Alle Gottesdienste</Button>
|
>Alle Gottesdienste</Button>
|
||||||
</div>
|
</div>
|
||||||
</Section>
|
</Section>
|
||||||
|
|
@ -138,6 +138,7 @@ export const Home = ({
|
||||||
color={'white'}
|
color={'white'}
|
||||||
key={highlight.id}
|
key={highlight.id}
|
||||||
date={highlight.date}
|
date={highlight.date}
|
||||||
|
showDate={false}
|
||||||
title={highlight.text}
|
title={highlight.text}
|
||||||
href={highlightLink(highlight)}
|
href={highlightLink(highlight)}
|
||||||
cancelled={false}
|
cancelled={false}
|
||||||
|
|
@ -159,7 +160,9 @@ export const Home = ({
|
||||||
|
|
||||||
<ContactSection
|
<ContactSection
|
||||||
title={'Kontakt'}
|
title={'Kontakt'}
|
||||||
description={'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec molestie ligula. Maecenas sollicitudin molestie velit id ultricies. Nulla luctus eleifend est, et hendrerit nunc pretium in. Nullam leo tortor, tincidunt in sodales dapibus, faucibus vel lacus. Nunc ornare lacus eu dui consequat, fermentum tincidunt felis blandit. Vivamus a turpis eros. Donec faucibus mi in magna cursus maximus. Duis ac elit posuere, bibendum nunc vel, consectetur neque. Aliquam non bibendum quam. Nulla facilisi. Vivamus eu iaculis felis. Donec elit augue, pretium eget pretium ullamcorper, vestibulum eu lorem. Praesent gravida condimentum tortor, in dignissim mauris elementum quis. Morbi a venenatis odio. Vivamus quis magna eget elit pellentesque elementum. Nulla facilisi.'}
|
description={'Haben Sie Fragen zum Glauben, den Sakramenten oder unseren Angeboten? Benötigen Sie Hilfe in einer schwierigen Situation oder möchten Sie einfach Ihre Gedanken mit uns teilen?\n' +
|
||||||
|
'\n' +
|
||||||
|
'Zögern Sie nicht, uns über das Kontaktformular zu schreiben. Wir freuen uns über jede Nachricht und sind gerne für Sie da.'}
|
||||||
schema={"base"}
|
schema={"base"}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue