Merge pull request #1456 from hackclub/rluodev/1454-hcb-allow-site-to-build-without-hcbs-stats-endpoint

remove need for hcb stats page for deploy
This commit is contained in:
Gary Tou 2025-01-21 22:08:55 +00:00 committed by GitHub
commit a74d2c2a41
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 46 additions and 24 deletions

View file

@ -43,6 +43,9 @@ function formatMoney(amount) {
}
const Stats = ({ stats }) => {
if (stats.transactions_volume === undefined) {
return null
}
const [balance, setBalance] = useState(0) // A formatted balance string, split by decimal
useEffect(() => {
@ -64,7 +67,6 @@ const Stats = ({ stats }) => {
return () => observer.disconnect()
}, [stats.transactions_volume])
return (
<Box id="parent">
<Flex sx={{ flexDirection: 'column', alignItems: 'center' }}>
@ -103,11 +105,20 @@ const Stats = ({ stats }) => {
export async function getStaticProps(context) {
const res = await fetch(`https://hcb.hackclub.com/stats`)
const stats = await res.json()
return {
props: {
stats
try {
const stats = await res.json()
return {
props: {
stats
},
revalidate: 10
}
} catch (e) {
return {
props: {
stats: {}
},
revalidate: 10
}
}
}

View file

@ -20,7 +20,7 @@ export default function Bank({ data }) {
color: 'snow'
}}
badge
text={data[0]}
text={data[0] === 'error' ? 'The coolest money thing' : data[0]}
>
<Heading
variant="title"

View file

@ -184,12 +184,20 @@ export default function First({ stats }) {
export async function getStaticProps(context) {
const res = await fetch(`https://hcb.hackclub.com/stats`)
const stats = await res.json()
return {
props: {
stats
},
revalidate: 10
try {
const stats = await res.json()
return {
props: {
stats
},
revalidate: 60 * 60 // once an hour
}
} catch (e) {
return {
props: {
stats: {}
},
revalidate: 60 * 60 // once an hour
}
}
}

View file

@ -1221,17 +1221,20 @@ export async function getStaticProps() {
// HCB: get total raised
let bankData = []
let initialBankData = await fetch('https://hcb.hackclub.com/stats').then(r =>
r.json()
)
let raised = initialBankData.raised / 100
let initialBankData = await fetch('https://hcb.hackclub.com/stats')
try {
const bd = await initialBankData.json()
let raised = bd.raised / 100
bankData.push(
`💰 ${raised.toLocaleString('en-US', {
style: 'currency',
currency: 'USD'
})} raised`
)
bankData.push(
`💰 ${raised.toLocaleString('en-US', {
style: 'currency',
currency: 'USD'
})} raised`
)
} catch {
bankData.push('error')
}
// Slack: get total raised
const { Slack: Slacky } = require('./api/slack')