Skip to content

Commit

Permalink
fix: homepage logos
Browse files Browse the repository at this point in the history
  • Loading branch information
tomquirk committed Nov 14, 2023
1 parent eaf84ea commit d162954
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 22 deletions.
18 changes: 10 additions & 8 deletions src/components/Home/HomepageProjectCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,16 @@ export function HomepageProjectCard({
<HomepageCard
href={v2v3ProjectRoute(project)}
img={
<ProjectLogo
className="h-[192px] w-full rounded-none object-cover"
name={metadata?.name}
projectId={project.projectId}
pv={project.pv}
uri={metadata?.logoUri}
lazyLoad={lazyLoad}
/>
metadata && !isLoading ? (
<ProjectLogo
className="h-[192px] w-full rounded-none object-cover"
name={metadata?.name}
projectId={project.projectId}
uri={metadata?.logoUri}
pv={project.pv}
lazyLoad={lazyLoad}
/>
) : null
}
title={
metadata && !isLoading ? (
Expand Down
33 changes: 19 additions & 14 deletions src/components/ProjectLogo.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { readNetwork } from 'constants/networks'
import { NetworkName } from 'models/networkName'
import { PV } from 'models/pv'
import { useMemo, useState } from 'react'
import { twMerge } from 'tailwind-merge'
import { cidFromUrl, ipfsGatewayUrl, ipfsUriToGatewayUrl } from 'utils/ipfs'
import { readNetwork } from 'constants/networks'
import { NetworkName } from 'models/networkName'

// Override some project logos.
const imageUriOverridePath = '/assets/images/image-uri-overrides'
Expand All @@ -16,25 +16,30 @@ const GOERLI_URI_OVERRIDES: { [k: number]: string } = {
1: `${imageUriOverridePath}/juiceboxdao_logo.webp`, // the on-chain logo's filesize is too large. This is a smaller version.
}

type ProjectLogoBaseProps = {
className?: string
name?: string
projectId?: number
lazyLoad?: boolean
fallback?: string | JSX.Element | null
uri?: string | undefined
pv?: PV | undefined
}

export default function ProjectLogo({
className,
uri,
name,
projectId,
pv,
lazyLoad,
fallback = '🧃',
}: {
name: string | undefined
className?: string
uri?: string | undefined
projectId?: number | undefined
pv?: PV | undefined
lazyLoad?: boolean
fallback?: string | JSX.Element | null
}) {
uri,
pv,
}: ProjectLogoBaseProps) {
const [srcLoadError, setSrcLoadError] = useState(false)

/**
* If URI is passed, use it.
* If URI isn't passed or is undefined, use the API logo. THIS REQUIRES PV + PROJECT ID
*/
const imageSrc = useMemo(() => {
if (
projectId &&
Expand Down

0 comments on commit d162954

Please sign in to comment.