Skip to content

Commit 9ff447c

Browse files
committed
fix type errors
1 parent da2e84a commit 9ff447c

File tree

11 files changed

+27
-36
lines changed

11 files changed

+27
-36
lines changed

app/by/[rankingType]/[page]/layout.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,9 @@ import { RANK_NAME } from '@/badge/badge.consts';
88
import { Header } from '@/components/header/header';
99
import { Page } from '@/components/page/page';
1010
import { RankingHeaderSection } from '@/components/ranking-header-section/ranking-header-section';
11-
import { RankingTypeClient } from '@/types/ranking.types';
1211
import { getRankPropByType } from '@/utils/get-rank-prop-by-ranking-type';
1312
import { isRankingType } from '@/utils/is-ranking-type';
1413

15-
type GlobalRankingProps = {
16-
children: React.ReactNode;
17-
params: Promise<{ rankingType: RankingTypeClient; page: string }>;
18-
};
19-
2014
export async function generateMetadata({ params }: LayoutProps<'/by/[rankingType]/[page]'>): Promise<Metadata> {
2115
const { rankingType, page: pageParam } = await params;
2216

app/languages/[country]/[orderBy]/[page]/layout.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { isLanguageSummaryOrder } from './utils/is-language-summary-order';
1414
export async function generateMetadata({
1515
params,
1616
}: LayoutProps<'/languages/[country]/[orderBy]/[page]'>): Promise<Metadata> {
17-
const { orderBy, page, country } = await params;
17+
const { page, orderBy, country } = await params;
1818

1919
if (!isLanguageSummaryOrder(orderBy)) {
2020
throw new Error(`Invalid order by: ${orderBy}`);
@@ -28,14 +28,15 @@ export async function generateMetadata({
2828

2929
export async function generateStaticParams() {
3030
const page = '1';
31+
const country = 'global';
3132
return [
32-
{ orderBy: 'score', page },
33-
{ orderBy: 'size', page },
34-
{ orderBy: 'users', page },
33+
{ orderBy: 'score', country, page },
34+
{ orderBy: 'size', country, page },
35+
{ orderBy: 'users', country, page },
3536
];
3637
}
3738

38-
export default async function CountriesLayout({
39+
export default async function LanguagesSummaryLayout({
3940
children,
4041
params,
4142
}: LayoutProps<'/languages/[country]/[orderBy]/[page]'>) {

app/profile/[login]/components/layout-left-column.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Avatar, AvatarImage } from '@/components/ui/avatar';
88
import { Button } from '@/components/ui/button';
99
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
1010
import { cn } from '@/lib/utils';
11-
import { ProfileSummaryQuery } from '@/types/generated/graphql';
11+
import { PageProfileOverviewQuery } from '@/types/generated/graphql';
1212
import { ensureLinkProtocol } from '@/utils/ensure-link-protocol';
1313

1414
import { FetchUserButtonForProfilePage } from './fetch-user-button';
@@ -25,7 +25,7 @@ import {
2525
import { getSocialIcon } from '../utils/get-social-icon';
2626

2727
type LayoutLeftColumnProps = Readonly<{
28-
user: ProfileSummaryQuery['user'];
28+
user: PageProfileOverviewQuery['user'];
2929
children: ReactNode;
3030
className?: string;
3131
}>;

app/profile/[login]/components/overview-cards/overview-rank-card.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { TIER_NAMES } from '@/app/app.consts';
55
import { AdaptiveTooltip } from '@/components/adaptive-tooltip/adaptive-tooltip';
66
import { Link } from '@/components/link/link';
77
import { RankChart } from '@/components/rank-chart/rank-chart';
8-
import { PageProfileOverviewQuery } from '@/types/generated/graphql';
8+
import { PageProfileOverviewQuery, RankTier } from '@/types/generated/graphql';
99
import { calculateTiers } from '@/utils/calculate-tiers/calculate-tiers';
1010
import { shortenCountryName } from '@/utils/country-name-shortener';
1111
import { getPersonaType } from '@/utils/get-persona-type';
@@ -31,7 +31,7 @@ const CardFooterRank: FC<PropsWithChildren> = ({ children }) => {
3131
};
3232

3333
export const ProfileRankCard: FC<ProfileRankCardProps> = ({ login, ranks, tiers, country }) => {
34-
const { sTier, cTier, fTier, bestTier } = calculateTiers(ranks, tiers);
34+
const { sTier, cTier, fTier, bestTier } = calculateTiers(ranks, tiers as RankTier);
3535
const sRank = ranks?.s ?? ranks?.sProvisional ?? 0;
3636
const cRank = ranks?.c ?? ranks?.cProvisional ?? 0;
3737
const fRank = ranks?.f ?? ranks?.fProvisional ?? 0;

app/profile/[login]/ranks/components/ranks-page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { FC } from 'react';
33

44
import { RANK_DESCRIPTIONS } from '@/app/app.consts';
55
import { RankCard } from '@/components/rank-card/rank-card';
6-
import { PageProfileRanksQuery } from '@/types/generated/graphql';
6+
import { PageProfileRanksQuery, RankTier } from '@/types/generated/graphql';
77
import { UserRankProp } from '@/types/ranking.types';
88
import { calculateTiers } from '@/utils/calculate-tiers/calculate-tiers';
99
import { shortenCountryName } from '@/utils/country-name-shortener';
@@ -35,7 +35,7 @@ export const RanksPage: FC<OverviewPageProps> = ({ user, isGlobalContext }) => {
3535

3636
const ranks = isGlobalContext ? rankGlobal : rankCountry;
3737
const tiers = isGlobalContext ? tiersGlobal : tiersCountry;
38-
const { sTier, cTier, fTier, bestTier } = calculateTiers(ranks, tiers);
38+
const { sTier, cTier, fTier, bestTier } = calculateTiers(ranks, tiers as RankTier);
3939
const { s, c, f, sM, cM, fM, sProvisional, cProvisional, fProvisional } = ranks ?? {};
4040

4141
const getRankingName = (rankType: UserRankProp) => {

app/profile/[login]/seo.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { RANK_NAME } from '@/badge/badge.consts';
2-
import { ProfileSeoQuery } from '@/types/generated/graphql';
2+
import { PageProfileLanguagesQuery, PageProfileOverviewQuery } from '@/types/generated/graphql';
33
import { formatNumberShort } from '@/utils/format-number-short';
44
import { formatOrdinal } from '@/utils/format-ordinal';
55

66
type Tab = 'overview' | 'ranks' | 'repositories' | 'languages';
7-
type DataType = NonNullable<ProfileSeoQuery['user']>;
7+
type DataType = NonNullable<PageProfileOverviewQuery['user']>;
8+
type LanguagesType = NonNullable<PageProfileLanguagesQuery['user']>['languages'];
89

910
const clip = (t: string, max = 158) => {
1011
if (t.length <= max) return t;
@@ -85,7 +86,7 @@ function buildRepositoriesDescription(stats: DataType): string {
8586
return clip(parts.filter(Boolean).join(' '));
8687
}
8788

88-
function buildLanguagesDescription(languages?: NonNullable<DataType>['languages']): string {
89+
function buildLanguagesDescription(languages?: LanguagesType): string {
8990
const languageParts =
9091
languages
9192
?.slice(0, 3)
@@ -213,7 +214,7 @@ function buildTabSpecificJsonLd(
213214
about: { '@type': 'Person', name, url: base },
214215
mainEntity: {
215216
'@type': 'ItemList',
216-
itemListElement: (stats.languages ?? []).slice(0, 3).map((l, i) => ({
217+
itemListElement: ((stats.languages as LanguagesType) ?? []).slice(0, 3).map((l, i) => ({
217218
'@type': 'ListItem',
218219
position: i + 1,
219220
name: l.name,

components/rank-card/language-rank-card.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ export const LanguageRankCard: FC<LanguageRankCardProps> = ({ language, country,
5858
<RankCardItem>{NOT_AVAILABLE}</RankCardItem>
5959
<RankCardItem Icon={Star}>Language Score: {(score || 0).toLocaleString('en-US')}</RankCardItem>
6060
{hasRank && <RankCardPosition rank={rankToDisplay} rankedCount={rankedCount} rankingLink={rankingLink} />}
61-
{!hasRank && !!rankedCount && <RankCardTotalProfilesRanked rankedCount={rankedCount} />}
61+
{!hasRank && !!rankedCount && (
62+
<RankCardTotalProfilesRanked rankedCount={rankedCount} rankingLink={rankingLink} />
63+
)}
6264
</>
6365
);
6466
};

types/profile-timeline.types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { ProfileSummaryQuery } from './generated/graphql';
1+
import { PageProfileOverviewQuery } from './generated/graphql';
22

3-
export type SocialAccountChangeItem = NonNullable<ProfileSummaryQuery['user']>['socialAccounts'];
3+
export type SocialAccountChangeItem = NonNullable<PageProfileOverviewQuery['user']>['socialAccounts'];
44

55
export type ChangeItemType = string | number | boolean | SocialAccountChangeItem;
66

utils/calculate-tiers/calculate-tiers.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
import { TIER_NAMES } from '@/app/app.consts';
2-
import { Tier } from '@/types/generated/graphql';
2+
import { RankTier, Tier } from '@/types/generated/graphql';
33
import { UserRankProp } from '@/types/ranking.types';
44

5-
import {
6-
BestTierResult,
7-
ProfileTierType,
8-
ProfileTierWithData,
9-
RanksType,
10-
TiersDataType,
11-
} from './calculate-tiers.types';
5+
import { BestTierResult, ProfileTierType, ProfileTierWithData, RanksType } from './calculate-tiers.types';
126

137
const BUCKETS: UserRankProp[] = [UserRankProp.s, UserRankProp.c, UserRankProp.f];
148

@@ -70,7 +64,7 @@ function getBestProfileTier(profileTiers: ProfileTierWithData[]): BestTierResult
7064
}
7165

7266
const findTier = (
73-
tiers: NonNullable<TiersDataType>[`${keyof typeof UserRankProp}Tiers`],
67+
tiers: NonNullable<RankTier>[`${keyof typeof UserRankProp}Tiers`],
7468
rank?: number | null,
7569
): Tier | undefined => {
7670
return tiers?.find((tier) => tier.maxRank >= (rank || Number.MAX_SAFE_INTEGER));
@@ -104,7 +98,7 @@ export const getRankingTierData = (
10498
};
10599
};
106100

107-
export const calculateTiers = (profileRanks?: RanksType, rankTiers?: TiersDataType) => {
101+
export const calculateTiers = (profileRanks?: RanksType, rankTiers?: RankTier | null) => {
108102
const profileTiers = BUCKETS.reduce((acc, propName) => {
109103
acc[`${propName}Tier`] = getRankingTierData(
110104
propName,

0 commit comments

Comments
 (0)