mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 20:19:49 +02:00
feat: no data translations
This commit is contained in:
1 parent
716b446272
commit
bd6f1f3570
8 files changed
+39
-22
No files matched your search
@@ -2,7 +2,7 @@ import { Locale } from 'discord.js';
|
|||||||
import { chunk } from 'lodash';
|
import { chunk } from 'lodash';
|
||||||
import * as Breakdown from '../components/Breakdown';
|
import * as Breakdown from '../components/Breakdown';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { AllStats, getAccountInfo } from '../core/blitz/getAccountInfo';
|
import { AllStats, getAccountInfo } from '../core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
||||||
@@ -286,7 +286,7 @@ export async function renderBreakdown(
|
|||||||
description={`${name} • ${filterDescriptions}`}
|
description={`${name} • ${filterDescriptions}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<NoData type={NoDataType.BattlesInPeriod} />
|
<NoData type="battles_in_period" locale={locale} />
|
||||||
</CommandWrapper>,
|
</CommandWrapper>,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { SlashCommandSubcommandGroupBuilder } from 'discord.js';
|
import { Locale, SlashCommandSubcommandGroupBuilder } from 'discord.js';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import * as Graph from '../components/Graph';
|
import * as Graph from '../components/Graph';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
||||||
@@ -36,6 +36,7 @@ async function render(
|
|||||||
{ start, end, name }: ResolvedPeriod,
|
{ start, end, name }: ResolvedPeriod,
|
||||||
type: 'player' | 'tank',
|
type: 'player' | 'tank',
|
||||||
tankId: number | null,
|
tankId: number | null,
|
||||||
|
locale: Locale,
|
||||||
) {
|
) {
|
||||||
const accountInfo = await getAccountInfo(region, id);
|
const accountInfo = await getAccountInfo(region, id);
|
||||||
const clan = (await getClanAccountInfo(region, id, ['clan']))?.clan;
|
const clan = (await getClanAccountInfo(region, id, ['clan']))?.clan;
|
||||||
@@ -100,7 +101,7 @@ async function render(
|
|||||||
</Graph.Root>
|
</Graph.Root>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{plot.length === 0 && <NoData type={NoDataType.BattlesInPeriod} />}
|
{plot.length === 0 && <NoData type="battles_in_period" locale={locale} />}
|
||||||
</CommandWrapper>
|
</CommandWrapper>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -147,7 +148,13 @@ export const evolutionCommand = new Promise<CommandRegistry>(
|
|||||||
});
|
});
|
||||||
|
|
||||||
return [
|
return [
|
||||||
await render(player, period, commandGroup, tankId),
|
await render(
|
||||||
|
player,
|
||||||
|
period,
|
||||||
|
commandGroup,
|
||||||
|
tankId,
|
||||||
|
interaction.locale,
|
||||||
|
),
|
||||||
buttonRefresh(interaction, path),
|
buttonRefresh(interaction, path),
|
||||||
await getBlitzStarsLinkButton(
|
await getBlitzStarsLinkButton(
|
||||||
player.region,
|
player.region,
|
||||||
@@ -174,6 +181,7 @@ export const evolutionCommand = new Promise<CommandRegistry>(
|
|||||||
period,
|
period,
|
||||||
commandGroup,
|
commandGroup,
|
||||||
parseInt(url.searchParams.get('tankId') ?? '0') || null,
|
parseInt(url.searchParams.get('tankId') ?? '0') || null,
|
||||||
|
interaction.locale,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Locale, SlashCommandBuilder } from 'discord.js';
|
import { Locale, SlashCommandBuilder } from 'discord.js';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import GenericAllStats from '../components/GenericAllStats';
|
import GenericAllStats from '../components/GenericAllStats';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import TierWeights from '../components/TierWeights';
|
import TierWeights from '../components/TierWeights';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
||||||
@@ -56,7 +56,9 @@ async function render(
|
|||||||
description={`${name} • ${filterDescriptions}`}
|
description={`${name} • ${filterDescriptions}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{stats.battles === 0 && <NoData type={NoDataType.BattlesInPeriod} />}
|
{stats.battles === 0 && (
|
||||||
|
<NoData type="battles_in_period" locale={locale} />
|
||||||
|
)}
|
||||||
{stats.battles > 0 && <TierWeights weights={tierWeights!} />}
|
{stats.battles > 0 && <TierWeights weights={tierWeights!} />}
|
||||||
{stats.battles > 0 && (
|
{stats.battles > 0 && (
|
||||||
<GenericAllStats stats={stats} supplementaryStats={supplementary} />
|
<GenericAllStats stats={stats} supplementaryStats={supplementary} />
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { SlashCommandBuilder } from 'discord.js';
|
import { SlashCommandBuilder } from 'discord.js';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import GenericStats from '../components/GenericStats';
|
import GenericStats from '../components/GenericStats';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
||||||
import { getClanInfo } from '../core/blitz/getClanInfo';
|
import { getClanInfo } from '../core/blitz/getClanInfo';
|
||||||
@@ -61,7 +61,9 @@ export const inactiveCommand = new Promise<CommandRegistry>((resolve) => {
|
|||||||
description={`Inactive for ${threshold}+ Days • ${new Date().toDateString()}`}
|
description={`Inactive for ${threshold}+ Days • ${new Date().toDateString()}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{!hasInactiveMembers && <NoData type={NoDataType.PlayersInPeriod} />}
|
{!hasInactiveMembers && (
|
||||||
|
<NoData type="players_in_period" locale={interaction.locale} />
|
||||||
|
)}
|
||||||
{hasInactiveMembers && <GenericStats stats={inactive} />}
|
{hasInactiveMembers && <GenericStats stats={inactive} />}
|
||||||
</CommandWrapper>
|
</CommandWrapper>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { SlashCommandBuilder } from 'discord.js';
|
import { SlashCommandBuilder } from 'discord.js';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import * as Tanks from '../components/Tanks';
|
import * as Tanks from '../components/Tanks';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { encyclopediaInfo } from '../core/blitz/encyclopediaInfo';
|
import { encyclopediaInfo } from '../core/blitz/encyclopediaInfo';
|
||||||
@@ -74,7 +74,7 @@ export const ownedTanksCommand = new Promise<CommandRegistry>((resolve) => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
{filteredTanks.length === 0 && (
|
{filteredTanks.length === 0 && (
|
||||||
<NoData type={NoDataType.TanksFound} />
|
<NoData type="tanks_found" locale={interaction.locale} />
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{filteredTanks.length > 0 &&
|
{filteredTanks.length > 0 &&
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Locale, SlashCommandBuilder } from 'discord.js';
|
import { Locale, SlashCommandBuilder } from 'discord.js';
|
||||||
import AllStatsOverview from '../components/AllStatsOverview';
|
import AllStatsOverview from '../components/AllStatsOverview';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import NoData, { NoDataType } from '../components/NoData';
|
import NoData from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
||||||
@@ -50,7 +50,7 @@ async function render(
|
|||||||
description={`${name} • ${filterDescriptions}`}
|
description={`${name} • ${filterDescriptions}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{!stats.battles && <NoData type={NoDataType.BattlesInPeriod} />}
|
{!stats.battles && <NoData type="battles_in_period" locale={locale} />}
|
||||||
{stats.battles > 0 && (
|
{stats.battles > 0 && (
|
||||||
<AllStatsOverview stats={stats} supplementaryStats={supplementary} />
|
<AllStatsOverview stats={stats} supplementaryStats={supplementary} />
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { Locale } from 'discord.js';
|
||||||
|
import { translator } from '../core/localization/translator';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|
||||||
export enum NoDataType {
|
export enum NoDataType {
|
||||||
@@ -7,16 +9,13 @@ export enum NoDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface NoDataProps {
|
export interface NoDataProps {
|
||||||
type: NoDataType;
|
type: 'battles_in_period' | 'players_in_period' | 'tanks_found';
|
||||||
|
locale: Locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
const NO_DATA_MESSAGES: Record<NoDataType, string> = {
|
export default function NoData({ type, locale }: NoDataProps) {
|
||||||
[NoDataType.BattlesInPeriod]: 'No battles played in this period',
|
const { translate } = translator(locale);
|
||||||
[NoDataType.PlayersInPeriod]: 'No players in this period',
|
|
||||||
[NoDataType.TanksFound]: 'No tanks found',
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function NoData({ type }: NoDataProps) {
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
@@ -26,7 +25,7 @@ export default function NoData({ type }: NoDataProps) {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span style={{ fontSize: 16, color: theme.colors.textLowContrast }}>
|
<span style={{ fontSize: 16, color: theme.colors.textLowContrast }}>
|
||||||
{NO_DATA_MESSAGES[type]}
|
{translate(`bot.common.no_data.${type}`)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -90,6 +90,12 @@
|
|||||||
"filters": {
|
"filters": {
|
||||||
"none": "No filters",
|
"none": "No filters",
|
||||||
"tier": "Tier %s"
|
"tier": "Tier %s"
|
||||||
|
},
|
||||||
|
|
||||||
|
"no_data": {
|
||||||
|
"battles_in_period": "No battles played in this period",
|
||||||
|
"players_in_period": "No players in this period",
|
||||||
|
"tanks_found": "No tanks found"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user