diff --git a/subgraph-client/src/components/ProofSetDetails/ProofSetActivityChart.tsx b/subgraph-client/src/components/ProofSetDetails/ProofSetActivityChart.tsx index c5f7489..7ed9de6 100644 --- a/subgraph-client/src/components/ProofSetDetails/ProofSetActivityChart.tsx +++ b/subgraph-client/src/components/ProofSetDetails/ProofSetActivityChart.tsx @@ -14,6 +14,8 @@ import { LineChart, Line, CartesianGrid, XAxis, YAxis, Tooltip } from 'recharts' import { ChartContainer, ChartTooltipContent } from '@/components/ui/chart' import { hexToBytes, decodeWeekIdAndProofSetId } from '@/utility/helper' +const SECONDS_IN_WEEK = 604800 + interface ProofSetActivityChartProps { activities: WeeklyProofSetActivity[] isLoading: boolean @@ -54,7 +56,7 @@ export const ProofSetActivityChart: React.FC = ({ ) .map((act) => { const { weekId } = decodeWeekIdAndProofSetId(hexToBytes(act.id)) - const date = new Date(weekId * 604800 * 1000) // Convert weekId to timestamp + const date = new Date((weekId + 1) * SECONDS_IN_WEEK * 1000) // Convert weekId to timestamp return { totalProofs: Number(act.totalProofs), totalFaultedRoots: Number(act.totalFaultedRoots), diff --git a/subgraph-client/src/components/ProviderDetails/ProviderActivityChart.tsx b/subgraph-client/src/components/ProviderDetails/ProviderActivityChart.tsx index 581a5a5..e4350fc 100644 --- a/subgraph-client/src/components/ProviderDetails/ProviderActivityChart.tsx +++ b/subgraph-client/src/components/ProviderDetails/ProviderActivityChart.tsx @@ -14,6 +14,8 @@ import { LineChart, Line, CartesianGrid, XAxis, YAxis, Tooltip } from 'recharts' import { ChartContainer, ChartTooltipContent } from '@/components/ui/chart' import { hexToBytes, decodeWeekIdAndProviderId } from '@/utility/helper' +const SECONDS_IN_WEEK = 604800 + const getLabelAndColor = (activityType: string) => { switch (activityType) { case 'totalProofs': @@ -66,7 +68,7 @@ export const ProviderActivityChart: React.FC = ({ ) .map((act) => { const { weekId } = decodeWeekIdAndProviderId(hexToBytes(act.id)) - const date = new Date(weekId * 604800 * 1000) + const date = new Date((weekId + 1) * SECONDS_IN_WEEK * 1000) return { totalProofs: Number(act.totalProofs), totalFaultedPeriods: Number(act.totalFaultedPeriods), diff --git a/subgraph-client/src/components/go-home.tsx b/subgraph-client/src/components/go-home.tsx new file mode 100644 index 0000000..18d4009 --- /dev/null +++ b/subgraph-client/src/components/go-home.tsx @@ -0,0 +1,7 @@ +import { Link } from "react-router-dom"; + +export default function GoHomeLink() { + return ( + ← Go Home + ) +} \ No newline at end of file diff --git a/subgraph-client/src/components/page-header.tsx b/subgraph-client/src/components/page-header.tsx index a42101a..cfb58b1 100644 --- a/subgraph-client/src/components/page-header.tsx +++ b/subgraph-client/src/components/page-header.tsx @@ -107,6 +107,7 @@ export default function PageHeader() { > GitHub + )} diff --git a/subgraph-client/src/pages/Documentation.tsx b/subgraph-client/src/pages/Documentation.tsx index a11450c..c52e6d3 100644 --- a/subgraph-client/src/pages/Documentation.tsx +++ b/subgraph-client/src/pages/Documentation.tsx @@ -6,7 +6,7 @@ import remarkGfm from 'remark-gfm' import slugify from 'slugify' import { useParams, Link, useNavigate } from 'react-router-dom' import { ChevronRight, FileText, Book } from 'lucide-react' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' // Documentation structure const docs = [ @@ -89,7 +89,7 @@ export const Documentation = () => {
{/* Back button */}
- +
diff --git a/subgraph-client/src/pages/GasCalculator.tsx b/subgraph-client/src/pages/GasCalculator.tsx index ca25fbe..a98daa4 100644 --- a/subgraph-client/src/pages/GasCalculator.tsx +++ b/subgraph-client/src/pages/GasCalculator.tsx @@ -7,7 +7,7 @@ import { SelectTrigger, SelectValue, } from '@/components/ui/select' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' interface GasMetrics { gasHigh: string @@ -127,7 +127,7 @@ export const GasCalculator = () => {
- +

PDP Gas & Costs Calculator diff --git a/subgraph-client/src/pages/Landing.tsx b/subgraph-client/src/pages/Landing.tsx index 0923222..7796a3d 100644 --- a/subgraph-client/src/pages/Landing.tsx +++ b/subgraph-client/src/pages/Landing.tsx @@ -6,7 +6,12 @@ import { X, Search } from 'lucide-react' import { search, SearchResult } from '@/api/apiService' -import { formatDataSize, bytesToHex, parseCidToHex } from '@/utility/helper' +import { + formatDataSize, + bytesToHex, + parseCidToHex, + normalizeBytesFilter, +} from '@/utility/helper' import { networkContractAddresses, explorerUrls } from '@/utility/constants' import useGraphQL from '@/hooks/useGraphQL' import { landingDataQuery, weeklyProviderActivitiesQuery } from '@/utility/queries' @@ -106,6 +111,13 @@ export const Landing = () => { return } + const isProvider = + /^0x[0-9a-fA-F]+$/.test(trimmedQuery) && !trimmedQuery.startsWith('bafk') + if (isProvider) { + navigate(`/${network}/providers/${normalizeBytesFilter(trimmedQuery)}`) + return + } + const response = await search(subgraphUrl, trimmedQuery, toast) const results = response diff --git a/subgraph-client/src/pages/PieceDetails.tsx b/subgraph-client/src/pages/PieceDetails.tsx index f4846fd..93cd927 100644 --- a/subgraph-client/src/pages/PieceDetails.tsx +++ b/subgraph-client/src/pages/PieceDetails.tsx @@ -3,7 +3,7 @@ import { useParams } from 'react-router-dom' import { PieceOverviewCard } from '@/components/PieceDetails/PieceOverviewCard' import { PieceDataSetsTable } from '@/components/PieceDetails/PieceDataSetsTable' import usePiecePageData from '@/hooks/usePiecePageData' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' export const PieceDetails = () => { const ITEMS_PER_PAGE = 10 @@ -43,7 +43,7 @@ export const PieceDetails = () => { return (
- +
{/* Show title only when details are loaded/loading, not on invalid ID state */} diff --git a/subgraph-client/src/pages/ProofSetDetails.tsx b/subgraph-client/src/pages/ProofSetDetails.tsx index f29749e..0e1ec76 100644 --- a/subgraph-client/src/pages/ProofSetDetails.tsx +++ b/subgraph-client/src/pages/ProofSetDetails.tsx @@ -6,7 +6,7 @@ import { ActivityTabs } from '@/components/ProofSetDetails/ActivityTabs' import { HeatmapSection } from '@/components/ProofSetDetails/HeatmapSection' import useProofSetDetails from '@/hooks/useProofSetDetails' import { ProofSetActivityChart } from '@/components/ProofSetDetails/ProofSetActivityChart' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' const ITEMS_PER_PAGE = 10 const ROOTS_PER_PAGE = 100 @@ -69,7 +69,7 @@ export const ProofSetDetails = () => { return (
- +
{/* Show title only if core proofSet data loaded, avoid showing before ID is confirmed valid */} diff --git a/subgraph-client/src/pages/ProviderDetails.tsx b/subgraph-client/src/pages/ProviderDetails.tsx index 37a8381..6ad9a3d 100644 --- a/subgraph-client/src/pages/ProviderDetails.tsx +++ b/subgraph-client/src/pages/ProviderDetails.tsx @@ -4,7 +4,7 @@ import { ProviderOverviewCard } from '@/components/ProviderDetails/ProviderOverv import { ProviderActivityChart } from '@/components/ProviderDetails/ProviderActivityChart' import { ProviderProofSetsTable } from '@/components/ProviderDetails/ProviderProofSetsTable' import useProviderPageData from '@/hooks/useProviderPageData' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' export const ProviderDetails = () => { const ITEMS_PER_PAGE = 10 @@ -36,7 +36,7 @@ export const ProviderDetails = () => { return (
- +
{/* Show title only when details are loaded/loading, not on invalid ID state */} diff --git a/subgraph-client/src/pages/ServiceDetails.tsx b/subgraph-client/src/pages/ServiceDetails.tsx index b21df08..e84d46a 100644 --- a/subgraph-client/src/pages/ServiceDetails.tsx +++ b/subgraph-client/src/pages/ServiceDetails.tsx @@ -13,7 +13,7 @@ import { serviceDetailsQuery, serviceProvidersQuery } from '@/utility/queries' import { CopyableText } from '@/components/shared/CopyableText' import { ProofSetsTable } from '@/components/ProofSets/ProofSetsTable' import { ProvidersTable } from '@/components/Providers/ProvidersTable' -import GoBackLink from '@/components/go-back' +import GoHomeLink from '@/components/go-home' const ITEMS_PER_PAGE = 10 @@ -114,7 +114,7 @@ export const ServiceDetails = () => { return (
- +

Service Contract Details