Merge branch 'main' into caro/badges-stats

This commit is contained in:
2025-10-16 11:51:12 -05:00
56 changed files with 2759 additions and 292 deletions

View File

@@ -22,12 +22,21 @@ const TeamListItem = React.memo(({ team }: TeamListItemProps) => {
[team.players]
);
const teamNameSize = useMemo(() => {
const nameLength = team.name.length;
if (nameLength > 20) return 'xs';
if (nameLength > 15) return 'sm';
return 'md';
}, [team.name]);
return (
<Group justify="space-between" w="100%">
<Text fw={500}>{`${team.name}`}</Text>
<Stack ml="auto" gap={0}>
{playerNames.map((name) => (
<Text size="xs" c="dimmed" ta="right">
<Group justify="space-between" w="100%" wrap="nowrap">
<Text fw={500} size={teamNameSize} style={{ flexShrink: 1, minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
{`${team.name}`}
</Text>
<Stack ml="auto" gap={0} style={{ flexShrink: 0 }}>
{playerNames.map((name, idx) => (
<Text key={idx} size="xs" c="dimmed" ta="right">
{name}
</Text>
))}
@@ -46,10 +55,10 @@ const TeamList = ({ teams, loading = false, onTeamClick }: TeamListProps) => {
const navigate = useNavigate();
const handleClick = useCallback(
(teamId: string) => {
(teamId: string, priv: boolean) => {
if (onTeamClick) {
onTeamClick(teamId);
} else {
} else if (!priv) {
navigate({ to: `/teams/${teamId}` });
}
},
@@ -91,7 +100,7 @@ const TeamList = ({ teams, loading = false, onTeamClick }: TeamListProps) => {
/>
}
style={{ cursor: "pointer" }}
onClick={() => handleClick(team.id)}
onClick={() => handleClick(team.id, team.private)}
styles={{
itemWrapper: { width: "100%" },
itemLabel: { width: "100%" },

View File

@@ -19,6 +19,7 @@ export interface Team {
updated: string;
players: PlayerInfo[];
tournaments: TournamentInfo[];
private: boolean;
}
export interface TeamInfo {
@@ -28,6 +29,7 @@ export interface TeamInfo {
accent_color: string;
logo?: string;
players: PlayerInfo[];
private: boolean;
}
export const teamInputSchema = z