From 3dc2f9a7ecdda4a3bd7332ad35115091adce264e Mon Sep 17 00:00:00 2001 From: eilla1 Date: Mon, 1 Nov 2021 09:40:53 -0700 Subject: [PATCH 01/22] lockfile update caniuse-lite --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7dd9e54..162cc0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1169,9 +1169,9 @@ camelcase-css@2.0.1: integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== caniuse-lite@^1.0.30001202, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001228: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== + version "1.0.30001274" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001274.tgz" + integrity sha512-+Nkvv0fHyhISkiMIjnyjmf5YJcQ1IQHZN6U9TLUMroWR38FNwpsC51Gb68yueafX1V6ifOisInSgP9WJFS13ew== ccount@^1.0.0: version "1.0.5" From 86d12c4167e26c8bf0cdb772f5d6405ddd66a384 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Mon, 1 Nov 2021 10:13:26 -0700 Subject: [PATCH 02/22] Remove India from regions --- lib/regions.json | 3 +-- pages/[region].js | 35 +++++++++++++++++++---------------- pages/apac.js | 3 +++ 3 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 pages/apac.js diff --git a/lib/regions.json b/lib/regions.json index db382fe..bd17fed 100644 --- a/lib/regions.json +++ b/lib/regions.json @@ -5,7 +5,6 @@ "New York": "https://images.unsplash.com/photo-1562961857-b1ba8f9dbd5f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80", "the Bay Area": "https://images.unsplash.com/photo-1501196788499-459dbea97736?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80", "the USA": "https://www.nps.gov/yose/planyourvisit/images/20170618_155330.jpg?maxwidth=512&maxheight=400&autorotate=false", - "Canada": "https://images.unsplash.com/photo-1479854851860-18d97e109331?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjExMDk0fQ&auto=format&fit=crop&w=512&q=80", - "India": "https://images.unsplash.com/photo-1564507592333-c60657eea523?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80" + "Canada": "https://images.unsplash.com/photo-1479854851860-18d97e109331?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjExMDk0fQ&auto=format&fit=crop&w=512&q=80" } } diff --git a/pages/[region].js b/pages/[region].js index 9ee0ccf..10e45de 100644 --- a/pages/[region].js +++ b/pages/[region].js @@ -17,9 +17,16 @@ export default ({ name, events, emailStats }) => { desc={`Find, register, and compete in ${events.length} student-led hackathons around ${name}.`} events={events} header={} - footer={<> } - > - + footer={ + <> + {' '} + + {' '} + {' '} + {' '} + + } + > ) } @@ -44,11 +51,11 @@ const distance = (lat1, lon1, lat2, lon2) => { let regions = [ { name: 'Los Angeles', - filter: (event) => event.city === 'Los Angeles' + filter: event => event.city === 'Los Angeles' }, { name: 'Chicago', - filter: (event) => { + filter: event => { const position = [41.969649, -87.720643] return ( distance(position[0], position[1], event.latitude, event.longitude) @@ -58,7 +65,7 @@ let regions = [ }, { name: 'New York', - filter: (event) => { + filter: event => { const position = [40.7128, -74.006] return ( distance(position[0], position[1], event.latitude, event.longitude) @@ -68,7 +75,7 @@ let regions = [ }, { name: 'the Bay Area', - filter: (event) => { + filter: event => { const position = [37.641045, -122.228916] return ( distance(position[0], position[1], event.latitude, event.longitude) @@ -78,21 +85,17 @@ let regions = [ }, { name: 'the USA', - filter: (event) => ['US', 'USA', 'United States'].includes(event.country) + filter: event => ['US', 'USA', 'United States'].includes(event.country) }, { name: 'Canada', - filter: (event) => ['CA', 'Canada'].includes(event.country) - }, - { - name: 'India', - filter: (event) => ['IN', 'India'].includes(event.country) + filter: event => ['CA', 'Canada'].includes(event.country) } ] -regions = map(regions, (region) => ({ id: kebabCase(region.name), ...region })) +regions = map(regions, region => ({ id: kebabCase(region.name), ...region })) export const getStaticPaths = () => { - const paths = map(map(regions, 'id'), (id) => ({ + const paths = map(map(regions, 'id'), id => ({ params: { region: `list-of-hackathons-in-${id}` } })) return { paths, fallback: false } @@ -103,7 +106,7 @@ export const getStaticProps = async ({ params }) => { region = find(regions, ['id', region.replace('list-of-hackathons-in-', '')]) let { name } = region let { events, emailStats } = await getGroupingData() - events = events.filter((event) => region.filter(event)) + events = events.filter(event => region.filter(event)) events = orderBy(events, 'start', 'desc') return { props: { name, events, emailStats }, revalidate: 10 } } diff --git a/pages/apac.js b/pages/apac.js new file mode 100644 index 0000000..2449777 --- /dev/null +++ b/pages/apac.js @@ -0,0 +1,3 @@ +export default () => { + return

hi

+} From d381cfa43022f6cdfbee2a534750885fa8d12606 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Thu, 4 Nov 2021 13:11:52 -0700 Subject: [PATCH 03/22] Add `key` prop --- components/regions.js | 1 + 1 file changed, 1 insertion(+) diff --git a/components/regions.js b/components/regions.js index a202651..6c45d2c 100644 --- a/components/regions.js +++ b/components/regions.js @@ -43,6 +43,7 @@ export default ({ showAll = false, sx = {} }) => ( )} {Object.entries(regions).map(([name, url]) => ( Date: Thu, 4 Nov 2021 13:34:30 -0700 Subject: [PATCH 04/22] Make page work --- pages/apac.js | 79 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/pages/apac.js b/pages/apac.js index 2449777..dd53efe 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -1,3 +1,78 @@ -export default () => { - return

hi

+import Error from 'next/error' +import Grouping from '../components/grouping' +import Regions from '../components/regions' +import Meta from '@hackclub/meta' +import { Box, Heading, Text, Link } from 'theme-ui' +import Head from 'next/head' +import Signup from '../components/signup' +import Years from '../components/years' +import { map, orderBy, find, kebabCase, startCase } from 'lodash' +import { getGroupingData } from '../lib/data' + +export default ({ name, events, emailStats }) => { + const title = `High School Hackathons in ${new Date().getFullYear()}` + + return ( + + + + High School Hackathons in the Asia-Pacific Region + + + A curated list of in-person and online high school hackathons. + + {' '} + Maintained by the{' '} + Hack Club staff. + + + + } + events={events} + footer={ +
+ {/* */} + + Explore by year + + + + Explore popular regions + + +
+ } + /> + ) +} + +// const distance = (lat1, lon1, lat2, lon2) => { +// // https://www.geodatasource.com/developers/javascript +// const radlat1 = (Math.PI * lat1) / 180 +// const radlat2 = (Math.PI * lat2) / 180 +// const theta = lon1 - lon2 +// const radtheta = (Math.PI * theta) / 180 +// let dist = +// Math.sin(radlat1) * Math.sin(radlat2) + +// Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta) +// dist = Math.acos(dist) +// dist = (dist * 180) / Math.PI +// dist = dist * 60 * 1.1515 +// return { +// miles: dist, +// kilometers: dist * 1.609344 +// } +// } + +export const getStaticProps = async () => { + let { events, emailStats } = await getGroupingData() + events = orderBy(events, 'start', 'desc') + return { props: { events, emailStats }, revalidate: 10 } } From 105baf05217e509dc24dd29ce23b524216f54d27 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 11:12:04 -0700 Subject: [PATCH 05/22] Airbridge to v0.1 --- lib/data.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/data.js b/lib/data.js index 54e2337..59d958c 100644 --- a/lib/data.js +++ b/lib/data.js @@ -14,7 +14,7 @@ const normalizeWebsite = url => { export const getEvents = async () => { let events = await getJSON( - 'https://airbridge.hackclub.com/v0/hackathons.hackclub.com/applications?select=%7B%22filterByFormula%22:%22approved=1%22%7D' + 'https://api2.hackclub.com/v0.1/hackathons.hackclub.com/applications?select%7B%22filterByFormula%22:%22approved=1%22%7D' ) events = filter(events, 'fields.approved') events = events.map( @@ -34,7 +34,8 @@ export const getEvents = async () => { latitude: fields.lat, longitude: fields.lng, virtual: fields.virtual || false, - mlhAssociated: fields.mlh_associated || false + mlhAssociated: fields.mlh_associated || false, + apac: fields.apac || false }) ) From 18aa861310476403550ba428a3ac8e8ff9ec9d65 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 11:31:26 -0700 Subject: [PATCH 06/22] Errors begone --- pages/apac.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pages/apac.js b/pages/apac.js index dd53efe..6af9ee0 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -6,8 +6,9 @@ import { Box, Heading, Text, Link } from 'theme-ui' import Head from 'next/head' import Signup from '../components/signup' import Years from '../components/years' -import { map, orderBy, find, kebabCase, startCase } from 'lodash' +import { map, orderBy, find, kebabCase, startCase, filter } from 'lodash' import { getGroupingData } from '../lib/data' +import { getEvents } from '../lib/data' export default ({ name, events, emailStats }) => { const title = `High School Hackathons in ${new Date().getFullYear()}` @@ -71,8 +72,9 @@ export default ({ name, events, emailStats }) => { // } // } -export const getStaticProps = async () => { - let { events, emailStats } = await getGroupingData() +export const getStaticProps = async (req, res) => { + let events = await getEvents() + events = filter(events, 'fields.apac') events = orderBy(events, 'start', 'desc') - return { props: { events, emailStats }, revalidate: 10 } + return { props: { events }, revalidate: 10 } } From 9538d6ddc07079745574d6bf98a8000403b6fb2a Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 11:38:19 -0700 Subject: [PATCH 07/22] Sort events by date --- pages/apac.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pages/apac.js b/pages/apac.js index 6af9ee0..fa1d373 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -74,7 +74,10 @@ export default ({ name, events, emailStats }) => { export const getStaticProps = async (req, res) => { let events = await getEvents() - events = filter(events, 'fields.apac') - events = orderBy(events, 'start', 'desc') + // events = filter(events, e => 'fields.apac') + events = orderBy( + filter(events, e => new Date(e.start) >= new Date()), + 'start' + ) return { props: { events }, revalidate: 10 } } From cf16083b87ba00d02b56865ce0685c4d7daaaaa6 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 12:54:37 -0700 Subject: [PATCH 08/22] Remove the Year section from APAC page --- pages/apac.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/pages/apac.js b/pages/apac.js index fa1d373..c2b7b45 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -40,10 +40,6 @@ export default ({ name, events, emailStats }) => { footer={
{/* */} - - Explore by year - - Explore popular regions @@ -74,7 +70,7 @@ export default ({ name, events, emailStats }) => { export const getStaticProps = async (req, res) => { let events = await getEvents() - // events = filter(events, e => 'fields.apac') + events = filter(events, 'apac') events = orderBy( filter(events, e => new Date(e.start) >= new Date()), 'start' From 1d3e14f3a495650b3975d8558d11b28e6e82e5ca Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 13:07:34 -0700 Subject: [PATCH 09/22] Let there be APAC page wahoo --- pages/apac.js | 17 ++++++++++++----- pages/index.js | 16 +++++++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/pages/apac.js b/pages/apac.js index c2b7b45..5e76dce 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -6,7 +6,15 @@ import { Box, Heading, Text, Link } from 'theme-ui' import Head from 'next/head' import Signup from '../components/signup' import Years from '../components/years' -import { map, orderBy, find, kebabCase, startCase, filter } from 'lodash' +import { + map, + orderBy, + find, + kebabCase, + startCase, + filter, + sortBy +} from 'lodash' import { getGroupingData } from '../lib/data' import { getEvents } from '../lib/data' @@ -70,10 +78,9 @@ export default ({ name, events, emailStats }) => { export const getStaticProps = async (req, res) => { let events = await getEvents() + // events where the field apac = true events = filter(events, 'apac') - events = orderBy( - filter(events, e => new Date(e.start) >= new Date()), - 'start' - ) + // upcoming events first + events = orderBy(events, 'start', 'desc') return { props: { events }, revalidate: 10 } } diff --git a/pages/index.js b/pages/index.js index 547ed2c..006a5f3 100644 --- a/pages/index.js +++ b/pages/index.js @@ -13,7 +13,8 @@ const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => slice(events, 0, 4) .map( - event => `${event.name} (${humanizedDateRange(event.start, event.end)}) … ` + event => + `${event.name} (${humanizedDateRange(event.start, event.end)}) … ` ) .join('') @@ -35,18 +36,21 @@ export default ({ stats, emailStats, events }) => ( /> High School Hackathons{' '} - + in {new Date().getFullYear()} - + A curated list of high school hackathons with {stats.total}  events in {stats.state}  states + {stats.country}  countries. - - {' '}Maintained by the Hack Club{' '} + + {' '} + Maintained by the + Hack Club + {' '} staff. @@ -90,5 +94,7 @@ export const getStaticProps = async () => { filter(events, e => new Date(e.start) >= new Date()), 'start' ) + // Filter out apac hackathons. Moved to /apac as of 2021-11-05 + events = filter(events, stats.state) return { props: { events, stats, emailStats }, revalidate: 1 } } From b3cf820a791601fc9c55fb572fe4cb55a6097991 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 13:12:13 -0700 Subject: [PATCH 10/22] Remove APAC from index page --- pages/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/index.js b/pages/index.js index 006a5f3..add8ba8 100644 --- a/pages/index.js +++ b/pages/index.js @@ -5,7 +5,7 @@ import Meta from '@hackclub/meta' import Signup from '../components/signup' import Years from '../components/years' import Regions from '../components/regions' -import { filter, orderBy, slice, last } from 'lodash' +import { filter, orderBy, slice, last, remove } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' @@ -95,6 +95,6 @@ export const getStaticProps = async () => { 'start' ) // Filter out apac hackathons. Moved to /apac as of 2021-11-05 - events = filter(events, stats.state) + events = filter(events, 'country') return { props: { events, stats, emailStats }, revalidate: 1 } } From 804a8a4bc6c930acec7ea7bf2280c77d4b5a3daa Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 13:53:35 -0700 Subject: [PATCH 11/22] Add redirects to next config and use next-compose-plugins --- next.config.js | 32 ++++++++++++++++++++++++++++---- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/next.config.js b/next.config.js index 3a18f9c..2885216 100644 --- a/next.config.js +++ b/next.config.js @@ -1,5 +1,29 @@ -const withMDX = require('@next/mdx')({ extension: /\.mdx?$/ }) -module.exports = withMDX({ +const nextConfig = { experimental: { trailingSlash: true }, - pageExtensions: ['js', 'jsx', 'mdx'] -}) + pageExtensions: ['js', 'jsx', 'mdx'], + async redirects() { + return [ + { + source: '/india', + destination: '/apac', + permanent: false + }, + { + source: '/list-of-hackathons-in-asia-pacific', + destination: '/apac', + permanent: false + }, + { + source: '/list-of-hackathons-in-india', + destination: '/apac', + permanent: false + } + ] + } +} + +const withPlugins = require('next-compose-plugins') + +const withMDX = require('@next/mdx')({ extension: /\.mdx?$/ }) + +module.exports = withPlugins([withMDX], nextConfig) diff --git a/package.json b/package.json index 0e14a8b..7bd0477 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@next/mdx": "^10.0.4", "lodash": "^4.17.21", "next": "^12.0.2", + "next-compose-plugins": "^2.2.1", "nprogress": "^0.2.0", "pluralize": "^8.0.0", "react": "^17.0.2", diff --git a/yarn.lock b/yarn.lock index 162cc0d..2369ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2199,6 +2199,11 @@ nanoid@^3.1.23: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== +next-compose-plugins@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz#020fc53f275a7e719d62521bef4300fbb6fde5ab" + integrity sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg== + next@^12.0.2: version "12.0.2" resolved "https://registry.yarnpkg.com/next/-/next-12.0.2.tgz#269512cdf14d12c535c12240280da95e7be2d006" From a0714ebb2d8142715640a4e73af57110bf21d5ac Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 13:53:45 -0700 Subject: [PATCH 12/22] add apac to regions --- lib/regions.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/regions.json b/lib/regions.json index bd17fed..616c819 100644 --- a/lib/regions.json +++ b/lib/regions.json @@ -5,6 +5,7 @@ "New York": "https://images.unsplash.com/photo-1562961857-b1ba8f9dbd5f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80", "the Bay Area": "https://images.unsplash.com/photo-1501196788499-459dbea97736?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=512&q=80", "the USA": "https://www.nps.gov/yose/planyourvisit/images/20170618_155330.jpg?maxwidth=512&maxheight=400&autorotate=false", - "Canada": "https://images.unsplash.com/photo-1479854851860-18d97e109331?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjExMDk0fQ&auto=format&fit=crop&w=512&q=80" + "Canada": "https://images.unsplash.com/photo-1479854851860-18d97e109331?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjExMDk0fQ&auto=format&fit=crop&w=512&q=80", + "Asia-Pacific": "https://cdn.britannica.com/86/170586-050-AB7FEFAE/Taj-Mahal-Agra-India.jpg?maxwidth=512&maxheight=400&autorotate=false" } } From 1b9c642a05711b569572776cf656adee8e128dbb Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 23:36:18 -0700 Subject: [PATCH 13/22] Add banner to main page --- components/banner.js | 68 ++++++++++++++++++++++++++++++++++++++++++++ pages/apac.js | 36 ++--------------------- 2 files changed, 71 insertions(+), 33 deletions(-) create mode 100644 components/banner.js diff --git a/components/banner.js b/components/banner.js new file mode 100644 index 0000000..b7207db --- /dev/null +++ b/components/banner.js @@ -0,0 +1,68 @@ +import { Card, Text } from 'theme-ui' +import { keyframes } from '@emotion/react' +import Icon from '@hackclub/icons' + +const flip = keyframes({ + from: { transform: 'scaleY(0)' }, + to: { transform: 'scaleY(100%)' } +}) + +const Banner = ({ + caption, + copy, + iconLeft, + iconRight, + color = 'accent', + sx = {}, + ...props +}) => ( + + {iconLeft && ( + + )} + + {copy} + {caption && ( + + {' '} + {caption} + + )} + + {iconRight && } + +) + +export default Banner diff --git a/pages/apac.js b/pages/apac.js index 5e76dce..afd54c9 100644 --- a/pages/apac.js +++ b/pages/apac.js @@ -1,21 +1,9 @@ -import Error from 'next/error' import Grouping from '../components/grouping' import Regions from '../components/regions' import Meta from '@hackclub/meta' -import { Box, Heading, Text, Link } from 'theme-ui' +import { Heading, Text, Link } from 'theme-ui' import Head from 'next/head' -import Signup from '../components/signup' -import Years from '../components/years' -import { - map, - orderBy, - find, - kebabCase, - startCase, - filter, - sortBy -} from 'lodash' -import { getGroupingData } from '../lib/data' +import { orderBy, filter } from 'lodash' import { getEvents } from '../lib/data' export default ({ name, events, emailStats }) => { @@ -47,7 +35,7 @@ export default ({ name, events, emailStats }) => { events={events} footer={
- {/* */} + {/* At the moment, the email signup is broken. */} Explore popular regions @@ -58,24 +46,6 @@ export default ({ name, events, emailStats }) => { ) } -// const distance = (lat1, lon1, lat2, lon2) => { -// // https://www.geodatasource.com/developers/javascript -// const radlat1 = (Math.PI * lat1) / 180 -// const radlat2 = (Math.PI * lat2) / 180 -// const theta = lon1 - lon2 -// const radtheta = (Math.PI * theta) / 180 -// let dist = -// Math.sin(radlat1) * Math.sin(radlat2) + -// Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta) -// dist = Math.acos(dist) -// dist = (dist * 180) / Math.PI -// dist = dist * 60 * 1.1515 -// return { -// miles: dist, -// kilometers: dist * 1.609344 -// } -// } - export const getStaticProps = async (req, res) => { let events = await getEvents() // events where the field apac = true From dd95963b1df211e6c96f814e732cc27de190de2a Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 23:36:43 -0700 Subject: [PATCH 14/22] Get user location --- package.json | 1 + pages/api/country.js | 16 ++++ pages/index.js | 20 ++++- yarn.lock | 189 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 220 insertions(+), 6 deletions(-) create mode 100644 pages/api/country.js diff --git a/package.json b/package.json index 7bd0477..57249c4 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@hackclub/theme": "^0.3.3", "@mdx-js/loader": "^1.6.22", "@next/mdx": "^10.0.4", + "geoip-country": "^4.0.93", "lodash": "^4.17.21", "next": "^12.0.2", "next-compose-plugins": "^2.2.1", diff --git a/pages/api/country.js b/pages/api/country.js new file mode 100644 index 0000000..8bd102c --- /dev/null +++ b/pages/api/country.js @@ -0,0 +1,16 @@ +// hackathons.hackclub.com/api/country gets the country of the user in the format +// { range: [ 28966912, 29097983 ], country: 'IN' } +// If the country is "IN", they will see the banner on the homepage +export default function handler(req, res) { + try { + const geoip = require('geoip-country') + const ip = req.headers['x-forwarded-for'] + ? req.headers['x-forwarded-for'] + : '1.187.255.255' // defaults to IP in APAC + console.log(geoip.lookup(ip)) + console.log('IP is ', geoip.pretty(ip)) + res.json(geoip.lookup(ip)) + } catch (e) { + res.json({ countryNotFound: true }) + } +} diff --git a/pages/index.js b/pages/index.js index add8ba8..63c6ee8 100644 --- a/pages/index.js +++ b/pages/index.js @@ -5,9 +5,11 @@ import Meta from '@hackclub/meta' import Signup from '../components/signup' import Years from '../components/years' import Regions from '../components/regions' -import { filter, orderBy, slice, last, remove } from 'lodash' +import { filter, orderBy, slice, last } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' +import Banner from '../components/banner' +import { sendJson } from 'next/dist/server/api-utils' const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => @@ -53,6 +55,13 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. + } events={events} @@ -74,6 +83,9 @@ export default ({ stats, emailStats, events }) => ( export const getStaticProps = async () => { let { events, emailStats } = await getGroupingData() + const location = await fetch('https://localhost:3000/api/country') + const userLocation = JSON.stringify(location) + console.log(userLocation) let stats = { total: events.length, state: new Set( @@ -94,7 +106,7 @@ export const getStaticProps = async () => { filter(events, e => new Date(e.start) >= new Date()), 'start' ) - // Filter out apac hackathons. Moved to /apac as of 2021-11-05 - events = filter(events, 'country') - return { props: { events, stats, emailStats }, revalidate: 1 } + // APAC Hackathons are now on the /apac page + events = filter(events, ['apac', false]) + return { props: { events, stats, emailStats, userLocation }, revalidate: 1 } } diff --git a/yarn.lock b/yarn.lock index 2369ac0..a3d9a11 100644 --- a/yarn.lock +++ b/yarn.lock @@ -982,6 +982,13 @@ assert@2.0.0: object-is "^1.0.1" util "^0.12.0" +async@^2.6.1: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + available-typed-arrays@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.3.tgz#fb7d02445bfedefad79fad1fe47931163a227198" @@ -1018,6 +1025,11 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + base64-js@^1.0.2: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1043,6 +1055,14 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1127,6 +1147,11 @@ browserslist@4.16.6: escalade "^3.1.1" node-releases "^1.1.71" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1272,6 +1297,11 @@ colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + comma-separated-tokens@^1.0.0: version "1.0.8" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" @@ -1282,6 +1312,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + constants-browserify@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -1573,6 +1608,13 @@ extend@^3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1607,6 +1649,11 @@ foreach@^2.0.5: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -1622,6 +1669,20 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +geoip-country@^4.0.93: + version "4.0.93" + resolved "https://registry.yarnpkg.com/geoip-country/-/geoip-country-4.0.93.tgz#c29bfc175679266ce6be7e4fc6c43fde4ab634af" + integrity sha512-CPvaC0WMnPAmelbztWQypBIesDkSwpumZF3r3hKQSelMQ1KQaVs3JYLs6D6L9VS27Ow0NfZ8aO7yoSUoyRaGvg== + dependencies: + async "^2.6.1" + colors "^1.4.0" + glob "^7.1.6" + iconv-lite "^0.5.2" + ip-address "^6.3.0" + lazy "^1.0.11" + rimraf "^2.7.1" + yauzl "^2.10.0" + get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -1650,6 +1711,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@^7.1.3, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -1820,6 +1893,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8" + integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag== + dependencies: + safer-buffer ">= 2.1.2 < 3" + iconv-lite@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" @@ -1847,7 +1927,15 @@ import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.0" -inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1857,6 +1945,19 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== +ip-address@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-6.4.0.tgz#8f7d43e76002a1c3c230792c748f5d8c143f908a" + integrity sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA== + dependencies: + jsbn "1.1.0" + lodash.find "4.6.0" + lodash.max "4.0.1" + lodash.merge "4.6.2" + lodash.padstart "4.6.1" + lodash.repeat "4.1.0" + sprintf-js "1.1.2" + is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -2026,6 +2127,11 @@ jest-worker@27.0.0-next.5: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2050,6 +2156,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +lazy@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" + integrity sha1-2qBoIGKCVCwIgojpdcKXwa53tpA= + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -2080,6 +2191,31 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash.find@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= + +lodash.max@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-4.0.1.tgz#8735566c618b35a9f760520b487ae79658af136a" + integrity sha1-hzVWbGGLNan3YFILSHrnllivE2o= + +lodash.merge@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.padstart@4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" + integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= + +lodash.repeat@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" + integrity sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ= + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -2090,7 +2226,7 @@ lodash.uniq@4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.21: +lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2179,6 +2315,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -2331,6 +2474,13 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + os-browserify@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -2422,6 +2572,11 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + path-parse@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -2443,6 +2598,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" @@ -2684,6 +2844,13 @@ resolve@^1.12.0, resolve@^1.3.2: dependencies: path-parse "^1.0.6" +rimraf@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -2775,6 +2942,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +sprintf-js@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + stacktrace-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -3212,6 +3384,11 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -3224,6 +3401,14 @@ yaml@^1.7.2: dependencies: "@babel/runtime" "^7.6.3" +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 0405f250061e6c74954716aebede30aab510334f Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 23:38:37 -0700 Subject: [PATCH 15/22] Revert "Get user location" This reverts commit dd95963b1df211e6c96f814e732cc27de190de2a. --- package.json | 1 - pages/api/country.js | 16 ---- pages/index.js | 20 +---- yarn.lock | 189 +------------------------------------------ 4 files changed, 6 insertions(+), 220 deletions(-) delete mode 100644 pages/api/country.js diff --git a/package.json b/package.json index 57249c4..7bd0477 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,6 @@ "@hackclub/theme": "^0.3.3", "@mdx-js/loader": "^1.6.22", "@next/mdx": "^10.0.4", - "geoip-country": "^4.0.93", "lodash": "^4.17.21", "next": "^12.0.2", "next-compose-plugins": "^2.2.1", diff --git a/pages/api/country.js b/pages/api/country.js deleted file mode 100644 index 8bd102c..0000000 --- a/pages/api/country.js +++ /dev/null @@ -1,16 +0,0 @@ -// hackathons.hackclub.com/api/country gets the country of the user in the format -// { range: [ 28966912, 29097983 ], country: 'IN' } -// If the country is "IN", they will see the banner on the homepage -export default function handler(req, res) { - try { - const geoip = require('geoip-country') - const ip = req.headers['x-forwarded-for'] - ? req.headers['x-forwarded-for'] - : '1.187.255.255' // defaults to IP in APAC - console.log(geoip.lookup(ip)) - console.log('IP is ', geoip.pretty(ip)) - res.json(geoip.lookup(ip)) - } catch (e) { - res.json({ countryNotFound: true }) - } -} diff --git a/pages/index.js b/pages/index.js index 63c6ee8..add8ba8 100644 --- a/pages/index.js +++ b/pages/index.js @@ -5,11 +5,9 @@ import Meta from '@hackclub/meta' import Signup from '../components/signup' import Years from '../components/years' import Regions from '../components/regions' -import { filter, orderBy, slice, last } from 'lodash' +import { filter, orderBy, slice, last, remove } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' -import Banner from '../components/banner' -import { sendJson } from 'next/dist/server/api-utils' const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => @@ -55,13 +53,6 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. - } events={events} @@ -83,9 +74,6 @@ export default ({ stats, emailStats, events }) => ( export const getStaticProps = async () => { let { events, emailStats } = await getGroupingData() - const location = await fetch('https://localhost:3000/api/country') - const userLocation = JSON.stringify(location) - console.log(userLocation) let stats = { total: events.length, state: new Set( @@ -106,7 +94,7 @@ export const getStaticProps = async () => { filter(events, e => new Date(e.start) >= new Date()), 'start' ) - // APAC Hackathons are now on the /apac page - events = filter(events, ['apac', false]) - return { props: { events, stats, emailStats, userLocation }, revalidate: 1 } + // Filter out apac hackathons. Moved to /apac as of 2021-11-05 + events = filter(events, 'country') + return { props: { events, stats, emailStats }, revalidate: 1 } } diff --git a/yarn.lock b/yarn.lock index a3d9a11..2369ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -982,13 +982,6 @@ assert@2.0.0: object-is "^1.0.1" util "^0.12.0" -async@^2.6.1: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - available-typed-arrays@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.3.tgz#fb7d02445bfedefad79fad1fe47931163a227198" @@ -1025,11 +1018,6 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - base64-js@^1.0.2: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1055,14 +1043,6 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1147,11 +1127,6 @@ browserslist@4.16.6: escalade "^3.1.1" node-releases "^1.1.71" -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1297,11 +1272,6 @@ colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - comma-separated-tokens@^1.0.0: version "1.0.8" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" @@ -1312,11 +1282,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - constants-browserify@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -1608,13 +1573,6 @@ extend@^3.0.0: resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -1649,11 +1607,6 @@ foreach@^2.0.5: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - fsevents@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -1669,20 +1622,6 @@ gensync@^1.0.0-beta.1: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== -geoip-country@^4.0.93: - version "4.0.93" - resolved "https://registry.yarnpkg.com/geoip-country/-/geoip-country-4.0.93.tgz#c29bfc175679266ce6be7e4fc6c43fde4ab634af" - integrity sha512-CPvaC0WMnPAmelbztWQypBIesDkSwpumZF3r3hKQSelMQ1KQaVs3JYLs6D6L9VS27Ow0NfZ8aO7yoSUoyRaGvg== - dependencies: - async "^2.6.1" - colors "^1.4.0" - glob "^7.1.6" - iconv-lite "^0.5.2" - ip-address "^6.3.0" - lazy "^1.0.11" - rimraf "^2.7.1" - yauzl "^2.10.0" - get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" @@ -1711,18 +1650,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -1893,13 +1820,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8" - integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" @@ -1927,15 +1847,7 @@ import-fresh@^3.1.0: parent-module "^1.0.0" resolve-from "^4.0.0" -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: +inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1945,19 +1857,6 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -ip-address@^6.3.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-6.4.0.tgz#8f7d43e76002a1c3c230792c748f5d8c143f908a" - integrity sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA== - dependencies: - jsbn "1.1.0" - lodash.find "4.6.0" - lodash.max "4.0.1" - lodash.merge "4.6.2" - lodash.padstart "4.6.1" - lodash.repeat "4.1.0" - sprintf-js "1.1.2" - is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -2127,11 +2026,6 @@ jest-worker@27.0.0-next.5: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2156,11 +2050,6 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -lazy@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" - integrity sha1-2qBoIGKCVCwIgojpdcKXwa53tpA= - lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -2191,31 +2080,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.find@4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" - integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= - -lodash.max@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-4.0.1.tgz#8735566c618b35a9f760520b487ae79658af136a" - integrity sha1-hzVWbGGLNan3YFILSHrnllivE2o= - -lodash.merge@4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.padstart@4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= - -lodash.repeat@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" - integrity sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ= - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -2226,7 +2090,7 @@ lodash.uniq@4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21: +lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -2315,13 +2179,6 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -2474,13 +2331,6 @@ object.assign@^4.1.2: has-symbols "^1.0.1" object-keys "^1.1.1" -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - os-browserify@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -2572,11 +2422,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - path-parse@^1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -2598,11 +2443,6 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - picomatch@^2.0.4, picomatch@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" @@ -2844,13 +2684,6 @@ resolve@^1.12.0, resolve@^1.3.2: dependencies: path-parse "^1.0.6" -rimraf@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -2942,11 +2775,6 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== -sprintf-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - stacktrace-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -3384,11 +3212,6 @@ which-typed-array@^1.1.2: has-symbols "^1.0.1" is-typed-array "^1.1.3" -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -3401,14 +3224,6 @@ yaml@^1.7.2: dependencies: "@babel/runtime" "^7.6.3" -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From b4b4f287c598f1993cddf851732a6ae0d08615e2 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 23:58:01 -0700 Subject: [PATCH 16/22] commmit to trigger a preview deploy --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0582cf9..6e73c17 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Stuff you need installed ahead of time: Clone it! - $ git clone https://github.com/hackclub/hackathons + $ git clone https://github.com/hackclub/hackathons.git Go into the directory! From 98e21185e05e745c71f5abf7e3edf8af1562fa00 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Fri, 5 Nov 2021 23:59:19 -0700 Subject: [PATCH 17/22] Add banner back --- pages/index.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/index.js b/pages/index.js index add8ba8..01c5ede 100644 --- a/pages/index.js +++ b/pages/index.js @@ -53,6 +53,13 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. + } events={events} From 573c188c8c5ef4e0090a1ec4cdd4be6bac2e5245 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Sat, 6 Nov 2021 00:03:17 -0700 Subject: [PATCH 18/22] Fix banner --- pages/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/pages/index.js b/pages/index.js index 01c5ede..035b6ab 100644 --- a/pages/index.js +++ b/pages/index.js @@ -8,6 +8,7 @@ import Regions from '../components/regions' import { filter, orderBy, slice, last, remove } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' +import Banner from '../components/banner' const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => From 110a13ac9ce4ad3265bfc3cd08960720420e7135 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Sun, 7 Nov 2021 01:00:48 -0700 Subject: [PATCH 19/22] Show all hackathons on index page --- pages/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/pages/index.js b/pages/index.js index 035b6ab..24d55a3 100644 --- a/pages/index.js +++ b/pages/index.js @@ -102,7 +102,5 @@ export const getStaticProps = async () => { filter(events, e => new Date(e.start) >= new Date()), 'start' ) - // Filter out apac hackathons. Moved to /apac as of 2021-11-05 - events = filter(events, 'country') return { props: { events, stats, emailStats }, revalidate: 1 } } From d9f28bea94474f11be0ee9ee79fbaae4a0d5f390 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Sun, 7 Nov 2021 01:01:23 -0700 Subject: [PATCH 20/22] Remove banner --- components/banner.js | 68 -------------------------------------------- pages/index.js | 8 ------ 2 files changed, 76 deletions(-) delete mode 100644 components/banner.js diff --git a/components/banner.js b/components/banner.js deleted file mode 100644 index b7207db..0000000 --- a/components/banner.js +++ /dev/null @@ -1,68 +0,0 @@ -import { Card, Text } from 'theme-ui' -import { keyframes } from '@emotion/react' -import Icon from '@hackclub/icons' - -const flip = keyframes({ - from: { transform: 'scaleY(0)' }, - to: { transform: 'scaleY(100%)' } -}) - -const Banner = ({ - caption, - copy, - iconLeft, - iconRight, - color = 'accent', - sx = {}, - ...props -}) => ( - - {iconLeft && ( - - )} - - {copy} - {caption && ( - - {' '} - {caption} - - )} - - {iconRight && } - -) - -export default Banner diff --git a/pages/index.js b/pages/index.js index 24d55a3..555c59c 100644 --- a/pages/index.js +++ b/pages/index.js @@ -8,7 +8,6 @@ import Regions from '../components/regions' import { filter, orderBy, slice, last, remove } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' -import Banner from '../components/banner' const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => @@ -54,13 +53,6 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. - } events={events} From e56cb39eafa3c0a1d99160eb0c689974e4b7214b Mon Sep 17 00:00:00 2001 From: eilla1 Date: Sun, 7 Nov 2021 01:16:15 -0700 Subject: [PATCH 21/22] Revert "Remove banner" This reverts commit d9f28bea94474f11be0ee9ee79fbaae4a0d5f390. --- components/banner.js | 68 ++++++++++++++++++++++++++++++++++++++++++++ pages/index.js | 8 ++++++ 2 files changed, 76 insertions(+) create mode 100644 components/banner.js diff --git a/components/banner.js b/components/banner.js new file mode 100644 index 0000000..b7207db --- /dev/null +++ b/components/banner.js @@ -0,0 +1,68 @@ +import { Card, Text } from 'theme-ui' +import { keyframes } from '@emotion/react' +import Icon from '@hackclub/icons' + +const flip = keyframes({ + from: { transform: 'scaleY(0)' }, + to: { transform: 'scaleY(100%)' } +}) + +const Banner = ({ + caption, + copy, + iconLeft, + iconRight, + color = 'accent', + sx = {}, + ...props +}) => ( + + {iconLeft && ( + + )} + + {copy} + {caption && ( + + {' '} + {caption} + + )} + + {iconRight && } + +) + +export default Banner diff --git a/pages/index.js b/pages/index.js index 555c59c..24d55a3 100644 --- a/pages/index.js +++ b/pages/index.js @@ -8,6 +8,7 @@ import Regions from '../components/regions' import { filter, orderBy, slice, last, remove } from 'lodash' import { timeSince, humanizedDateRange } from '../lib/util' import { getGroupingData } from '../lib/data' +import Banner from '../components/banner' const title = `High School Hackathons in ${new Date().getFullYear()}` const eventsPreview = events => @@ -53,6 +54,13 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. + } events={events} From 5d06316c1869d8cd301e0103624d7b2a2bcd4b21 Mon Sep 17 00:00:00 2001 From: eilla1 Date: Sun, 7 Nov 2021 01:07:56 -0800 Subject: [PATCH 22/22] Comment out banner for now --- pages/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/index.js b/pages/index.js index 24d55a3..15528b3 100644 --- a/pages/index.js +++ b/pages/index.js @@ -54,13 +54,13 @@ export default ({ stats, emailStats, events }) => ( {' '} staff. - + /> */} } events={events}