import React from 'react' ; import Link from 'next/link' ; import Logo from './Logo' ; import useModalStore , { Modals } from '../hooks/useModalStore' ; interface FooterProps { noSponsor ? : boolean ; isLargeContainer ? : boolean ; } const Twitter = ( { size = 16 } ) => ( < svg xmlns = "http://www.w3.org/2000/svg" width = { size } height = { size } viewBox = "0 0 24 24" fill = "currentColor" > < path d = "M24 4.37a9.6 9.6 0 0 1-2.83.8 5.04 5.04 0 0 0 2.17-2.8c-.95.58-2 1-3.13 1.22A4.86 4.86 0 0 0 16.61 2a4.99 4.99 0 0 0-4.79 6.2A13.87 13.87 0 0 1 1.67 2.92 5.12 5.12 0 0 0 3.2 9.67a4.82 4.82 0 0 1-2.23-.64v.07c0 2.44 1.7 4.48 3.95 4.95a4.84 4.84 0 0 1-2.22.08c.63 2.01 2.45 3.47 4.6 3.51A9.72 9.72 0 0 1 0 19.74 13.68 13.68 0 0 0 7.55 22c9.06 0 14-7.7 14-14.37v-.65c.96-.71 1.79-1.6 2.45-2.61z" / > < /svg>); const Instagram = ( { size = 16 } ) => ( < svg xmlns = "http://www.w3.org/2000/svg" width = { size } height = { size } viewBox = "0 0 24 24" stroke = "currentColor" fill = "currentColor" > < path d = "M16.98 0a6.9 6.9 0 0 1 5.08 1.98A6.94 6.94 0 0 1 24 7.02v9.96c0 2.08-.68 3.87-1.98 5.13A7.14 7.14 0 0 1 16.94 24H7.06a7.06 7.06 0 0 1-5.03-1.89A6.96 6.96 0 0 1 0 16.94V7.02C0 2.8 2.8 0 7.02 0h9.96zm.05 2.23H7.06c-1.45 0-2.7.43-3.53 1.25a4.82 4.82 0 0 0-1.3 3.54v9.92c0 1.5.43 2.7 1.3 3.58a5 5 0 0 0 3.53 1.25h9.88a5 5 0 0 0 3.53-1.25 4.73 4.73 0 0 0 1.4-3.54V7.02a5 5 0 0 0-1.3-3.49 4.82 4.82 0 0 0-3.54-1.3zM12 5.76c3.39 0 6.2 2.8 6.2 6.2a6.2 6.2 0 0 1-12.4 0 6.2 6.2 0 0 1 6.2-6.2zm0 2.22a3.99 3.99 0 0 0-3.97 3.97A3.99 3.99 0 0 0 12 15.92a3.99 3.99 0 0 0 3.97-3.97A3.99 3.99 0 0 0 12 7.98zm6.44-3.77a1.4 1.4 0 1 1 0 2.8 1.4 1.4 0 0 1 0-2.8z" / > < /svg>); const Discord = ( { size = 16 } ) => ( < svg xmlns = "http://www.w3.org/2000/svg" width = { size } height = { size } viewBox = "0 0 245 240" stroke = "currentColor" fill = "currentColor" > < path d = "M104.4 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1.1-6.1-4.5-11.1-10.2-11.1zM140.9 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1s-4.5-11.1-10.2-11.1z" / > < path d = "M189.5 20h-134C44.2 20 35 29.2 35 40.6v135.2c0 11.4 9.2 20.6 20.5 20.6h113.4l-5.3-18.5 12.8 11.9 12.1 11.2 21.5 19V40.6c0-11.4-9.2-20.6-20.5-20.6zm-38.6 130.6s-3.6-4.3-6.6-8.1c13.1-3.7 18.1-11.9 18.1-11.9-4.1 2.7-8 4.6-11.5 5.9-5 2.1-9.8 3.5-14.5 4.3-9.6 1.8-18.4 1.3-25.9-.1-5.7-1.1-10.6-2.7-14.7-4.3-2.3-.9-4.8-2-7.3-3.4-.3-.2-.6-.3-.9-.5-.2-.1-.3-.2-.4-.3-1.8-1-2.8-1.7-2.8-1.7s4.8 8 17.5 11.8c-3 3.8-6.7 8.3-6.7 8.3-22.1-.7-30.5-15.2-30.5-15.2 0-32.2 14.4-58.3 14.4-58.3 14.4-10.8 28.1-10.5 28.1-10.5l1 1.2c-18 5.2-26.3 13.1-26.3 13.1s2.2-1.2 5.9-2.9c10.7-4.7 19.2-6 22.7-6.3.6-.1 1.1-.2 1.7-.2 6.1-.8 13-1 20.2-.2 9.5 1.1 19.7 3.9 30.1 9.6 0 0-7.9-7.5-24.9-12.7l1.4-1.6s13.7-.3 28.1 10.5c0 0 14.4 26.1 14.4 58.3 0 0-8.5 14.5-30.6 15.2z" / > < /svg>); function Footer ( props ) { const { noSponsor = false , isLargeContainer = false } = props ; const openModal = useModalStore ( ( s ) => s . openModal ) ; return ( < div className = "footer" > < div className = { `container ${ isLargeContainer ? 'large' : '' }` } > < div className = "made-in" > < p > & copy ; Made with < a href = "https://bunq.me/noudadrichem/3/I'm%20liking%20keycapsets!" > ☕ < /a> in Utrecht. < /p> < /div> { ! noSponsor ? ( < > < />) : (<div className="sponsored-by"> < Link href = "/" > < a > < Logo width = { 45 } /> Powered by keycapsets . com < /a> < /Link> < /div>)} < div className = "socials-container" > { } < a href = "/terms" > Terms < /a> < a href = "/privacy" > Privacy < /a> < a onClick = { ( ) => openModal ( Modals . Contact ) } > contact @ keycapsets . com < /a> < div className = "social-icons" > < a href = "https://twitter.com/keycapsets" > < Twitter /> < /a> < a href = "https://www.instagram.com/keycapsets/" > < Instagram /> < /a> < a href = "https://discord.gg/dq8cyMS" > < Discord /> < /a> < /div> < /div> < /div> < /div>); } export default Footer ;