refactor: delete unused components
This commit is contained in:
parent
d6ecb21300
commit
1b19989710
25 changed files with 0 additions and 767 deletions
|
|
@ -1,13 +0,0 @@
|
|||
import type { Meta, StoryObj } from '@storybook/react'
|
||||
import { BannerText } from './BannerText'
|
||||
|
||||
const meta: Meta<typeof BannerText> = {
|
||||
component: BannerText,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof BannerText>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {},
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
import styles from './bannerText.module.css'
|
||||
import { faustina, defaultFont } from '@/assets/fonts'
|
||||
|
||||
export const BannerText = () => {
|
||||
return (
|
||||
<div className={faustina.className + ' ' + styles.container}>
|
||||
<div className={styles.catholic}>KATHOLISCHE</div>
|
||||
<div className={styles.name}>
|
||||
PFARREI <br />
|
||||
HEILIGE <br />
|
||||
DREI KÖNIGE <br />
|
||||
</div>
|
||||
<div className={styles.berlin + ' ' + defaultFont.className}>
|
||||
Berlin Nord-Neukölln
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
.catholic {
|
||||
font-weight: 600;
|
||||
font-size: 35px;
|
||||
position: relative;
|
||||
bottom: -15px;
|
||||
left: 10px;
|
||||
animation: slidein 0.3s backwards;
|
||||
animation-delay: 0.5s;
|
||||
}
|
||||
|
||||
.container {
|
||||
position: absolute;
|
||||
bottom: 100px;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-weight: 600;
|
||||
font-size: 120px;
|
||||
line-height: 105px;
|
||||
padding: 20px 0;
|
||||
animation: slidein 0.2s backwards;
|
||||
animation-delay: 1s;
|
||||
}
|
||||
|
||||
.berlin {
|
||||
position: relative;
|
||||
left: 10px;
|
||||
animation: slidein 0.3s backwards;
|
||||
animation-delay: 1.5s;
|
||||
}
|
||||
|
||||
@keyframes slidein {
|
||||
from {
|
||||
transform: translateX(-150%);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 420px) {
|
||||
.name {
|
||||
font-size: 42px;
|
||||
line-height: 42px;
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
.catholic {
|
||||
font-size: 18px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.berlin {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import { Meta, StoryObj } from '@storybook/react'
|
||||
import { Card } from './Card'
|
||||
|
||||
const meta: Meta<typeof Card> = {
|
||||
component: Card,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof Card>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {
|
||||
children: <>Some content</>,
|
||||
},
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
import styles from './styles.module.css'
|
||||
|
||||
type CardProps = {
|
||||
children?: JSX.Element | JSX.Element[]
|
||||
}
|
||||
|
||||
export const Card = ({ children }: CardProps) => {
|
||||
return <div className={styles.card}>{children}</div>
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
.card {
|
||||
height: 260px;
|
||||
width: 240px;
|
||||
box-shadow: 0 0 11px 0 rgba(79, 66, 79, 0.26);
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
.splash-bg {
|
||||
background-color: #8d5fd3;
|
||||
}
|
||||
|
||||
.splash {
|
||||
height: 80vh;
|
||||
background: url('bg.svg') center center;
|
||||
background-size: cover;
|
||||
color: #ffffff;
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.stars {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
import type { Meta, StoryObj } from '@storybook/react'
|
||||
import { HomeBanner } from '@/components/archive/HomeBanner/HomeBanner'
|
||||
|
||||
const meta: Meta<typeof HomeBanner> = {
|
||||
component: HomeBanner,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof HomeBanner>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {
|
||||
stars: 50,
|
||||
},
|
||||
}
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
import React, {
|
||||
forwardRef,
|
||||
useCallback,
|
||||
useEffect,
|
||||
useImperativeHandle,
|
||||
useRef,
|
||||
} from 'react'
|
||||
import './HomeBanner.css'
|
||||
|
||||
type HomeBannerProps = {
|
||||
children?: React.ReactNode
|
||||
stars: number
|
||||
}
|
||||
|
||||
export type HomeBannerHandle = {
|
||||
newStar: () => void
|
||||
}
|
||||
|
||||
export const HomeBanner = forwardRef<HomeBannerHandle, HomeBannerProps>(
|
||||
function HomeBanner({ children, stars }: HomeBannerProps, ref) {
|
||||
const canvasRef = useRef<HTMLCanvasElement>(null)
|
||||
const containerRef = useRef<HTMLDivElement>(null)
|
||||
|
||||
const drawStarAtPosition = useCallback(
|
||||
(ctx: CanvasRenderingContext2D, x: number, y: number) => {
|
||||
let r = 2.5 * Math.random()
|
||||
|
||||
//Draw the stars;
|
||||
ctx.beginPath()
|
||||
ctx.fillStyle = 'white'
|
||||
ctx.arc(x, y, r, 0, Math.PI * 2)
|
||||
ctx.fill()
|
||||
},
|
||||
[],
|
||||
)
|
||||
|
||||
const drawStar = useCallback(
|
||||
(ctx: CanvasRenderingContext2D) => {
|
||||
//Random position and size of stars;
|
||||
let x = ctx.canvas.width * Math.random()
|
||||
let y = ctx.canvas.height * Math.random()
|
||||
|
||||
drawStarAtPosition(ctx, x, y)
|
||||
},
|
||||
[drawStarAtPosition],
|
||||
)
|
||||
|
||||
useImperativeHandle(ref, () => {
|
||||
return {
|
||||
newStar() {
|
||||
const context = canvasRef.current?.getContext('2d')
|
||||
if (context) {
|
||||
drawStar(context)
|
||||
}
|
||||
},
|
||||
}
|
||||
}, [drawStar])
|
||||
|
||||
useEffect(() => {
|
||||
if (canvasRef.current) {
|
||||
canvasRef.current.width =
|
||||
containerRef.current?.clientWidth || window.innerWidth
|
||||
canvasRef.current.height = 0.8 * window.innerHeight
|
||||
}
|
||||
const context = canvasRef.current?.getContext('2d')
|
||||
if (context) {
|
||||
for (let i = 0; i < stars; i++) {
|
||||
//Glow effect;
|
||||
context.shadowBlur = 10
|
||||
context.shadowColor = 'white'
|
||||
|
||||
setTimeout(() => drawStar(context), i * 100)
|
||||
}
|
||||
}
|
||||
}, [drawStar, stars])
|
||||
|
||||
return (
|
||||
<div className="splash-bg" ref={containerRef}>
|
||||
<canvas ref={canvasRef} className="stars"></canvas>
|
||||
<div className="splash">{children}</div>
|
||||
</div>
|
||||
)
|
||||
},
|
||||
)
|
||||
|
|
@ -1,150 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1280"
|
||||
height="720"
|
||||
viewBox="0 0 338.66667 190.5"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3.1 (9b9bdc1480, 2023-11-25, custom)"
|
||||
sodipodi:docname="bg2.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:lockguides="false"
|
||||
inkscape:zoom="1.0476431"
|
||||
inkscape:cx="869.09368"
|
||||
inkscape:cy="315.94729"
|
||||
inkscape:window-width="3368"
|
||||
inkscape:window-height="1376"
|
||||
inkscape:window-x="72"
|
||||
inkscape:window-y="1107"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="mm"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="5"
|
||||
dotted="false"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1">
|
||||
<linearGradient
|
||||
id="linearGradient8"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#b380ff;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop8" />
|
||||
<stop
|
||||
style="stop-color:#5fd3bc;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop9" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#5fd3bc;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop6" />
|
||||
<stop
|
||||
style="stop-color:#5fd3bc;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop7" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient6"
|
||||
id="linearGradient7"
|
||||
x1="11.633274"
|
||||
y1="180.37541"
|
||||
x2="185.67206"
|
||||
y2="-7.3487453"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.99320034,0,0,1.0022678,1.7447527,6.0845905e-4)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8"
|
||||
id="linearGradient9"
|
||||
x1="329.23218"
|
||||
y1="182.37346"
|
||||
x2="226.32838"
|
||||
y2="17.87619"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0022746,0,0,1,7.7762959e-4,0)" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<rect
|
||||
style="display:none;fill:#8d5fd3;fill-opacity:1;stroke-width:0.264832"
|
||||
id="rect3"
|
||||
width="338.71875"
|
||||
height="190.45135"
|
||||
x="0.089720808"
|
||||
y="-0.030377436" />
|
||||
<path
|
||||
style="fill:#5fd3bc;fill-opacity:1;stroke-width:0.264583"
|
||||
d="m 123.81562,155.12003 34.30109,-17.03714 40.81875,19.87171 -18.75878,28.51298 -51.8867,-3.49732 z"
|
||||
id="path6" />
|
||||
<path
|
||||
style="fill:#8787de;fill-opacity:1;stroke-width:0.264269"
|
||||
d="m -0.102359,160.41197 72.554869,-32.2325 126.91331,60.8393 -199.03795731,1.50639 z"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#afafe9;fill-opacity:1;stroke-width:0.264583"
|
||||
d="m 126.81453,190.57041 c 6.23387,-2.16904 151.87751,-93.709178 151.87751,-93.709178 l 60.12563,39.370248 -0.78639,53.91102 z"
|
||||
id="path5"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
style="display:inline"
|
||||
sodipodi:insensitive="true">
|
||||
<rect
|
||||
style="fill:url(#linearGradient9);fill-opacity:1;stroke-width:0.264884"
|
||||
id="rect7"
|
||||
width="339.0639"
|
||||
height="190.00063"
|
||||
x="-0.34187973"
|
||||
y="0.55117559" />
|
||||
<rect
|
||||
style="display:inline;fill:url(#linearGradient7);fill-opacity:1;stroke-width:0.26398"
|
||||
id="rect6"
|
||||
width="338.85544"
|
||||
height="190.7338"
|
||||
x="0.019881012"
|
||||
y="-0.26830679"
|
||||
inkscape:label="rect6" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.4 KiB |
|
|
@ -1,52 +0,0 @@
|
|||
import type { Meta, StoryObj } from '@storybook/react'
|
||||
import { MassTimer } from './MassTimer'
|
||||
import { fn } from '@storybook/test'
|
||||
|
||||
const meta: Meta<typeof MassTimer> = {
|
||||
component: MassTimer,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof MassTimer>
|
||||
export default meta
|
||||
|
||||
export const OneDay: Story = {
|
||||
args: {
|
||||
nextMass: {
|
||||
id: '1',
|
||||
location: {
|
||||
id: "d",
|
||||
name: "St. Richard",
|
||||
address: "Wegstraße 12",
|
||||
updatedAt: "2025-08-23T15:00:00.000Z",
|
||||
createdAt: '2025-08-23T15:00:00.000Z',
|
||||
},
|
||||
date: '2025-08-23T15:00:00.000Z',
|
||||
type: 'WORD',
|
||||
cancelled: false,
|
||||
createdAt: '2025-08-23T15:00:00.000Z',
|
||||
updatedAt: '2025-08-23T15:00:00.000Z',
|
||||
},
|
||||
onStarClick: fn(),
|
||||
},
|
||||
}
|
||||
|
||||
export const TimeOut: Story = {
|
||||
args: {
|
||||
nextMass: {
|
||||
id: '1',
|
||||
location: {
|
||||
id: "d",
|
||||
name: "St. Richard",
|
||||
address: "Wegstraße 12",
|
||||
updatedAt: "2025-08-23T15:00:00.000Z",
|
||||
createdAt: '2025-08-23T15:00:00.000Z',
|
||||
},
|
||||
date: '2025-08-23T15:00:00.000Z',
|
||||
type: 'WORD',
|
||||
cancelled: false,
|
||||
createdAt: '2025-08-23T15:00:00.000Z',
|
||||
updatedAt: '2025-08-23T15:00:00.000Z',
|
||||
},
|
||||
onStarClick: fn(),
|
||||
},
|
||||
}
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
'use client'
|
||||
|
||||
import { useCountdown } from '@/components/archive/MassTimer/useCountdown'
|
||||
import styles from './masstimer.module.css'
|
||||
import { useState } from 'react'
|
||||
import { MassTimerTooltip } from '@/components/archive/MassTimerTooltip/MassTimerTooltip'
|
||||
import { Worship } from '@/payload-types'
|
||||
|
||||
type MassTimerProps = {
|
||||
nextMass: Worship
|
||||
|
||||
/**
|
||||
* Optional click handler
|
||||
*/
|
||||
onStarClick?: () => void
|
||||
}
|
||||
|
||||
export const MassTimer = ({ nextMass, onStarClick }: MassTimerProps) => {
|
||||
const [displayTooltip, setDisplayTooltip] = useState<boolean>(false)
|
||||
const [days, hours, minutes, seconds] = useCountdown(
|
||||
new Date(nextMass.date).getTime(),
|
||||
)
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<div>
|
||||
<button
|
||||
className={styles.starButton}
|
||||
type={'button'}
|
||||
onClick={onStarClick}
|
||||
>
|
||||
🌟
|
||||
</button>
|
||||
|
||||
<span
|
||||
onMouseEnter={() => setDisplayTooltip(true)}
|
||||
suppressHydrationWarning={true}
|
||||
>
|
||||
{days}T {hours}S {minutes}M {seconds}S
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
className={styles.tooltip}
|
||||
style={{
|
||||
visibility: displayTooltip ? 'visible' : 'hidden',
|
||||
opacity: displayTooltip ? 1 : 0,
|
||||
transition: 'ease-out 0.2s',
|
||||
}}
|
||||
onMouseLeave={() => setDisplayTooltip(false)}
|
||||
>
|
||||
<MassTimerTooltip nextMass={nextMass} />
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
.container {
|
||||
position: relative;
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
.starButton {
|
||||
background: none;
|
||||
border: none;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.starButton:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 35px;
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
import { useEffect, useState } from 'react'
|
||||
|
||||
/**
|
||||
* Countdown until targetDate,
|
||||
* return an array of four numbers representing the
|
||||
* number of days, hours, minutes and seconds until targetDate
|
||||
*
|
||||
*/
|
||||
const useCountdown = (targetDate: number) => {
|
||||
const [countDown, setCountDown] = useState(targetDate - new Date().getTime())
|
||||
|
||||
useEffect(() => {
|
||||
if (countDown > 0) {
|
||||
setTimeout(() => setCountDown(countDown - 1000), 1000)
|
||||
} else {
|
||||
setCountDown(0)
|
||||
}
|
||||
}, [countDown])
|
||||
|
||||
return getDaysHoursMinutesAndSeconds(countDown)
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array of four numbers, representing the
|
||||
* numbers days, hours, minutes and seconds
|
||||
*/
|
||||
const getDaysHoursMinutesAndSeconds = (countDown: number) => {
|
||||
// calculate time left
|
||||
const days = Math.floor(countDown / (1000 * 60 * 60 * 24))
|
||||
const hours = Math.floor(
|
||||
(countDown % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60),
|
||||
)
|
||||
const minutes = Math.floor((countDown % (1000 * 60 * 60)) / (1000 * 60))
|
||||
const seconds = Math.floor((countDown % (1000 * 60)) / 1000)
|
||||
|
||||
return [days, hours, minutes, seconds]
|
||||
}
|
||||
|
||||
export { useCountdown }
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
import type { Meta, StoryObj } from '@storybook/react'
|
||||
import { MassTimerTooltip } from './MassTimerTooltip'
|
||||
|
||||
const meta: Meta<typeof MassTimerTooltip> = {
|
||||
component: MassTimerTooltip,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof MassTimerTooltip>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {
|
||||
nextMass: {
|
||||
id: "12",
|
||||
date: '2024-08-23T15:00:00.000Z',
|
||||
location: {
|
||||
id: "d",
|
||||
name: "St. Richard",
|
||||
address: "Wegstraße 12",
|
||||
updatedAt: "2025-08-23T15:00:00.000Z",
|
||||
createdAt: '2025-08-23T15:00:00.000Z',
|
||||
},
|
||||
type: "MASS",
|
||||
cancelled: false,
|
||||
updatedAt: '2025-08-23T15:00:00.000Z',
|
||||
createdAt: '2025-08-23T15:00:00.000Z'
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
import styles from './massTimerTooltip.module.css'
|
||||
import clara from './clara.svg'
|
||||
import Image from 'next/image'
|
||||
import { Worship } from '@/payload-types'
|
||||
import { useTime } from '@/hooks/useTime'
|
||||
import { useLocationName } from '@/hooks/useLocationName'
|
||||
import { useCompactDate } from '@/hooks/useCompactDate'
|
||||
|
||||
type MassTimerTooltipProps = {
|
||||
nextMass: Worship
|
||||
}
|
||||
|
||||
export const MassTimerTooltip = ({ nextMass }: MassTimerTooltipProps) => {
|
||||
const time = useTime(nextMass.date)
|
||||
const location = useLocationName(nextMass.location)
|
||||
const date = useCompactDate(nextMass.date)
|
||||
|
||||
return (
|
||||
<div className={styles.tooltip}>
|
||||
<div className={styles.church}>
|
||||
<Image src={clara} width={75} height={75} alt={''} />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Die nächste Messe is am {date} um {time} Uhr in {location}.
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="120"
|
||||
height="120"
|
||||
viewBox="0 0 120 120"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="layer2">
|
||||
<path
|
||||
id="path1"
|
||||
style="fill:#555555;stroke-width:1.60965"
|
||||
d="m 42.761659,6.1722208 v 3.627996 h -4.879246 v 1.5279092 h 4.866672 V 26.846143 L 21.006255,64.119566 V 186.45283 H 181.97111 V 99.531834 L 112.21714,89.552843 86.964115,74.406226 V 62.509917 h 4.637171 l 0.0032,-1.600218 h -4.640347 v -3.555687 h -1.559346 v 3.624852 h -4.879248 v 1.531053 h 4.866673 V 73.777455 L 66.076412,89.873941 V 64.119566 L 44.321008,26.824136 v -15.49601 h 4.637169 l 0.0032,-1.5970722 h -4.640388 v -3.558833 z"
|
||||
clip-path="none" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 905 B |
|
|
@ -1,32 +0,0 @@
|
|||
.tooltip {
|
||||
width: 310px;
|
||||
padding: 20px;
|
||||
color: #4d4d4d;
|
||||
background: rgb(244, 244, 244);
|
||||
background: linear-gradient(
|
||||
40deg,
|
||||
rgba(244, 244, 244, 1) 0%,
|
||||
rgba(228, 228, 228, 1) 100%
|
||||
);
|
||||
border: solid 1px #dddddd;
|
||||
border-radius: 6px;
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.church {
|
||||
width: 75px;
|
||||
height: 75px;
|
||||
border-radius: 50%;
|
||||
flex-shrink: 0;
|
||||
background-color: #f6f6f6;
|
||||
border: solid 2px #c2c2c2;
|
||||
transition: background-color 200ms ease-in;
|
||||
overflow: clip;
|
||||
}
|
||||
|
||||
.church:hover {
|
||||
cursor: pointer;
|
||||
background-color: #fff318;
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
import { Meta, StoryObj } from '@storybook/react'
|
||||
import { MassTitle } from './MassTitle'
|
||||
|
||||
const meta: Meta<typeof MassTitle> = {
|
||||
component: MassTitle,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof MassTitle>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {
|
||||
title: 'Mittwoch der 19. Woche im Jahreskreis',
|
||||
cancelled: false,
|
||||
},
|
||||
}
|
||||
|
||||
export const Cancelled: Story = {
|
||||
args: {
|
||||
title: 'Mittwoch der 19. Woche im Jahreskreis',
|
||||
cancelled: true,
|
||||
},
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
import classNames from 'classnames'
|
||||
import { faustina } from '@/assets/fonts'
|
||||
import styles from './styles.module.css'
|
||||
import { Pill } from '@/components/Pill/Pill'
|
||||
|
||||
type MassTitleProps = {
|
||||
title: string
|
||||
cancelled: boolean
|
||||
}
|
||||
|
||||
export const MassTitle = ({ title, cancelled }: MassTitleProps) => {
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.mass}>
|
||||
Gottesdienst {cancelled && <Pill>ABGESAGT</Pill>}
|
||||
</div>
|
||||
<h1
|
||||
className={classNames(faustina.className, styles.title, {
|
||||
[styles.cancelled]: cancelled,
|
||||
})}
|
||||
>
|
||||
{title}
|
||||
</h1>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
.title {
|
||||
font-size: 48px;
|
||||
font-weight: 700;
|
||||
margin-block-start: -10px;
|
||||
}
|
||||
|
||||
.mass {
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.cancelled {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
import { Meta, StoryObj } from '@storybook/react'
|
||||
import { MenuBaseLayer } from '@/components/archive/MenuBaseLayer/MenuBaseLayer'
|
||||
|
||||
const meta: Meta<typeof MenuBaseLayer> = {
|
||||
component: MenuBaseLayer,
|
||||
}
|
||||
|
||||
type Story = StoryObj<typeof MenuBaseLayer>
|
||||
export default meta
|
||||
|
||||
export const Default: Story = {
|
||||
args: {},
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
import styles from './style.module.css'
|
||||
|
||||
export const MenuBaseLayer = () => {
|
||||
return <div className={styles.background}></div>
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<svg width="952" height="348" viewBox="0 0 952 348" fill="none" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 348V0H952V153.638L0 348Z" fill="url(#paint0_linear_13_7)" fill-opacity="0.5"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear_13_7" x1="907.131" y1="1.77536e-05" x2="16.2387" y2="104.935" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#A790EA"/>
|
||||
<stop offset="1" stop-color="#3BEBB9"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 455 B |
|
|
@ -1,10 +0,0 @@
|
|||
.background {
|
||||
width: 100%;
|
||||
height: 340px;
|
||||
background-image: url('bg.svg');
|
||||
background-size: 100% 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
Loading…
Reference in a new issue