Skip to content

Commit

Permalink
events: Build the New Internet (#549)
Browse files Browse the repository at this point in the history
* Update assets

* Update event page URI

* Update event page

* Add banner

* Align contact cards
  • Loading branch information
germartinez authored Aug 2, 2024
1 parent d9edf52 commit e8270c8
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 86 deletions.
Binary file added assets/tanay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
127 changes: 70 additions & 57 deletions components/Events/Events.tsx
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
import Link from 'next/link'
import Img from 'next/image'
import Typography from '@mui/material/Typography'
import Grid from '@mui/material/Grid'
import Box from '@mui/material/Box'
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'
import EmojiEventsIcon from '@mui/icons-material/EmojiEvents'
import ExpandMoreIcon from '@mui/icons-material/ExpandMore'
import Box from '@mui/material/Box'
import Grid from '@mui/material/Grid'
import Typography from '@mui/material/Typography'
import { type Theme } from '@mui/material/styles'
import useMediaQuery from '@mui/material/useMediaQuery'
import Img from 'next/image'
import Link from 'next/link'

import Bounty from './Bounty'
import Workshop from './Workshop'
import TeamMember from './TeamMember'
import Workshop from './Workshop'
// import FAQ from './FAQ'
// import Survey from './Survey'
import eventData from './event-data.json'
import Gift from '../../assets/svg/gift.svg'
import Building from '../../assets/svg/building.svg'
import Layers from '../../assets/svg/layers.svg'
import DevStar from '../../assets/diamond-bg.png'
import German from '../../assets/german.png'
import Louis from '../../assets/louis.jpeg'
import Valle from '../../assets/valle.jpg'
import TrophyIcon from '../../assets/svg/trophy.svg'
import Teach from '../../assets/svg/teach.svg'
import Discord from '../../assets/svg/discord.svg'
import StackExchange from '../../assets/svg/stack-exchange.svg'
import Ellipse1 from '../../assets/svg/ellipse-1.svg'
import Ellipse2 from '../../assets/svg/ellipse-2.svg'
import type { TeamMemberType } from './types'
import StackExchange from '../../assets/svg/stack-exchange.svg'
import TrophyIcon from '../../assets/svg/trophy.svg'
import Tanay from '../../assets/tanay.png'
import Valle from '../../assets/valle.jpg'
import eventData from './event-data.json'
import css from './styles.module.css'
import type { TeamMemberType } from './types'

const EventsPage: React.FC = () => {
const isBiggerThanXs = useMediaQuery((theme: Theme) =>
Expand Down Expand Up @@ -78,11 +76,13 @@ const EventsPage: React.FC = () => {
</Typography>
<Typography className={css.body} sx={{ mt: '50px' }}>
We proudly support this event by sponsoring{' '}
{eventData.bounties.length} submission tracks for a total of{' '}
{eventData.bounties.length} submission tracks for a total of{' '}$10,000
{/*
{eventData.bounties[0].prize.currency}
{eventData.bounties
.reduce((acc, curr) => acc + curr.prize.value, 0)
.toLocaleString()}
*/}
.
</Typography>
<Grid container flexDirection={['column', 'row']}>
Expand Down Expand Up @@ -118,42 +118,44 @@ const EventsPage: React.FC = () => {
</Typography>
</Link>
</Grid>
<Grid
item
height='220px'
container
flexDirection='column'
justifyContent='space-between'
sx={{ width: ['100%', '35%'] }}
>
<div>
<Typography
color='text.dark'
sx={{ mt: '50px' }}
className={css.body}
>
Venue
</Typography>
<Typography sx={{ mt: '10px' }} className={css.body}>
{eventData.venue.name}
<br />
{eventData.venue.address}
</Typography>
</div>
<Link
href={`https://google.com/maps/place/${eventData.venue.address.replace(
' ',
'+'
)}`}
target='_blank'
rel='noopener noreferrer'
{eventData.venue.name !== null && (
<Grid
item
height='220px'
container
flexDirection='column'
justifyContent='space-between'
sx={{ width: ['100%', '35%'] }}
>
<Typography className={css.link}>
Get directions{' '}
{<ArrowForwardIosIcon sx={{ width: '16px' }} />}
</Typography>
</Link>
</Grid>
<div>
<Typography
color='text.dark'
sx={{ mt: '50px' }}
className={css.body}
>
Venue
</Typography>
<Typography sx={{ mt: '10px' }} className={css.body}>
{eventData.venue.name}
<br />
{eventData.venue.address}
</Typography>
</div>
<Link
href={`https://google.com/maps/place/${eventData.venue.address?.replace(
' ',
'+'
)}`}
target='_blank'
rel='noopener noreferrer'
>
<Typography className={css.link}>
Get directions{' '}
{<ArrowForwardIosIcon sx={{ width: '16px' }} />}
</Typography>
</Link>
</Grid>
)}
</Grid>
<Grid
container
Expand Down Expand Up @@ -212,7 +214,7 @@ const EventsPage: React.FC = () => {
/>
))}
</Grid>
<Link href={eventData.url} target='_blank' rel='noopener noreferrer'>
<Link href={eventData.bountyUrl} target='_blank' rel='noopener noreferrer'>
<Typography className={css.link}>
Learn more at bounty&apos;s page{' '}
{<ArrowForwardIosIcon sx={{ width: '16px' }} />}
Expand Down Expand Up @@ -493,7 +495,7 @@ const EventsPage: React.FC = () => {
<Bounty
width={[
'100%',
`calc(${(1 / eventData.bounties.length) * 100}% - 20px)`
`calc(${(1 / contactChannels.length) * 100}% - 20px)`
]}
icon={contactChannel.icon}
name={contactChannel.name}
Expand All @@ -515,10 +517,21 @@ const EventsPage: React.FC = () => {

export default EventsPage

const icons = [<Gift key={0} />, <Layers key={1} />, <Building key={2} />]
const icons = [
<EmojiEventsIcon key={0} />,
<EmojiEventsIcon key={1} />,
<EmojiEventsIcon key={2} />,
<EmojiEventsIcon key={3} />
]

const team = [
{
name: 'Germán Martinez',
name: 'Tanay Pant',
position: 'Head of Developer Experience',
image: Tanay
},
{
name: 'Germán Martínez',
position: 'Developer Relations',
image: German
},
Expand All @@ -535,11 +548,11 @@ const team = [
]

const contactChannels = [
{
/* {
name: 'Find our booth',
description: eventData.venue.booth,
icon: <Teach />
},
}, */
{
name: 'Discord',
description:
Expand Down
56 changes: 33 additions & 23 deletions components/Events/event-data.json
Original file line number Diff line number Diff line change
@@ -1,52 +1,62 @@
{
"name": "ETHGlobal Brussels",
"start": "2024-07-12T00:00:00Z",
"end": "2024-07-14T00:00:00Z",
"name": "Build the New Internet",
"start": "2024-08-02T00:00:00Z",
"end": "2024-08-18T00:00:00Z",
"url": "https://build-the-new-internet.devfolio.co",
"venue": {
"name": "The Egg",
"address": "Rue Bara 175, 1070 Anderlecht, Belgium",
"booth": "Our booth is located in the main hall. Come say hi!"
"name": null,
"address": "",
"booth": null
},
"url": "https://ethglobal.com/events/brussels",
"bountyUrl": "https://build-the-new-internet.devfolio.co/prizes?partner=Safe+and+Magic",
"bounties": [
{
"name": "🚀 Best app integrating ERC-7579 Safe Smart Accounts",
"description": "Build an application that supports Safe accounts v1.4.1, integrates Pimlico's permissionless.js, Rhinestone's ModuleKit, and uses the Safe7579Adapter.",
"name": "First Place: Safe and Magic",
"description": "This prize will be awarded to the most creative implementation of Social and Email Login, leveraging Universal Wallets (Smart Account functionality).",
"prize": {
"value": 4000,
"value": 7000,
"currency": "$"
}
},
{
"name": "🔑 Best app integrating Passkeys with the Safe Smart Account",
"description": "Build an application that integrates Passkeys using the Safe{Core} SDK.",
"name": "Second Place: Safe and Magic",
"description": "This prize will be awarded to the second most creative implementation of Social and Email Login, leveraging Universal Wallets (Smart Account functionality).",
"prize": {
"value": 4000,
"value": 5000,
"currency": "$"
}
},
{
"name": "🃏 Best app integrating Safe (wildcard)",
"description": "Build any useful application with Safe users in mind. There are no limitations on the idea or technologies used.",
"name": "Third Place: Safe and Magic",
"description": "This prize will be awarded to the third most creative implementation of Social and Email Login, leveraging Universal Wallets (Smart Account functionality).",
"prize": {
"value": 2000,
"value": 3000,
"currency": "$"
}
},
{
"name": "Honorable Mentions: Safe and Magic",
"description": "This prize will be awarded to 5 participants who submit a project integrating Email/Social Login and Smart Account functionality.",
"prize": {
"value": "1,000 x 5",
"currency": "$"
}
}
],
"workshops": [
{
"title": "Integrating Passkeys with the Safe Smart Account",
"location": "Workshop Room 4",
"start": "2024-07-12T12:40:00Z",
"end": "2024-07-12T13:10:00Z",
"speaker": "Germán Martinez"
"title": "ERC-7579 Safe Smart Accounts using the AppKit",
"location": null,
"start": "2024-08-06T16:00:00Z",
"end": "2024-08-06T17:00:00Z",
"speaker": "Germán Martínez"
}
],
"team": [
"Germán Martinez",
"Tanay Pant",
"Germán Martínez",
"Louis Margot-Duclot",
"Valentin Seehausen"
],
"discord": "ETHCC2024"
"discord": null
}
2 changes: 1 addition & 1 deletion components/Events/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface TeamMemberType {
}
export interface WorkshopType {
title: string
location: string
location: string | null
start: string
end: string
speaker: string
Expand Down
2 changes: 1 addition & 1 deletion pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"layout": "raw"
}
},
"ethglobal-brussels": {
"build-the-new-internet": {
"title": "Events",
"display": "hidden",
"theme": {
Expand Down
File renamed without changes.
15 changes: 11 additions & 4 deletions theme.config.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { useRouter } from 'next/router'
import type { DocsThemeConfig } from 'nextra-theme-docs'

import type { PropsWithChildren } from 'react'
import SafeLogo from './assets/svg/safe-logo-white.svg'
import Feedback from './components/Feedback'
import Footer from './components/Footer'
import type { PropsWithChildren } from 'react'

const Main: React.FC<PropsWithChildren> = ({ children }) => {
const { asPath } = useRouter()
Expand Down Expand Up @@ -46,14 +46,21 @@ const config: DocsThemeConfig = {
const titleTemplate =
(asPath === '/'
? ''
: asPath === '/ethglobal-brussels'
? 'ETHGlobal Brussels - '
: asPath === '/build-the-new-internet'
? 'Build the New Internet - '
: '%s – ') + 'Safe Docs'
return {
titleTemplate
}
},
main: Main
main: Main,
banner: {
key: 'build-the-new-internet',
text: <a href="/build-the-new-internet" target="_blank">
💰 Are you hacking at Build The New Internet? Check our bounties →
</a>,
dismissible: true
}
}

export default config

0 comments on commit e8270c8

Please sign in to comment.