user page renders

This commit is contained in:
Kalle (Sendou)
2020-10-17 17:29:20 +03:00
parent 74cc2a3aaf
commit f9d76542e8
17 changed files with 2972 additions and 10 deletions

102
components/AbilityIcon.tsx Normal file
View File

@@ -0,0 +1,102 @@
import AD from "assets/abilityIcons/AD.png";
import BDU from "assets/abilityIcons/BDU.png";
import BRU from "assets/abilityIcons/BRU.png";
import CB from "assets/abilityIcons/CB.png";
import DR from "assets/abilityIcons/DR.png";
import EMPTY from "assets/abilityIcons/EMPTY.png";
import H from "assets/abilityIcons/H.png";
import ISM from "assets/abilityIcons/ISM.png";
import ISS from "assets/abilityIcons/ISS.png";
import LDE from "assets/abilityIcons/LDE.png";
import MPU from "assets/abilityIcons/MPU.png";
import NS from "assets/abilityIcons/NS.png";
import OG from "assets/abilityIcons/OG.png";
import OS from "assets/abilityIcons/OS.png";
import QR from "assets/abilityIcons/QR.png";
import QSJ from "assets/abilityIcons/QSJ.png";
import REC from "assets/abilityIcons/REC.png";
import RES from "assets/abilityIcons/RES.png";
import RP from "assets/abilityIcons/RP.png";
import RSU from "assets/abilityIcons/RSU.png";
import SCU from "assets/abilityIcons/SCU.png";
import SJ from "assets/abilityIcons/SJ.png";
import SPU from "assets/abilityIcons/SPU.png";
import SS from "assets/abilityIcons/SS.png";
import SSU from "assets/abilityIcons/SSU.png";
import T from "assets/abilityIcons/T.png";
import TI from "assets/abilityIcons/TI.png";
import UNKNOWN from "assets/abilityIcons/UNKNOWN.png";
const abilityIcons = {
BDU,
BRU,
CB,
DR,
H,
ISM,
ISS,
LDE,
MPU,
NS,
OG,
QR,
QSJ,
REC,
RES,
RP,
RSU,
SCU,
SJ,
SPU,
SS,
SSU,
T,
TI,
OS,
AD,
UNKNOWN,
"": UNKNOWN,
EMPTY,
} as const;
//https://github.com/loadout-ink/splat2-calc
const sizeMap = {
MAIN: "50px",
SUB: "40px",
TINY: "30px",
SUBTINY: "20px",
} as const;
interface AbilityIconProps {
// FIXME: use enum from generated/graphql.tsx
ability: string | "EMPTY";
size: "MAIN" | "SUB" | "TINY" | "SUBTINY";
}
const AbilityIcon: React.FC<AbilityIconProps> = ({ ability, size }) => {
const key = ability as keyof typeof abilityIcons;
const abilitySrc = abilityIcons[key];
return (
<img
src={abilitySrc}
style={{
zIndex: 2,
borderRadius: "50%",
width: sizeMap[size],
height: sizeMap[size],
background: "#000",
border: "2px solid #888",
borderRight: "0px",
borderBottom: "0px",
backgroundSize: "100%",
boxShadow: "0 0 0 1px #000",
userSelect: "none",
display: "inline-block",
}}
alt={ability}
/>
);
};
export default AbilityIcon;

49
components/Emoji.tsx Normal file
View File

@@ -0,0 +1,49 @@
import { Image } from "@chakra-ui/core";
import cb from "assets/cb.png";
import rm from "assets/rm.png";
import sz from "assets/sz.png";
import tc from "assets/tc.png";
import tw from "assets/tw.png";
import AbilityIcon from "components/AbilityIcon";
import GearImage from "components/GearImage";
import WeaponImage from "components/WeaponImage";
import { abilityMarkdownCodes } from "lib/lists/abilityMarkdownCodes";
import { gearMarkdownCodes } from "lib/lists/gearMarkdownCodes";
import { weaponMarkdownCodes } from "lib/lists/weaponMarkdownCodes";
const modeCodes: Record<string, string> = {
turf_war: tw,
splat_zones: sz,
tower_control: tc,
rainmaker: rm,
clam_blitz: cb,
} as const;
interface EmojiProps {
value: string;
}
const Emoji: React.FC<EmojiProps> = (props) => {
const value = props.value.replace(/:/g, "").toLowerCase();
const keyWeapon = value as keyof typeof weaponMarkdownCodes;
const weaponName = weaponMarkdownCodes[keyWeapon];
if (!!weaponName)
return <WeaponImage englishName={weaponName} size="SMALL" asInlineBlock />;
const keyAbility = value as keyof typeof abilityMarkdownCodes;
const abilityName = abilityMarkdownCodes[keyAbility];
if (!!abilityName) return <AbilityIcon size="TINY" ability={abilityName} />;
const keyGear = value as keyof typeof gearMarkdownCodes;
const gearName = gearMarkdownCodes[keyGear];
if (!!gearName) return <GearImage englishName={gearName} mini />;
const mode = modeCodes[value];
if (!!mode)
return <Image src={mode} display="inline-block" w="32px" h="32px" />;
return <>{props.value}</>;
};
export default Emoji;

26
components/Flag.tsx Normal file
View File

@@ -0,0 +1,26 @@
import { useTranslation } from "lib/useMockT";
import React from "react";
interface FlagProps {
code: string;
size?: "16" | "32";
}
const Flag: React.FC<FlagProps> = ({ code, size = "16" }) => {
const { t } = useTranslation();
return (
<img
src={`https://www.countryflags.io/${code}/flat/${size}.png`}
style={{
display: "inline",
margin: "0 8px",
width: `${size}px`,
height: `${size}px`,
}}
alt={t(`countries;${code.toUpperCase()}`)}
title={t(`countries;${code.toUpperCase()}`)}
/>
);
};
export default Flag;

28
components/GearImage.tsx Normal file
View File

@@ -0,0 +1,28 @@
import englishToInteral from "lib/englishToInternal.json";
import { useTranslation } from "lib/useMockT";
import React from "react";
interface GearImageProps {
englishName: string;
mini?: boolean;
}
const GearImage: React.FC<GearImageProps> = ({ englishName, mini }) => {
const { t } = useTranslation();
const wh = "32px";
const key = englishName as keyof typeof englishToInteral;
const gearInternal = englishToInteral[key];
return (
<img
alt={t(`game;${englishName}`)}
src={`https://raw.githubusercontent.com/Leanny/leanny.github.io/master/splat2/gear/${gearInternal}.png`}
title={t(`game;${englishName}`)}
style={
mini ? { width: wh, height: wh, display: "inline-block" } : undefined
}
/>
);
};
export default GearImage;

190
components/Markdown.tsx Normal file
View File

@@ -0,0 +1,190 @@
import {
Checkbox,
Code,
Divider,
Heading,
Image,
Link,
List,
ListItem,
Text,
} from "@chakra-ui/core";
import Emoji from "components/Emoji";
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "components/Table";
import { useMyTheme } from "lib/useMyTheme";
import ReactMarkdown from "react-markdown";
import reactStringReplace from "react-string-replace";
interface MarkdownProps {
value: string;
}
const Markdown: React.FC<MarkdownProps> = ({ value }) => {
const { themeColor } = useMyTheme();
//https://github.com/mustaphaturhan/chakra-ui-markdown-renderer/blob/master/src/index.js
const ChakraUIRenderer = () => {
function getCoreProps(props: any) {
return props["data-sourcepos"]
? { "data-sourcepos": props["data-sourcepos"] }
: {};
}
return {
paragraph: (props: any) => {
const { children } = props;
return <Text mb={2}>{children}</Text>;
},
emphasis: (props: any) => {
const { children } = props;
return <Text as="em">{children}</Text>;
},
blockquote: (props: any) => {
const { children } = props;
return <Code p={2}>{children}</Code>;
},
code: (props: any) => {
const { language, value } = props;
const className = language && `language-${language}`;
return (
<pre {...getCoreProps(props)}>
<Code p={2} className={className || undefined}>
{value}
</Code>
</pre>
);
},
delete: (props: any) => {
const { children } = props;
return <Text as="del">{children}</Text>;
},
thematicBreak: Divider,
link: (props: any) => {
const { children } = props;
return (
<Link color={themeColor} {...props}>
{children}
</Link>
);
},
img: Image,
linkReference: (props: any) => {
const { children } = props;
return (
<Link color={themeColor} {...props}>
{children}
</Link>
);
},
imageReference: Image,
text: (props: any) => {
const { children } = props;
return (
<Text as="span" fontFamily="'Rubik', sans-serif">
{reactStringReplace(children, /(:\S+:)/g, (match, i) => (
<Emoji key={i} value={match} />
))}
</Text>
);
},
list: (props: any) => {
const { start, ordered, children, depth } = props;
const attrs = getCoreProps(props);
if (start !== null && start !== 1 && start !== undefined) {
// @ts-ignore
attrs.start = start.toString();
}
let styleType = "disc";
if (ordered) styleType = "decimal";
if (depth === 1) styleType = "circle";
return (
<List
spacing={24}
as={ordered ? "ol" : "ul"}
styleType={styleType}
pl={4}
{...attrs}
>
{children}
</List>
);
},
listItem: (props: any) => {
const { children, checked } = props;
let checkbox = null;
if (checked !== null && checked !== undefined) {
checkbox = (
<Checkbox isChecked={checked} isReadOnly>
{children}
</Checkbox>
);
}
return (
<ListItem
{...getCoreProps(props)}
listStyleType={checked !== null ? "none" : "inherit"}
>
{checkbox || children}
</ListItem>
);
},
definition: () => null,
heading: (props: any) => {
const { children } = props;
return (
<Heading
my={4}
size="lg"
{...getCoreProps(props)}
fontFamily="'Rubik', sans-serif"
>
{children}
</Heading>
);
},
inlineCode: (props: any) => {
const { children } = props;
return <Code {...getCoreProps(props)}>{children}</Code>;
},
table: (props: any) => {
const { children } = props;
return <Table {...getCoreProps(props)}>{children}</Table>;
},
tableHead: (props: any) => {
const { children } = props;
return <TableHead {...getCoreProps(props)}>{children}</TableHead>;
},
tableBody: (props: any) => {
const { children } = props;
return <TableBody {...getCoreProps(props)}>{children}</TableBody>;
},
tableRow: (props: any) => {
const { children } = props;
return <TableRow {...getCoreProps(props)}>{children}</TableRow>;
},
tableCell: (props: any) => {
const { children, isHeader } = props;
if (isHeader) {
return <TableHeader {...getCoreProps(props)}>{children}</TableHeader>;
}
return <TableCell {...getCoreProps(props)}>{children}</TableCell>;
},
};
};
return (
<ReactMarkdown
source={value}
renderers={ChakraUIRenderer()}
disallowedTypes={["imageReference", "image"]}
/>
);
};
export default Markdown;

17
components/MyHead.tsx Normal file
View File

@@ -0,0 +1,17 @@
import Head from "next/head";
interface Props {
title: string;
}
const MyHead: React.FC<Props> = ({ title }) => {
const pageTitle = `${title} | sendou.ink`;
return (
<Head>
<title>{pageTitle}</title>
<meta property="og:title" content={pageTitle} key="title" />
</Head>
);
};
export default MyHead;

90
components/Table.tsx Normal file
View File

@@ -0,0 +1,90 @@
// https://github.com/chakra-ui/chakra-ui/issues/135#issuecomment-644878591
import { Box, BoxProps } from "@chakra-ui/core";
import { useMyTheme } from "lib/useMyTheme";
/**
* Represents tabular data - that is, information presented in a
* two-dimensional table comprised of rows and columns of cells containing
* data. It renders a `<table>` HTML element.
*/
export function Table(props: BoxProps) {
return (
<Box overflow="auto">
<Box as="table" width="full" {...props} />
</Box>
);
}
/**
* Defines a set of rows defining the head of the columns of the table. It
* renders a `<thead>` HTML element.
*/
export function TableHead(props: BoxProps) {
return <Box as="thead" {...props} />;
}
/**
* Defines a row of cells in a table. The row's cells can then be established
* using a mix of `TableCell` and `TableHeader` elements. It renders a `<tr>`
* HTML element.
*/
export function TableRow(props: BoxProps) {
const { secondaryBgColor } = useMyTheme();
return (
<Box
as="tr"
{...props}
_even={{ backgroundColor: secondaryBgColor }}
borderRadius="5px"
/>
);
}
export function TableHeader(props: BoxProps) {
const { themeColor } = useMyTheme();
return (
<>
<Box
as="th"
px="4"
py="3"
backgroundColor={themeColor}
textAlign="left"
fontSize="xs"
textColor="black"
textTransform="uppercase"
letterSpacing="wider"
lineHeight="1rem"
fontWeight="medium"
{...props}
/>
</>
);
}
/**
* Encapsulates a set of table rows, indicating that they comprise the body of
* the table. It renders a `<tbody>` HTML element.
*/
export function TableBody(props: BoxProps) {
return <Box as="tbody" {...props} />;
}
/**
* Defines a cell of a table that contains data. It renders a `<td>` HTML
* element.
*/
export function TableCell(props: BoxProps) {
return (
<Box
as="td"
px="4"
py="4"
lineHeight="1.25rem"
whiteSpace="nowrap"
{...props}
/>
);
}

View File

@@ -0,0 +1,50 @@
import englishToInternal from "lib/englishToInternal.json";
import { useTranslation } from "lib/useMockT";
import React from "react";
interface WeaponImageProps {
englishName: string;
size: "SMALL" | "SMEDIUM" | "MEDIUM" | "BIG";
asInlineBlock?: boolean;
noTitle?: boolean;
}
const sizeWhMap: Record<
"SMALL" | "SMEDIUM" | "MEDIUM" | "BIG",
string | undefined
> = {
SMALL: "32px",
SMEDIUM: "48px",
MEDIUM: "64px",
BIG: undefined,
};
const WeaponImage: React.FC<WeaponImageProps> = ({
englishName,
size,
asInlineBlock,
noTitle,
}) => {
const { t } = useTranslation();
const wh = sizeWhMap[size];
const key = englishName as keyof typeof englishToInternal;
const weaponInternal = englishToInternal[key];
return (
<>
<img
src={`https://raw.githubusercontent.com/Leanny/leanny.github.io/master/splat2/weapons/Wst_${weaponInternal}.png`}
alt={t(`game;${englishName}`)}
title={noTitle ? undefined : t(`game;${englishName}`)}
style={{
width: wh,
height: wh,
display: asInlineBlock ? "inline-block" : undefined,
}}
/>
</>
);
};
export default WeaponImage;

806
lib/englishToInternal.json Normal file
View File

@@ -0,0 +1,806 @@
{
"Grizzco Charger": "Charger_CoopSpark",
"Goo Tuber": "Charger_Keeper_00",
"Custom Goo Tuber": "Charger_Keeper_01",
"Bamboozler 14 Mk I": "Charger_Light_00",
"Bamboozler 14 Mk II": "Charger_Light_01",
"Bamboozler 14 Mk III": "Charger_Light_02",
"E-liter 4K Scope": "Charger_LongScope_00",
"Custom E-liter 4K Scope": "Charger_LongScope_01",
"E-liter 4K": "Charger_Long_00",
"Custom E-liter 4K": "Charger_Long_01",
"Hero Charger": "Charger_MissionNormalLv1",
"Splatterscope": "Charger_NormalScope_00",
"Firefin Splatterscope": "Charger_NormalScope_01",
"Kensa Splatterscope": "Charger_NormalScope_02",
"Splat Charger": "Charger_Normal_00",
"Firefin Splat Charger": "Charger_Normal_01",
"Kensa Charger": "Charger_Normal_02",
"Hero Charger Replica": "Charger_Normal_H",
"Classic Squiffer": "Charger_Quick_00",
"New Squiffer": "Charger_Quick_01",
"Fresh Squiffer": "Charger_Quick_02",
"School Uniform": "Clt_AMB000",
"Samurai Jacket": "Clt_AMB001",
"Power Armor": "Clt_AMB002",
"School Cardigan": "Clt_AMB003",
"Squinja Suit": "Clt_AMB004",
"Power Armor Mk I": "Clt_AMB005",
"Pearlescent Hoodie": "Clt_AMB006",
"Marinated Top": "Clt_AMB007",
"Enchanted Robe": "Clt_AMB008",
"Steel Platemail": "Clt_AMB009",
"Fresh Fish Gloves": "Clt_AMB010",
"Squiddor Polo": "Clt_COP100",
"Anchor Life Vest": "Clt_COP101",
"Juice Parka": "Clt_COP102",
"Garden Gear": "Clt_COP103",
"Crustwear XXL": "Clt_COP104",
"North-Country Parka": "Clt_COP105",
"Octoleet Armor": "Clt_COP106",
"Record Shop Look EP": "Clt_COP107",
"Dev Uniform": "Clt_COP108",
"Office Attire": "Clt_COP109",
"SRL Coat": "Clt_COP110",
"Mecha Body - AKM": "Clt_CRC000",
"Basic Tee": "Clt_FST001",
"Fresh Octo Tee": "Clt_FST002",
"Splatfest Tee": "Clt_HAP001",
"Olive Ski Jacket": "Clt_JKT000",
"Takoroka Nylon Vintage": "Clt_JKT001",
"Berry Ski Jacket": "Clt_JKT002",
"Varsity Jacket": "Clt_JKT003",
"School Jersey": "Clt_JKT004",
"Green Cardigan": "Clt_JKT005",
"Black Inky Rider": "Clt_JKT006",
"White Inky Rider": "Clt_JKT007",
"Retro Gamer Jersey": "Clt_JKT008",
"Orange Cardigan": "Clt_JKT009",
"Forge Inkling Parka": "Clt_JKT010",
"Forge Octarian Jacket": "Clt_JKT011",
"Blue Sailor Suit": "Clt_JKT012",
"White Sailor Suit": "Clt_JKT013",
"Squid Satin Jacket": "Clt_JKT014",
"Zapfish Satin Jacket": "Clt_JKT015",
"Krak-On 528": "Clt_JKT016",
"Chilly Mountain Coat": "Clt_JKT017",
"Takoroka Windcrusher": "Clt_JKT018",
"Matcha Down Jacket": "Clt_JKT019",
"FA-01 Jacket": "Clt_JKT020",
"FA-01 Reversed": "Clt_JKT021",
"Pullover Coat": "Clt_JKT022",
"Kensa Coat": "Clt_JKT023",
"Birded Corduroy Jacket": "Clt_JKT024",
"Deep-Octo Satin Jacket": "Clt_JKT025",
"Zekko Redleaf Coat": "Clt_JKT026",
"Eggplant Mountain Coat": "Clt_JKT027",
"Zekko Jade Coat": "Clt_JKT028",
"Light Bomber Jacket": "Clt_JKT029",
"Brown FA-11 Bomber": "Clt_JKT030",
"Gray FA-11 Bomber": "Clt_JKT031",
"Milky Eminence Jacket": "Clt_JKT032",
"Navy Eminence Jacket": "Clt_JKT033",
"Tumeric Zekko Coat": "Clt_JKT034",
"Custom Painted F-3 ": "Clt_JKT035",
"Dark Bomber Jacket": "Clt_JKT036",
"Moist Ghillie Suit": "Clt_JKT037",
"White Leather F-3": "Clt_JKT038",
"Chili-Pepper Ski Jacket": "Clt_JKT039",
"Whale-Knit Sweater": "Clt_JKT040",
"Rockin' Leather Jacket": "Clt_JKT041",
"Kung-Fu Zip-Up": "Clt_JKT042",
"Panda Kung-Fu Zip-Up": "Clt_JKT043",
"Sennyu Suit": "Clt_JKT044",
"Hero Jacket Replica": "Clt_MSN000",
"Armor Jacket Replica": "Clt_MSN004",
"Hero Hoodie Replica": "Clt_MSN101",
"Neo Octoling Armor": "Clt_MSN104",
"Null Armor Replica": "Clt_MSN105",
"Old-Timey Clothes": "Clt_MSN106",
"Shrimp-Pink Polo": "Clt_PLO000",
"Striped Rugby": "Clt_PLO001",
"Tricolor Rugby": "Clt_PLO002",
"Sage Polo": "Clt_PLO003",
"Black Polo": "Clt_PLO004",
"Cycling Shirt": "Clt_PLO005",
"Cycle King Jersey": "Clt_PLO006",
"Slipstream United": "Clt_PLO007",
"FC Albacore": "Clt_PLO008",
"Camo Zip Hoodie": "Clt_PRK000",
"Green Zip Hoodie": "Clt_PRK001",
"Zekko Hoodie": "Clt_PRK002",
"Shirt with Blue Hoodie": "Clt_PRK004",
"Grape Hoodie": "Clt_PRK005",
"Gray Hoodie": "Clt_PRK006",
"Hothouse Hoodie": "Clt_PRK007",
"Pink Hoodie": "Clt_PRK008",
"Olive Zekko Parka": "Clt_PRK009",
"Black Hoodie": "Clt_PRK010",
"Octo Support Hoodie": "Clt_PRK011",
"Octoling Armor": "Clt_RVL000",
"Lumberjack Shirt": "Clt_SHT000",
"Rodeo Shirt": "Clt_SHT001",
"Green-Check Shirt": "Clt_SHT002",
"White Shirt": "Clt_SHT003",
"Urchins Jersey": "Clt_SHT004",
"Aloha Shirt": "Clt_SHT005",
"Red-Check Shirt": "Clt_SHT006",
"Baby-Jelly Shirt": "Clt_SHT007",
"Baseball Jersey": "Clt_SHT008",
"Gray Mixed Shirt": "Clt_SHT009",
"Vintage Check Shirt": "Clt_SHT010",
"Round-Collar Shirt": "Clt_SHT011",
"Logo Aloha Shirt": "Clt_SHT012",
"Striped Shirt": "Clt_SHT013",
"Linen Shirt": "Clt_SHT014",
"Shirt & Tie": "Clt_SHT015",
"Hula Punk Shirt": "Clt_SHT017",
"Octobowler Shirt": "Clt_SHT018",
"Inkfall Shirt": "Clt_SHT019",
"Crimson Parashooter": "Clt_SHT020",
"Baby-Jelly Shirt & Tie": "Clt_SHT021",
"Prune Parashooter": "Clt_SHT022",
"Red Hula Punk with Tie": "Clt_SHT023",
"Chili Octo Aloha": "Clt_SHT024",
"Annaki Flannel Hoodie": "Clt_SHT025",
"Ink-Wash Shirt": "Clt_SHT026",
"Dots-On-Dots Shirt": "Clt_SHT027",
"Toni K. Baseball Jersey": "Clt_SHT028",
"Online Jersey": "Clt_SHT029",
"Gray College Sweat": "Clt_SWT000",
"Squidmark Sweat": "Clt_SWT001",
"Retro Sweat": "Clt_SWT002",
"Firefin Navy Sweat": "Clt_SWT003",
"Navy College Sweat": "Clt_SWT004",
"Reel Sweat": "Clt_SWT005",
"Anchor Sweat": "Clt_SWT006",
"Negative Longcuff Sweater": "Clt_SWT007",
"Short Knit Layers": "Clt_SWT008",
"Positive Longcuff Sweater": "Clt_SWT009",
"Annaki Blue Cuff": "Clt_SWT010",
"Annaki Yellow Cuff": "Clt_SWT011",
"Annaki Red Cuff": "Clt_SWT012",
"N-Pacer Sweat": "Clt_SWT013",
"Octarian Retro": "Clt_SWT014",
"Takoroka Jersey": "Clt_SWT015",
"White Striped LS": "Clt_TEL000",
"Black LS": "Clt_TEL001",
"Purple Camo LS": "Clt_TEL002",
"Navy Striped LS": "Clt_TEL003",
"Zekko Baseball LS": "Clt_TEL004",
"Varsity Baseball LS": "Clt_TEL005",
"Black Baseball LS": "Clt_TEL006",
"White Baseball LS": "Clt_TEL007",
"White LS": "Clt_TEL008",
"Green Striped LS": "Clt_TEL009",
"Squidmark LS": "Clt_TEL010",
"Zink LS": "Clt_TEL011",
"Striped Peaks LS": "Clt_TEL012",
"Pink Easy-Stripe Shirt": "Clt_TEL013",
"Inkopolis Squaps Jersey": "Clt_TEL014",
"Annaki Drive Tee ": "Clt_TEL015",
"Lime Easy-Stripe Shirt": "Clt_TEL016",
"Annaki Evolution Tee": "Clt_TEL017",
"Zekko Long Carrot Tee": "Clt_TEL018",
"Zekko Long Radish Tee": "Clt_TEL019",
"Black Cuttlegear LS": "Clt_TEL020",
"Takoroka Crazy Baseball LS": "Clt_TEL021",
"Red Cuttlegear LS": "Clt_TEL022",
"Khaki 16-Bit FishFry": "Clt_TEL023",
"Blue 16-Bit FishFry": "Clt_TEL024",
"White Tee": "Clt_TES000",
"Black Squideye": "Clt_TES001",
"Sky-Blue Squideye": "Clt_TES003",
"Rockenberg White": "Clt_TES004",
"Rockenberg Black": "Clt_TES005",
"Black Tee": "Clt_TES006",
"Sunny-Day Tee": "Clt_TES007",
"Rainy-Day Tee": "Clt_TES008",
"Reggae Tee": "Clt_TES009",
"Fugu Tee": "Clt_TES010",
"Mint Tee": "Clt_TES011",
"Grape Tee": "Clt_TES012",
"Red Vector Tee": "Clt_TES013",
"Gray Vector Tee": "Clt_TES014",
"Blue Peaks Tee": "Clt_TES015",
"Ivory Peaks Tee": "Clt_TES016",
"Squid-Stitch Tee": "Clt_TES017",
"Pirate-Stripe Tee": "Clt_TES018",
"Sailor-Stripe Tee": "Clt_TES019",
"White 8-Bit FishFry": "Clt_TES020",
"Black 8-Bit FishFry": "Clt_TES021",
"White Anchor Tee": "Clt_TES022",
"Black Anchor Tee": "Clt_TES023",
"Carnivore Tee": "Clt_TES026",
"Pearl Tee": "Clt_TES027",
"Octo Tee": "Clt_TES028",
"Herbivore Tee": "Clt_TES029",
"Black V-Neck Tee": "Clt_TES030",
"White Deca Logo Tee": "Clt_TES031",
"Half-Sleeve Sweater": "Clt_TES032",
"King Jersey": "Clt_TES033",
"Gray 8-Bit FishFry": "Clt_TES034",
"White V-Neck Tee": "Clt_TES035",
"White Urchin Rock Tee": "Clt_TES036",
"Black Urchin Rock Tee": "Clt_TES037",
"Wet Floor Band Tee": "Clt_TES038",
"Squid Squad Band Tee": "Clt_TES039",
"Navy Deca Logo Tee": "Clt_TES040",
"Mister Shrug Tee": "Clt_TES041",
"Chirpy Chips Band Tee": "Clt_TES042",
"Hightide Era Band Tee": "Clt_TES043",
"Red V-Neck Limited Tee": "Clt_TES044",
"Green V-Neck Limited Tee": "Clt_TES045",
"\u03c9-3 Tee": "Clt_TES046",
"Annaki Polpo-Pic Tee": "Clt_TES047",
"Firewave Tee": "Clt_TES048",
"Takoroka Galactic Tie Dye": "Clt_TES049",
"Takoroka Rainbow Tie Dye": "Clt_TES050",
"Missus Shrug Tee": "Clt_TES051",
"League Tee": "Clt_TES052",
"Friend Tee": "Clt_TES053",
"Tentatek Slogan Tee": "Clt_TES054",
"Icewave Tee": "Clt_TES055",
"Octoking HK Jersey": "Clt_TES056",
"Dakro Nana Tee": "Clt_TES057",
"Dakro Golden Tee": "Clt_TES058",
"Black Velour Octoking Tee ": "Clt_TES059",
"Green Velour Octoking Tee": "Clt_TES060",
"SWC Logo Tee": "Clt_TES061",
"White Layered LS": "Clt_TLY000",
"Yellow Layered LS": "Clt_TLY001",
"Camo Layered LS": "Clt_TLY002",
"Black Layered LS": "Clt_TLY003",
"Zink Layered LS": "Clt_TLY004",
"Layered Anchor LS": "Clt_TLY005",
"Choco Layered LS": "Clt_TLY006",
"Part-Time Pirate": "Clt_TLY007",
"Layered Vector LS": "Clt_TLY008",
"Green Tee": "Clt_TLY009",
"Red Tentatek Tee": "Clt_TLY010",
"Blue Tentatek Tee": "Clt_TLY011",
"Octo Layered LS": "Clt_TLY012",
"Squid Yellow Layered LS": "Clt_TLY013",
"B-ball Jersey (Home)": "Clt_TNK000",
"B-ball Jersey (Away)": "Clt_TNK001",
"White King Tank": "Clt_TNK003",
"Slash King Tank": "Clt_TNK004",
"Navy King Tank": "Clt_TNK005",
"Lob-Stars Jersey": "Clt_TNK006",
"Mountain Vest": "Clt_VST000",
"Forest Vest": "Clt_VST001",
"Dark Urban Vest": "Clt_VST002",
"Yellow Urban Vest": "Clt_VST003",
"Squid-Pattern Waistcoat": "Clt_VST004",
"Squidstar Waistcoat": "Clt_VST005",
"Fishing Vest": "Clt_VST007",
"Front Zip Vest": "Clt_VST008",
"Silver Tentatek Vest": "Clt_VST009",
"Comeback": "ComeBack",
"Haunt": "DeathMarking",
"Durability": "Defence",
"Last-Ditch Effort": "EndAllUp",
"Ability Doubler": "ExSkillDouble",
"Respawn Punisher": "Exorcist",
"Impact": "Explosion",
"Squid Beakon": "Flag",
"Port Mackerel": "Fld_Amida01_Vss",
"Camp Triggerfish": "Fld_Athletic01_Vss",
"Wahoo World": "Fld_Carousel00_Vss",
"Goby Arena": "Fld_Court00_Vss",
"Shifty Station": "Fld_Deli_Vss",
"The Reef": "Fld_Ditch02_Vss",
"Snapper Canal": "Fld_Kawa00_Vss",
"MakoMart": "Fld_Line00_Vss",
"Kelp Dome": "Fld_Maze02_Vss",
"Skipper Pavilion": "Fld_Mirror00_Vss",
"Sturgeon Shipyard": "Fld_Nagasaki00_Vss",
"New Albacore Hotel": "Fld_Nakasu00_Vss",
"Ancho-V Games": "Fld_Office01_Vss",
"Manta Maria": "Fld_Pillar00_Vss",
"Piranha Pit": "Fld_Quarry01_Vss",
"Lost Outpost": "Fld_Shakehouse00_Cop",
"Salmonid Smokeyard": "Fld_Shakelift00_Cop",
"Ruins of Ark Polaris": "Fld_Shakeride00_Cop",
"Marooner's Bay": "Fld_Shakeship00_Cop",
"Spawning Grounds": "Fld_Shakeup00_Cop",
"Blackbelly Skatepark": "Fld_SkatePark02_Vss",
"Shellendorf Institute": "Fld_Tunnel00_Vss",
"Moray Towers": "Fld_Tuzura00_Vss",
"Musselforge Fitness": "Fld_Unduck00_Vss",
"Arowana Mall": "Fld_UpDown01_Vss",
"Inkblot Art Academy": "Fld_Upland00_Vss",
"Starfish Mainstage": "Fld_Venue02_Vss",
"Walleye Warehouse": "Fld_Warehouse01_Vss",
"Humpback Pump Track": "Fld_Wave00_Vss",
"Eminence Cuff": "Hed_ACC001",
"Squid Hairclip": "Hed_AMB000",
"Samurai Helmet": "Hed_AMB001",
"Power Mask": "Hed_AMB002",
"Squid Clip-Ons": "Hed_AMB003",
"Squinja Mask": "Hed_AMB004",
"Power Mask Mk I": "Hed_AMB005",
"Pearlescent Crown": "Hed_AMB006",
"Marinated Headphones": "Hed_AMB007",
"Enchanted Hat": "Hed_AMB008",
"Steel Helm": "Hed_AMB009",
"Fresh Fish Head": "Hed_AMB010",
"Urchins Cap": "Hed_CAP000",
"Lightweight Cap": "Hed_CAP001",
"Takoroka Mesh": "Hed_CAP002",
"Streetstyle Cap": "Hed_CAP003",
"Squid-Stitch Cap": "Hed_CAP004",
"Squidvader Cap": "Hed_CAP005",
"Camo Mesh": "Hed_CAP006",
"Five-Panel Cap": "Hed_CAP007",
"Zekko Mesh": "Hed_CAP008",
"Backwards Cap": "Hed_CAP009",
"Two-Stripe Mesh": "Hed_CAP010",
"Jet Cap": "Hed_CAP011",
"Cycling Cap": "Hed_CAP012",
"Cycle King Cap": "Hed_CAP014",
"Legendary Cap": "Hed_CAP015",
"Long-Billed Cap": "Hed_CAP018",
"King Flip Mesh": "Hed_CAP019",
"Hickory Work Cap": "Hed_CAP020",
"Woolly Urchins Classic": "Hed_CAP021",
"Jellyvader Cap": "Hed_CAP023",
"House-Tag Denim Cap": "Hed_CAP024",
"Blowfish Newsie": "Hed_CAP025",
"Do-Rag, Cap, & Glasses": "Hed_CAP026",
"Pilot Hat": "Hed_CAP027",
"Headlamp Helmet": "Hed_COP100",
"Dust Blocker 2000": "Hed_COP101",
"Welding Mask": "Hed_COP102",
"Beekeeper Hat": "Hed_COP103",
"Octoleet Goggles": "Hed_COP104",
"Cap of Legend": "Hed_COP105",
"Oceanic Hard Hat": "Hed_COP106",
"Worker's Head Towel": "Hed_COP107",
"Worker's Cap": "Hed_COP108",
"Sailor Cap": "Hed_COP109",
"Mecha Head - HTR": "Hed_CRC000",
"Retro Specs": "Hed_EYE000",
"Splash Goggles": "Hed_EYE001",
"Pilot Goggles": "Hed_EYE002",
"Tinted Shades": "Hed_EYE003",
"Black Arrowbands": "Hed_EYE004",
"Snorkel Mask": "Hed_EYE005",
"White Arrowbands": "Hed_EYE006",
"Fake Contacts": "Hed_EYE007",
"18K Aviators": "Hed_EYE008",
"Full Moon Glasses": "Hed_EYE009",
"Octoglasses": "Hed_EYE010",
"Half-Rim Glasses": "Hed_EYE011",
"Double Egg Shades": "Hed_EYE012",
"Zekko Cap": "Hed_EYE013",
"SV925 Circle Shades": "Hed_EYE014",
"Annaki Beret & Glasses": "Hed_EYE015",
"Swim Goggles": "Hed_EYE016",
"Ink-Guard Goggles": "Hed_EYE017",
"Toni Kensa Goggles": "Hed_EYE018",
"Sennyu Goggles": "Hed_EYE019",
"Sennyu Specs": "Hed_EYE020",
"White Headband": "Hed_FST000",
"Kyonshi Hat": "Hed_HAP000",
"Li'l Devil Horns": "Hed_HAP001",
"Hockey Mask": "Hed_HAP002",
"Anglerfish Mask": "Hed_HAP003",
"Festive Party Cone": "Hed_HAP004",
"New Year's Glasses DX": "Hed_HAP005",
"Twisty Headband": "Hed_HAP006",
"Eel-Cake Hat": "Hed_HAP007",
"Purple Novelty Visor": "Hed_HAP008",
"Green Novelty Visor": "Hed_HAP009",
"Orange Novelty Visor": "Hed_HAP010",
"Pink Novelty Visor": "Hed_HAP011",
"Jetflame Crest": "Hed_HAP012",
"Fierce Fishskull": "Hed_HAP013",
"Hivemind Antenna": "Hed_HAP014",
"Eye of Justice": "Hed_HAP015",
"Safari Hat": "Hed_HAT000",
"Jungle Hat": "Hed_HAT001",
"Camping Hat": "Hed_HAT002",
"Blowfish Bell Hat": "Hed_HAT003",
"Bamboo Hat": "Hed_HAT004",
"Straw Boater": "Hed_HAT005",
"Classic Straw Boater": "Hed_HAT006",
"Treasure Hunter": "Hed_HAT007",
"Bucket Hat": "Hed_HAT008",
"Patched Hat": "Hed_HAT009",
"Tulip Parasol": "Hed_HAT010",
"Fugu Bell Hat": "Hed_HAT011",
"Seashell Bamboo Hat": "Hed_HAT012",
"Hothouse Hat": "Hed_HAT013",
"Mountie Hat": "Hed_HAT014",
"B-ball Headband": "Hed_HBD001",
"Squash Headband": "Hed_HBD002",
"Tennis Headband": "Hed_HBD003",
"Jogging Headband": "Hed_HBD004",
"Soccer Headband": "Hed_HBD005",
"FishFry Biscuit Bandana": "Hed_HBD007",
"Black FishFry Bandana": "Hed_HBD008",
"Studio Headphones": "Hed_HDP000",
"Designer Headphones": "Hed_HDP001",
"Noise Cancelers": "Hed_HDP002",
"Squidfin Hook Cans": "Hed_HDP003",
"Squidlife Headphones": "Hed_HDP004",
"Studio Octophones": "Hed_HDP005",
"Sennyu Headphones": "Hed_HDP006",
"Bike Helmet": "Hed_MET000",
"Stealth Goggles": "Hed_MET002",
"Tentacles Helmet": "Hed_MET003",
"Skate Helmet": "Hed_MET004",
"Visor Skate Helmet": "Hed_MET005",
"MTB Helmet": "Hed_MET006",
"Hockey Helmet": "Hed_MET007",
"Matte Bike Helmet": "Hed_MET008",
"Octo Tackle Helmet Deco": "Hed_MET009",
"Moist Ghillie Helmet": "Hed_MET010",
"Deca Tackle Visor Helmet": "Hed_MET011",
"Gas Mask": "Hed_MSK000",
"Paintball Mask": "Hed_MSK001",
"Paisley Bandana": "Hed_MSK002",
"Skull Bandana": "Hed_MSK003",
"Painter's Mask": "Hed_MSK004",
"Annaki Mask": "Hed_MSK005",
"Octoking Facemask": "Hed_MSK006",
"Squid Facemask": "Hed_MSK007",
"Firefin Facemask": "Hed_MSK008",
"King Facemask": "Hed_MSK009",
"Motocross Nose Guard": "Hed_MSK010",
"Forge Mask": "Hed_MSK011",
"Digi-Camo Forge Mask": "Hed_MSK012",
"Koshien Bandana": "Hed_MSK013",
"Hero Headset Replica": "Hed_MSN000",
"Armor Helmet Replica": "Hed_MSN004",
"Hero Headphones Replica": "Hed_MSN101",
"Octoling Shades": "Hed_MSN104",
"Null Visor Replica": "Hed_MSN105",
"Old-Timey Hat": "Hed_MSN106",
"Conductor Cap": "Hed_MSN107",
"Golden Toothpick": "Hed_MSN108",
"Bobble Hat": "Hed_NCP000",
"Short Beanie": "Hed_NCP001",
"Striped Beanie": "Hed_NCP002",
"Sporty Bobble Hat": "Hed_NCP003",
"Special Forces Beret": "Hed_NCP004",
"Squid Nordic": "Hed_NCP005",
"Sennyu Bon Bon Beanie": "Hed_NCP006",
"Knitted Hat": "Hed_NCP008",
"Annaki Beret": "Hed_NCP009",
"Yamagiri Beanie": "Hed_NCP010",
"Sneaky Beanie": "Hed_NCP011",
"Octoling Goggles": "Hed_RVL000",
"Golf Visor": "Hed_VIS000",
"FishFry Visor": "Hed_VIS001",
"Sun Visor": "Hed_VIS002",
"Takoroka Visor": "Hed_VIS003",
"Face Visor": "Hed_VIS004",
"Run Speed Up": "HumanMove_Up",
"Ink Recovery Up": "InkRecovery_Up",
"Inkjet": "Jetpack",
"Quick Super Jump": "JumpTime_Save",
"Curling-Bomb Launcher": "LauncherCurling",
"Burst-Bomb Launcher": "LauncherQuick",
"Autobomb Launcher": "LauncherRobo",
"Splat-Bomb Launcher": "LauncherSplash",
"Suction-Bomb Launcher": "LauncherSuction",
"Ink Saver (Main)": "MainInk_Save",
"Main Power Up": "MarkingTime_Reduction",
"Tenacity": "MinorityUp",
"Cannon": "MissileMissilePosition",
"Mobility": "Mobility",
"Object Shredder": "ObjectEffect_Up",
"Ink Resistance Up": "OpInkEffect_Reduction",
"Ink Speed": "PaintSpeed",
"Point Sensor": "PointSensor",
"Toxic Mist": "PoisonFog",
"Damage": "Power",
"Ink Storm": "RainCloud",
"Range": "Range",
"Special Saver": "RespawnSpecialGauge_Save",
"Quick Respawn": "RespawnTime_Save",
"Inkbrush": "Roller_BrushMini_00",
"Inkbrush Nouveau": "Roller_BrushMini_01",
"Permanent Inkbrush": "Roller_BrushMini_02",
"Octobrush": "Roller_BrushNormal_00",
"Octobrush Nouveau": "Roller_BrushNormal_01",
"Kensa Octobrush": "Roller_BrushNormal_02",
"Herobrush Replica": "Roller_BrushNormal_H",
"Carbon Roller": "Roller_Compact_00",
"Carbon Roller Deco": "Roller_Compact_01",
"Dynamo Roller": "Roller_Heavy_00",
"Gold Dynamo Roller": "Roller_Heavy_01",
"Kensa Dynamo Roller": "Roller_Heavy_02",
"Flingza Roller": "Roller_Hunter_00",
"Foil Flingza Roller": "Roller_Hunter_01",
"Herobrush": "Roller_MissionBrushNormalLv1",
"Hero Roller": "Roller_MissionNormalLv1",
"Splat Roller": "Roller_Normal_00",
"Krak-On Splat Roller": "Roller_Normal_01",
"Kensa Splat Roller": "Roller_Normal_02",
"Hero Roller Replica": "Roller_Normal_H",
"Rainmaker": "cVgl_2L",
"Splash Wall": "Shield",
"Grizzco Blaster": "Shooter_BlasterCoopBurst",
"Rapid Blaster Pro": "Shooter_BlasterLightLong_00",
"Rapid Blaster Pro Deco": "Shooter_BlasterLightLong_01",
"Clash Blaster": "Shooter_BlasterLightShort_00",
"Clash Blaster Neo": "Shooter_BlasterLightShort_01",
"Rapid Blaster": "Shooter_BlasterLight_00",
"Rapid Blaster Deco": "Shooter_BlasterLight_01",
"Kensa Rapid Blaster": "Shooter_BlasterLight_02",
"Range Blaster": "Shooter_BlasterLong_00",
"Custom Range Blaster": "Shooter_BlasterLong_01",
"Grim Range Blaster": "Shooter_BlasterLong_02",
"Blaster": "Shooter_BlasterMiddle_00",
"Custom Blaster": "Shooter_BlasterMiddle_01",
"Hero Blaster Replica": "Shooter_BlasterMiddle_H",
"Hero Blaster": "Shooter_BlasterMissionMiddleLv1",
"Luna Blaster": "Shooter_BlasterShort_00",
"Luna Blaster Neo": "Shooter_BlasterShort_01",
"Kensa Luna Blaster": "Shooter_BlasterShort_02",
"Aerospray MG": "Shooter_Blaze_00",
"Aerospray RG": "Shooter_Blaze_01",
"Aerospray PG": "Shooter_Blaze_02",
"Splattershot Pro": "Shooter_Expert_00",
"Forge Splattershot Pro": "Shooter_Expert_01",
"Kensa Splattershot Pro": "Shooter_Expert_02",
"Splattershot Jr.": "Shooter_First_00",
"Custom Splattershot Jr.": "Shooter_First_01",
"Kensa Splattershot Jr.": "Shooter_First_02",
"Squeezer": "Shooter_Flash_00",
"Foil Squeezer": "Shooter_Flash_01",
".52 Gal": "Shooter_Gravity_00",
".52 Gal Deco": "Shooter_Gravity_01",
"Kensa .52 Gal": "Shooter_Gravity_02",
".96 Gal": "Shooter_Heavy_00",
".96 Gal Deco": "Shooter_Heavy_01",
"Jet Squelcher": "Shooter_Long_00",
"Custom Jet Squelcher": "Shooter_Long_01",
"Hero Shot": "Shooter_MissionNormalLv2",
"Splattershot": "Shooter_Normal_00",
"Tentatek Splattershot": "Shooter_Normal_01",
"Kensa Splattershot": "Shooter_Normal_02",
"Hero Shot Replica": "Shooter_Normal_H",
"Octo Shot Replica": "Shooter_Normal_Oct",
"Splash-o-matic": "Shooter_Precision_00",
"Neo Splash-o-matic": "Shooter_Precision_01",
"N-ZAP '85": "Shooter_QuickMiddle_00",
"N-ZAP '89": "Shooter_QuickMiddle_01",
"N-ZAP '83": "Shooter_QuickMiddle_02",
"Sploosh-o-matic": "Shooter_Short_00",
"Neo Sploosh-o-matic": "Shooter_Short_01",
"Sploosh-o-matic 7": "Shooter_Short_02",
"H-3 Nozzlenose": "Shooter_TripleMiddle_00",
"H-3 Nozzlenose D": "Shooter_TripleMiddle_01",
"Cherry H-3 Nozzlenose": "Shooter_TripleMiddle_02",
"L-3 Nozzlenose": "Shooter_TripleQuick_00",
"L-3 Nozzlenose D": "Shooter_TripleQuick_01",
"Kensa L-3 Nozzlenose": "Shooter_TripleQuick_02",
"School Shoes": "Shs_AMB000",
"Samurai Shoes": "Shs_AMB001",
"Power Boots": "Shs_AMB002",
"Fringed Loafers": "Shs_AMB003",
"Squinja Boots": "Shs_AMB004",
"Power Boots Mk I": "Shs_AMB005",
"Pearlescent Kicks": "Shs_AMB006",
"Marinated Slip-Ons": "Shs_AMB007",
"Enchanted Boots": "Shs_AMB008",
"Steel Greaves": "Shs_AMB009",
"Fresh Fish Feet": "Shs_AMB010",
"Moto Boots": "Shs_BOT000",
"Tan Work Boots": "Shs_BOT001",
"Red Work Boots": "Shs_BOT002",
"Blue Moto Boots": "Shs_BOT003",
"Green Rain Boots": "Shs_BOT004",
"Acerola Rain Boots": "Shs_BOT005",
"Punk Whites": "Shs_BOT006",
"Punk Cherries": "Shs_BOT007",
"Punk Yellows": "Shs_BOT008",
"Bubble Rain Boots": "Shs_BOT009",
"Snowy Down Boots": "Shs_BOT010",
"Icy Down Boots": "Shs_BOT011",
"Hunting Boots": "Shs_BOT012",
"Punk Blacks": "Shs_BOT013",
"Deepsea Leather Boots": "Shs_BOT014",
"Moist Ghillie Boots": "Shs_BOT015",
"Annaki Arachno Boots": "Shs_BOT016",
"New-Leaf Leather Boots": "Shs_BOT017",
"Tea-Green Hunting Boots": "Shs_BOT018",
"Blueberry Casuals": "Shs_CFS000",
"Plum Casuals": "Shs_CFS001",
"Angry Rain Boots": "Shs_COP101",
"Non-slip Senseis": "Shs_COP102",
"Octoleet Boots": "Shs_COP103",
"Friendship Bracelet": "Shs_COP104",
"Flipper Floppers": "Shs_COP105",
"Wooden Sandals": "Shs_COP106",
"Mecha Legs - LBS": "Shs_CRC000",
"Cream Basics": "Shs_FST000",
"Pearl-Scout Lace-Ups": "Shs_HAP000",
"Pearlescent Squidkid IV": "Shs_HAP001",
"Pearl Punk Crowns": "Shs_HAP002",
"New-Day Arrows": "Shs_HAP003",
"Marination Lace-Ups": "Shs_HAP004",
"Rina Squidkid IV": "Shs_HAP005",
"Trooper Power Stripes": "Shs_HAP006",
"Midnight Slip-Ons": "Shs_HAP007",
"White Kicks": "Shs_LTS000",
"Cherry Kicks": "Shs_LTS001",
"Turquoise Kicks": "Shs_LTS002",
"Squink Wingtips": "Shs_LTS003",
"Roasted Brogues": "Shs_LTS004",
"Kid Clams": "Shs_LTS005",
"Smoky Wingtips": "Shs_LTS006",
"Navy Red-Soled Wingtips": "Shs_LTS007",
"Gray Yellow-Soled Wingtips": "Shs_LTS008",
"Inky Kid Clams": "Shs_LTS009",
"Annaki Habaneros": "Shs_LTS010",
"Annaki Tigers": "Shs_LTS011",
"Sennyu Inksoles": "Shs_LTS012",
"Hero Runner Replicas": "Shs_MSN000",
"Armor Boot Replicas": "Shs_MSN004",
"Hero Snowboots Replicas": "Shs_MSN101",
"Neo Octoling Boots": "Shs_MSN104",
"Null Boots Replica": "Shs_MSN105",
"Old-Timey Shoes": "Shs_MSN106",
"Octoling Boots": "Shs_RVL000",
"Oyster Clogs": "Shs_SDL000",
"Choco Clogs": "Shs_SDL001",
"Neon Delta Straps": "Shs_SDL003",
"Black Flip-Flops": "Shs_SDL004",
"Snow Delta Straps": "Shs_SDL005",
"Luminous Delta Straps": "Shs_SDL006",
"Red FishFry Sandals": "Shs_SDL007",
"Yellow FishFry Sandals": "Shs_SDL008",
"Musselforge Flip-Flops": "Shs_SDL009",
"Red Hi-Horses": "Shs_SHI000",
"Zombie Hi-Horses": "Shs_SHI001",
"Cream Hi-Tops": "Shs_SHI002",
"Purple Hi-Horses": "Shs_SHI003",
"Hunter Hi-Tops": "Shs_SHI004",
"Red Hi-Tops": "Shs_SHI005",
"Gold Hi-Horses": "Shs_SHI006",
"Shark Moccasins": "Shs_SHI008",
"Mawcasins": "Shs_SHI009",
"Chocolate Dakroniks": "Shs_SHI010",
"Mint Dakroniks": "Shs_SHI011",
"Black Dakroniks": "Shs_SHI012",
"Piranha Moccasins": "Shs_SHI013",
"White Norimaki 750s": "Shs_SHI014",
"Black Norimaki 750s": "Shs_SHI015",
"Sunset Orca Hi-Tops": "Shs_SHI016",
"Red & Black Squidkid IV": "Shs_SHI017",
"Blue & Black Squidkid IV": "Shs_SHI018",
"Gray Sea-Slug Hi-Tops": "Shs_SHI019",
"Orca Hi-Tops": "Shs_SHI020",
"Milky Enperrials": "Shs_SHI021",
"Navy Enperrials": "Shs_SHI022",
"Amber Sea Slug Hi-Tops": "Shs_SHI023",
"Yellow Iromaki 750s": "Shs_SHI024",
"Red & White Squidkid V": "Shs_SHI025",
"Honey & Orange Squidkid V": "Shs_SHI026",
"Sun & Shade Squidkid IV": "Shs_SHI027",
"Orca Woven Hi-Tops": "Shs_SHI028",
"Green Iromaki 750s": "Shs_SHI029",
"Purple Iromaki 750s": "Shs_SHI030",
"Red Iromaki 750s": "Shs_SHI031",
"Blue Iromaki 750s": "Shs_SHI032",
"Orange Iromaki 750s": "Shs_SHI033",
"Red Power Stripes": "Shs_SHI034",
"Blue Power Stripes": "Shs_SHI035",
"Toni Kensa Black Hi-Tops": "Shs_SHI036",
"Sesame Salt 270s": "Shs_SHI037",
"Black & Blue Squidkid V": "Shs_SHI038",
"Orca Passion Hi-Tops": "Shs_SHI039",
"Truffle Canvas Hi-Tops": "Shs_SHI040",
"Online Squidkid V": "Shs_SHI041",
"Pink Trainers": "Shs_SHT000",
"Orange Arrows": "Shs_SHT001",
"Neon Sea Slugs": "Shs_SHT002",
"White Arrows": "Shs_SHT003",
"Cyan Trainers": "Shs_SHT004",
"Blue Sea Slugs": "Shs_SHT005",
"Red Sea Slugs": "Shs_SHT006",
"Purple Sea Slugs": "Shs_SHT007",
"Crazy Arrows": "Shs_SHT008",
"Black Trainers": "Shs_SHT009",
"Violet Trainers": "Shs_SHT010",
"Canary Trainers": "Shs_SHT011",
"Yellow-Mesh Sneakers": "Shs_SHT012",
"Arrow Pull-Ons": "Shs_SHT013",
"Red-Mesh Sneakers": "Shs_SHT014",
"N-Pacer CaO": "Shs_SHT015",
"N-Pacer Ag": "Shs_SHT016",
"N-Pacer Au": "Shs_SHT017",
"Sea Slug Volt 95s": "Shs_SHT018",
"Athletic Arrows": "Shs_SHT019",
"Blue Lo-Tops": "Shs_SLO000",
"Banana Basics": "Shs_SLO001",
"LE Lo-Tops": "Shs_SLO002",
"White Seahorses": "Shs_SLO003",
"Orange Lo-Tops": "Shs_SLO004",
"Black Seahorses": "Shs_SLO005",
"Clownfish Basics": "Shs_SLO006",
"Yellow Seahorses": "Shs_SLO007",
"Strapping Whites": "Shs_SLO008",
"Strapping Reds": "Shs_SLO009",
"Soccer Shoes": "Shs_SLO010",
"LE Soccer Shoes": "Shs_SLO011",
"Sunny Climbing Shoes": "Shs_SLO012",
"Birch Climbing Shoes": "Shs_SLO013",
"Green Laceups": "Shs_SLO014",
"White Laceless Dakroniks": "Shs_SLO015",
"Blue Laceless Dakroniks": "Shs_SLO016",
"Suede Gray Lace-Ups": "Shs_SLO017",
"Suede Nation Lace-Ups": "Shs_SLO018",
"Suede Marine Lace-Ups": "Shs_SLO019",
"Toni Kensa Soccer Shoes": "Shs_SLO020",
"Blue Slip-Ons": "Shs_SLP000",
"Red Slip-Ons": "Shs_SLP001",
"Squid-Stitch Slip-Ons": "Shs_SLP002",
"Polka-dot Slip-Ons": "Shs_SLP003",
"Trail Boots": "Shs_TRS000",
"Custom Trail Boots": "Shs_TRS001",
"Pro Trail Boots": "Shs_TRS002",
"Bloblobber": "Slosher_Bathtub_00",
"Bloblobber Deco": "Slosher_Bathtub_01",
"Grizzco Slosher": "Slosher_CoopVase",
"Tri-Slosher": "Slosher_Diffusion_00",
"Tri-Slosher Nouveau": "Slosher_Diffusion_01",
"Sloshing Machine": "Slosher_Launcher_00",
"Sloshing Machine Neo": "Slosher_Launcher_01",
"Kensa Sloshing Machine": "Slosher_Launcher_02",
"Hero Slosher": "Slosher_MissionStrongLv1",
"Slosher": "Slosher_Strong_00",
"Slosher Deco": "Slosher_Strong_01",
"Soda Slosher": "Slosher_Strong_02",
"Hero Slosher Replica": "Slosher_Strong_H",
"Explosher": "Slosher_Washtub_00",
"Custom Explosher": "Slosher_Washtub_01",
"Drop Roller": "SomersaultLanding",
"Special Charge Up": "SpecialIncrease_Up",
"Special Power Up": "SpecialTime_Up",
"Ballpoint Splatling": "Spinner_Downpour_00",
"Ballpoint Splatling Nouveau": "Spinner_Downpour_01",
"Hydra Splatling": "Spinner_Hyper_00",
"Custom Hydra Splatling": "Spinner_Hyper_01",
"Hero Splatling": "Spinner_MissionStandardLv1",
"Mini Splatling": "Spinner_Quick_00",
"Zink Mini Splatling": "Spinner_Quick_01",
"Kensa Mini Splatling": "Spinner_Quick_02",
"Nautilus 47": "Spinner_Serein_00",
"Nautilus 79": "Spinner_Serein_01",
"Heavy Splatling": "Spinner_Standard_00",
"Heavy Splatling Deco": "Spinner_Standard_01",
"Heavy Splatling Remix": "Spinner_Standard_02",
"Hero Splatling Replica": "Spinner_Standard_H",
"Dualie Squelchers": "Twins_Dual_00",
"Custom Dualie Squelchers": "Twins_Dual_01",
"Glooga Dualies": "Twins_Gallon_00",
"Glooga Dualies Deco": "Twins_Gallon_01",
"Kensa Glooga Dualies": "Twins_Gallon_02",
"Hero Dualies": "Twins_MissionNormalLv1",
"Splat Dualies": "Twins_Normal_00",
"Enperry Splat Dualies": "Twins_Normal_01",
"Kensa Splat Dualies": "Twins_Normal_02",
"Hero Dualie Replicas": "Twins_Normal_H",
"Dapple Dualies": "Twins_Short_00",
"Dapple Dualies Nouveau": "Twins_Short_01",
"Clear Dapple Dualies": "Twins_Short_02",
"Dark Tetra Dualies": "Twins_Stepper_00",
"Light Tetra Dualies": "Twins_Stepper_01",
"Undercover Brella": "Umbrella_Compact_00",
"Undercover Sorella Brella": "Umbrella_Compact_01",
"Kensa Undercover Brella": "Umbrella_Compact_02",
"Grizzco Brella": "Umbrella_CoopAutoAssault",
"Hero Brella": "Umbrella_MissionNormalLv1",
"Splat Brella": "Umbrella_Normal_00",
"Sorella Brella": "Umbrella_Normal_01",
"Hero Brella Replica": "Umbrella_Normal_H",
"Tenta Brella": "Umbrella_Wide_00",
"Tenta Sorella Brella": "Umbrella_Wide_01",
"Tenta Camo Brella": "Umbrella_Wide_02"
}

View File

@@ -0,0 +1,28 @@
export const abilityMarkdownCodes = {
ism: "ISM",
iss: "ISS",
rec: "REC",
rsu: "RSU",
ssu: "SSU",
scu: "SCU",
ss: "SS",
spu: "SPU",
qr: "QR",
qsj: "QSJ",
bru: "BRU",
res: "RES",
bdu: "BDU",
mpu: "MPU",
og: "OG",
lde: "LDE",
t: "T",
cb: "CB",
ns: "NS",
h: "H",
ti: "TI",
rp: "RP",
ad: "AD",
sj: "SJ",
os: "OS",
dr: "DR",
} as const;

View File

@@ -0,0 +1,583 @@
export const gearMarkdownCodes = {
enchanted_hat: "Enchanted Hat",
fresh_fish_head: "Fresh Fish Head",
marinated_headphones: "Marinated Headphones",
pearlescent_crown: "Pearlescent Crown",
power_mask: "Power Mask",
power_mask_mk_i: "Power Mask Mk I",
samurai_helmet: "Samurai Helmet",
"squid_clip-ons": "Squid Clip-Ons",
squid_hairclip: "Squid Hairclip",
squinja_mask: "Squinja Mask",
steel_helm: "Steel Helm",
enchanted_robe: "Enchanted Robe",
fresh_fish_gloves: "Fresh Fish Gloves",
marinated_top: "Marinated Top",
pearlescent_hoodie: "Pearlescent Hoodie",
power_armor: "Power Armor",
power_armor_mk_i: "Power Armor Mk I",
samurai_jacket: "Samurai Jacket",
school_cardigan: "School Cardigan",
school_uniform: "School Uniform",
squinja_suit: "Squinja Suit",
steel_platemail: "Steel Platemail",
enchanted_boots: "Enchanted Boots",
fresh_fish_feet: "Fresh Fish Feet",
fringed_loafers: "Fringed Loafers",
"marinated_slip-ons": "Marinated Slip-Ons",
pearlescent_kicks: "Pearlescent Kicks",
power_boots: "Power Boots",
power_boots_mk_i: "Power Boots Mk I",
samurai_shoes: "Samurai Shoes",
school_shoes: "School Shoes",
squinja_boots: "Squinja Boots",
steel_greaves: "Steel Greaves",
annaki_beret: "Annaki Beret",
"annaki_beret_&_glasses": "Annaki Beret & Glasses",
annaki_mask: "Annaki Mask",
annaki_blue_cuff: "Annaki Blue Cuff",
annaki_drive_tee_: "Annaki Drive Tee ",
annaki_evolution_tee: "Annaki Evolution Tee",
annaki_flannel_hoodie: "Annaki Flannel Hoodie",
"annaki_polpo-pic_tee": "Annaki Polpo-Pic Tee",
annaki_red_cuff: "Annaki Red Cuff",
annaki_yellow_cuff: "Annaki Yellow Cuff",
crimson_parashooter: "Crimson Parashooter",
hula_punk_shirt: "Hula Punk Shirt",
prune_parashooter: "Prune Parashooter",
red_hula_punk_with_tie: "Red Hula Punk with Tie",
rockin_leather_jacket: "Rockin' Leather Jacket",
annaki_arachno_boots: "Annaki Arachno Boots",
annaki_habaneros: "Annaki Habaneros",
annaki_tigers: "Annaki Tigers",
armor_helmet_replica: "Armor Helmet Replica",
conductor_cap: "Conductor Cap",
golden_toothpick: "Golden Toothpick",
hero_headphones_replica: "Hero Headphones Replica",
hero_headset_replica: "Hero Headset Replica",
null_visor_replica: "Null Visor Replica",
octoling_shades: "Octoling Shades",
"old-timey_hat": "Old-Timey Hat",
studio_octophones: "Studio Octophones",
armor_jacket_replica: "Armor Jacket Replica",
black_cuttlegear_ls: "Black Cuttlegear LS",
fresh_octo_tee: "Fresh Octo Tee",
hero_hoodie_replica: "Hero Hoodie Replica",
hero_jacket_replica: "Hero Jacket Replica",
neo_octoling_armor: "Neo Octoling Armor",
null_armor_replica: "Null Armor Replica",
octarian_retro: "Octarian Retro",
octo_layered_ls: "Octo Layered LS",
octo_tee: "Octo Tee",
"old-timey_clothes": "Old-Timey Clothes",
red_cuttlegear_ls: "Red Cuttlegear LS",
sennyu_suit: "Sennyu Suit",
armor_boot_replicas: "Armor Boot Replicas",
hero_runner_replicas: "Hero Runner Replicas",
hero_snowboots_replicas: "Hero Snowboots Replicas",
neo_octoling_boots: "Neo Octoling Boots",
null_boots_replica: "Null Boots Replica",
"old-timey_shoes": "Old-Timey Shoes",
eminence_cuff: "Eminence Cuff",
king_facemask: "King Facemask",
king_flip_mesh: "King Flip Mesh",
octoking_facemask: "Octoking Facemask",
black_velour_octoking_tee_: "Black Velour Octoking Tee ",
grape_hoodie: "Grape Hoodie",
green_velour_octoking_tee: "Green Velour Octoking Tee",
king_jersey: "King Jersey",
milky_eminence_jacket: "Milky Eminence Jacket",
"n-pacer_sweat": "N-Pacer Sweat",
navy_eminence_jacket: "Navy Eminence Jacket",
navy_king_tank: "Navy King Tank",
octoking_hk_jersey: "Octoking HK Jersey",
slash_king_tank: "Slash King Tank",
white_king_tank: "White King Tank",
"black_&_blue_squidkid_v": "Black & Blue Squidkid V",
"blue_&_black_squidkid_iv": "Blue & Black Squidkid IV",
"honey_&_orange_squidkid_v": "Honey & Orange Squidkid V",
milky_enperrials: "Milky Enperrials",
"n-pacer_ag": "N-Pacer Ag",
"n-pacer_au": "N-Pacer Au",
"n-pacer_cao": "N-Pacer CaO",
navy_enperrials: "Navy Enperrials",
online_squidkid_v: "Online Squidkid V",
pearlescent_squidkid_iv: "Pearlescent Squidkid IV",
"red_&_black_squidkid_iv": "Red & Black Squidkid IV",
"red_&_white_squidkid_v": "Red & White Squidkid V",
rina_squidkid_iv: "Rina Squidkid IV",
"sun_&_shade_squidkid_iv": "Sun & Shade Squidkid IV",
black_fishfry_bandana: "Black FishFry Bandana",
blowfish_bell_hat: "Blowfish Bell Hat",
blowfish_newsie: "Blowfish Newsie",
camo_mesh: "Camo Mesh",
firefin_facemask: "Firefin Facemask",
fishfry_biscuit_bandana: "FishFry Biscuit Bandana",
fishfry_visor: "FishFry Visor",
fugu_bell_hat: "Fugu Bell Hat",
jet_cap: "Jet Cap",
jungle_hat: "Jungle Hat",
knitted_hat: "Knitted Hat",
octoglasses: "Octoglasses",
baseball_jersey: "Baseball Jersey",
"black_8-bit_fishfry": "Black 8-Bit FishFry",
"blue_16-bit_fishfry": "Blue 16-Bit FishFry",
camo_zip_hoodie: "Camo Zip Hoodie",
carnivore_tee: "Carnivore Tee",
dark_urban_vest: "Dark Urban Vest",
firefin_navy_sweat: "Firefin Navy Sweat",
fugu_tee: "Fugu Tee",
"gray_8-bit_fishfry": "Gray 8-Bit FishFry",
green_zip_hoodie: "Green Zip Hoodie",
herbivore_tee: "Herbivore Tee",
"khaki_16-bit_fishfry": "Khaki 16-Bit FishFry",
"white_8-bit_fishfry": "White 8-Bit FishFry",
yellow_urban_vest: "Yellow Urban Vest",
"ω-3_tee": "ω-3 Tee",
red_fishfry_sandals: "Red FishFry Sandals",
yellow_fishfry_sandals: "Yellow FishFry Sandals",
deca_tackle_visor_helmet: "Deca Tackle Visor Helmet",
designer_headphones: "Designer Headphones",
"digi-camo_forge_mask": "Digi-Camo Forge Mask",
forge_mask: "Forge Mask",
gas_mask: "Gas Mask",
hockey_helmet: "Hockey Helmet",
moist_ghillie_helmet: "Moist Ghillie Helmet",
motocross_nose_guard: "Motocross Nose Guard",
noise_cancelers: "Noise Cancelers",
octo_tackle_helmet_deco: "Octo Tackle Helmet Deco",
paintball_mask: "Paintball Mask",
pilot_goggles: "Pilot Goggles",
safari_hat: "Safari Hat",
sennyu_goggles: "Sennyu Goggles",
sennyu_headphones: "Sennyu Headphones",
skull_bandana: "Skull Bandana",
snorkel_mask: "Snorkel Mask",
special_forces_beret: "Special Forces Beret",
splash_goggles: "Splash Goggles",
squidfin_hook_cans: "Squidfin Hook Cans",
squidlife_headphones: "Squidlife Headphones",
stealth_goggles: "Stealth Goggles",
studio_headphones: "Studio Headphones",
treasure_hunter: "Treasure Hunter",
aloha_shirt: "Aloha Shirt",
blue_sailor_suit: "Blue Sailor Suit",
"brown_fa-11_bomber": "Brown FA-11 Bomber",
"custom_painted_f-3_": "Custom Painted F-3 ",
"fa-01_jacket": "FA-01 Jacket",
"fa-01_reversed": "FA-01 Reversed",
forge_inkling_parka: "Forge Inkling Parka",
forge_octarian_jacket: "Forge Octarian Jacket",
"gray_fa-11_bomber": "Gray FA-11 Bomber",
green_tee: "Green Tee",
moist_ghillie_suit: "Moist Ghillie Suit",
"white_leather_f-3": "White Leather F-3",
white_sailor_suit: "White Sailor Suit",
moist_ghillie_boots: "Moist Ghillie Boots",
beekeeper_hat: "Beekeeper Hat",
cap_of_legend: "Cap of Legend",
dust_blocker_2000: "Dust Blocker 2000",
headlamp_helmet: "Headlamp Helmet",
oceanic_hard_hat: "Oceanic Hard Hat",
octoleet_goggles: "Octoleet Goggles",
sailor_cap: "Sailor Cap",
welding_mask: "Welding Mask",
workers_cap: "Worker's Cap",
workers_head_towel: "Worker's Head Towel",
anchor_life_vest: "Anchor Life Vest",
crustwear_xxl: "Crustwear XXL",
dev_uniform: "Dev Uniform",
garden_gear: "Garden Gear",
juice_parka: "Juice Parka",
"north-country_parka": "North-Country Parka",
octoleet_armor: "Octoleet Armor",
office_attire: "Office Attire",
online_jersey: "Online Jersey",
record_shop_look_ep: "Record Shop Look EP",
squiddor_polo: "Squiddor Polo",
srl_coat: "SRL Coat",
angry_rain_boots: "Angry Rain Boots",
flipper_floppers: "Flipper Floppers",
friendship_bracelet: "Friendship Bracelet",
"non-slip_senseis": "Non-slip Senseis",
octoleet_boots: "Octoleet Boots",
wooden_sandals: "Wooden Sandals",
bamboo_hat: "Bamboo Hat",
camping_hat: "Camping Hat",
lightweight_cap: "Lightweight Cap",
mountie_hat: "Mountie Hat",
seashell_bamboo_hat: "Seashell Bamboo Hat",
short_beanie: "Short Beanie",
tulip_parasol: "Tulip Parasol",
yamagiri_beanie: "Yamagiri Beanie",
berry_ski_jacket: "Berry Ski Jacket",
blue_peaks_tee: "Blue Peaks Tee",
"chili-pepper_ski_jacket": "Chili-Pepper Ski Jacket",
chilly_mountain_coat: "Chilly Mountain Coat",
eggplant_mountain_coat: "Eggplant Mountain Coat",
fishing_vest: "Fishing Vest",
forest_vest: "Forest Vest",
green_striped_ls: "Green Striped LS",
ivory_peaks_tee: "Ivory Peaks Tee",
matcha_down_jacket: "Matcha Down Jacket",
mountain_vest: "Mountain Vest",
olive_ski_jacket: "Olive Ski Jacket",
striped_peaks_ls: "Striped Peaks LS",
acerola_rain_boots: "Acerola Rain Boots",
birch_climbing_shoes: "Birch Climbing Shoes",
bubble_rain_boots: "Bubble Rain Boots",
custom_trail_boots: "Custom Trail Boots",
green_rain_boots: "Green Rain Boots",
luminous_delta_straps: "Luminous Delta Straps",
"musselforge_flip-flops": "Musselforge Flip-Flops",
neon_delta_straps: "Neon Delta Straps",
pro_trail_boots: "Pro Trail Boots",
snow_delta_straps: "Snow Delta Straps",
sunny_climbing_shoes: "Sunny Climbing Shoes",
trail_boots: "Trail Boots",
full_moon_glasses: "Full Moon Glasses",
hickory_work_cap: "Hickory Work Cap",
"long-billed_cap": "Long-Billed Cap",
paisley_bandana: "Paisley Bandana",
"two-stripe_mesh": "Two-Stripe Mesh",
woolly_urchins_classic: "Woolly Urchins Classic",
chili_octo_aloha: "Chili Octo Aloha",
"krak-on_528": "Krak-On 528",
missus_shrug_tee: "Missus Shrug Tee",
mister_shrug_tee: "Mister Shrug Tee",
octobowler_shirt: "Octobowler Shirt",
"rainy-day_tee": "Rainy-Day Tee",
rodeo_shirt: "Rodeo Shirt",
"squid-pattern_waistcoat": "Squid-Pattern Waistcoat",
squidstar_waistcoat: "Squidstar Waistcoat",
"sunny-day_tee": "Sunny-Day Tee",
banana_basics: "Banana Basics",
"blue_slip-ons": "Blue Slip-Ons",
blueberry_casuals: "Blueberry Casuals",
choco_clogs: "Choco Clogs",
clownfish_basics: "Clownfish Basics",
cream_basics: "Cream Basics",
"cream_hi-tops": "Cream Hi-Tops",
"hunter_hi-tops": "Hunter Hi-Tops",
"midnight_slip-ons": "Midnight Slip-Ons",
oyster_clogs: "Oyster Clogs",
plum_casuals: "Plum Casuals",
"polka-dot_slip-ons": "Polka-dot Slip-Ons",
"red_hi-tops": "Red Hi-Tops",
"red_slip-ons": "Red Slip-Ons",
"squid-stitch_slip-ons": "Squid-Stitch Slip-Ons",
"truffle_canvas_hi-tops": "Truffle Canvas Hi-Tops",
"18k_aviators": "18K Aviators",
sv925_circle_shades: "SV925 Circle Shades",
black_baseball_ls: "Black Baseball LS",
black_inky_rider: "Black Inky Rider",
black_urchin_rock_tee: "Black Urchin Rock Tee",
chirpy_chips_band_tee: "Chirpy Chips Band Tee",
hightide_era_band_tee: "Hightide Era Band Tee",
lumberjack_shirt: "Lumberjack Shirt",
rockenberg_black: "Rockenberg Black",
rockenberg_white: "Rockenberg White",
"round-collar_shirt": "Round-Collar Shirt",
squid_squad_band_tee: "Squid Squad Band Tee",
vintage_check_shirt: "Vintage Check Shirt",
wet_floor_band_tee: "Wet Floor Band Tee",
white_baseball_ls: "White Baseball LS",
white_inky_rider: "White Inky Rider",
white_urchin_rock_tee: "White Urchin Rock Tee",
blue_moto_boots: "Blue Moto Boots",
cherry_kicks: "Cherry Kicks",
deepsea_leather_boots: "Deepsea Leather Boots",
"gray_yellow-soled_wingtips": "Gray Yellow-Soled Wingtips",
inky_kid_clams: "Inky Kid Clams",
kid_clams: "Kid Clams",
moto_boots: "Moto Boots",
"navy_red-soled_wingtips": "Navy Red-Soled Wingtips",
"new-leaf_leather_boots": "New-Leaf Leather Boots",
pearl_punk_crowns: "Pearl Punk Crowns",
punk_blacks: "Punk Blacks",
punk_cherries: "Punk Cherries",
punk_whites: "Punk Whites",
punk_yellows: "Punk Yellows",
red_work_boots: "Red Work Boots",
roasted_brogues: "Roasted Brogues",
sennyu_inksoles: "Sennyu Inksoles",
smoky_wingtips: "Smoky Wingtips",
squink_wingtips: "Squink Wingtips",
tan_work_boots: "Tan Work Boots",
turquoise_kicks: "Turquoise Kicks",
white_kicks: "White Kicks",
bike_helmet: "Bike Helmet",
classic_straw_boater: "Classic Straw Boater",
"do-rag,_cap,_&_glasses": "Do-Rag, Cap, & Glasses",
hothouse_hat: "Hothouse Hat",
jellyvader_cap: "Jellyvader Cap",
patched_hat: "Patched Hat",
skate_helmet: "Skate Helmet",
sneaky_beanie: "Sneaky Beanie",
sporty_bobble_hat: "Sporty Bobble Hat",
squid_nordic: "Squid Nordic",
"squid-stitch_cap": "Squid-Stitch Cap",
squidvader_cap: "Squidvader Cap",
straw_boater: "Straw Boater",
streetstyle_cap: "Streetstyle Cap",
urchins_cap: "Urchins Cap",
visor_skate_helmet: "Visor Skate Helmet",
black_hoodie: "Black Hoodie",
"dots-on-dots_shirt": "Dots-On-Dots Shirt",
firewave_tee: "Firewave Tee",
grape_tee: "Grape Tee",
gray_hoodie: "Gray Hoodie",
hothouse_hoodie: "Hothouse Hoodie",
icewave_tee: "Icewave Tee",
mint_tee: "Mint Tee",
pearl_tee: "Pearl Tee",
reggae_tee: "Reggae Tee",
"squid-stitch_tee": "Squid-Stitch Tee",
bobble_hat: "Bobble Hat",
"half-rim_glasses": "Half-Rim Glasses",
"house-tag_denim_cap": "House-Tag Denim Cap",
pilot_hat: "Pilot Hat",
retro_specs: "Retro Specs",
sennyu_bon_bon_beanie: "Sennyu Bon Bon Beanie",
sennyu_specs: "Sennyu Specs",
striped_beanie: "Striped Beanie",
"baby-jelly_shirt": "Baby-Jelly Shirt",
"baby-jelly_shirt_&_tie": "Baby-Jelly Shirt & Tie",
gray_college_sweat: "Gray College Sweat",
green_cardigan: "Green Cardigan",
"lime_easy-stripe_shirt": "Lime Easy-Stripe Shirt",
linen_shirt: "Linen Shirt",
navy_college_sweat: "Navy College Sweat",
navy_striped_ls: "Navy Striped LS",
orange_cardigan: "Orange Cardigan",
"pink_easy-stripe_shirt": "Pink Easy-Stripe Shirt",
pink_hoodie: "Pink Hoodie",
"pirate-stripe_tee": "Pirate-Stripe Tee",
sage_polo: "Sage Polo",
"sailor-stripe_tee": "Sailor-Stripe Tee",
"shirt_&_tie": "Shirt & Tie",
shirt_with_blue_hoodie: "Shirt with Blue Hoodie",
"shrimp-pink_polo": "Shrimp-Pink Polo",
striped_shirt: "Striped Shirt",
varsity_baseball_ls: "Varsity Baseball LS",
"whale-knit_sweater": "Whale-Knit Sweater",
white_shirt: "White Shirt",
white_striped_ls: "White Striped LS",
green_laceups: "Green Laceups",
hunting_boots: "Hunting Boots",
mawcasins: "Mawcasins",
piranha_moccasins: "Piranha Moccasins",
shark_moccasins: "Shark Moccasins",
strapping_reds: "Strapping Reds",
strapping_whites: "Strapping Whites",
"tea-green_hunting_boots": "Tea-Green Hunting Boots",
anglerfish_mask: "Anglerfish Mask",
bucket_hat: "Bucket Hat",
"eel-cake_hat": "Eel-Cake Hat",
festive_party_cone: "Festive Party Cone",
hockey_mask: "Hockey Mask",
koshien_bandana: "Koshien Bandana",
kyonshi_hat: "Kyonshi Hat",
lil_devil_horns: "Li'l Devil Horns",
"mecha_head_-_htr": "Mecha Head - HTR",
new_years_glasses_dx: "New Year's Glasses DX",
painters_mask: "Painter's Mask",
squid_facemask: "Squid Facemask",
twisty_headband: "Twisty Headband",
white_headband: "White Headband",
jetflame_crest: "Jetflame Crest",
fierce_fishskull: "Fierce Fishskull",
hivemind_antenna: "Hivemind Antenna",
eye_of_justice: "Eye of Justice",
anchor_sweat: "Anchor Sweat",
basic_tee: "Basic Tee",
black_anchor_tee: "Black Anchor Tee",
black_layered_ls: "Black Layered LS",
black_tee: "Black Tee",
"black_v-neck_tee": "Black V-Neck Tee",
camo_layered_ls: "Camo Layered LS",
friend_tee: "Friend Tee",
"green_v-neck_limited_tee": "Green V-Neck Limited Tee",
layered_anchor_ls: "Layered Anchor LS",
league_tee: "League Tee",
"mecha_body_-_akm": "Mecha Body - AKM",
octo_support_hoodie: "Octo Support Hoodie",
"red_v-neck_limited_tee": "Red V-Neck Limited Tee",
retro_sweat: "Retro Sweat",
splatfest_tee: "Splatfest Tee",
squid_yellow_layered_ls: "Squid Yellow Layered LS",
squidmark_ls: "Squidmark LS",
squidmark_sweat: "Squidmark Sweat",
swc_logo_tee: "SWC Logo Tee",
white_anchor_tee: "White Anchor Tee",
white_layered_ls: "White Layered LS",
white_ls: "White LS",
white_tee: "White Tee",
"white_v-neck_tee": "White V-Neck Tee",
yellow_layered_ls: "Yellow Layered LS",
"mecha_legs_-_lbs": "Mecha Legs - LBS",
takoroka_mesh: "Takoroka Mesh",
takoroka_visor: "Takoroka Visor",
choco_layered_ls: "Choco Layered LS",
fc_albacore: "FC Albacore",
gray_vector_tee: "Gray Vector Tee",
layered_vector_ls: "Layered Vector LS",
purple_camo_ls: "Purple Camo LS",
red_vector_tee: "Red Vector Tee",
slipstream_united: "Slipstream United",
striped_rugby: "Striped Rugby",
takoroka_crazy_baseball_ls: "Takoroka Crazy Baseball LS",
takoroka_galactic_tie_dye: "Takoroka Galactic Tie Dye",
takoroka_jersey: "Takoroka Jersey",
takoroka_nylon_vintage: "Takoroka Nylon Vintage",
takoroka_rainbow_tie_dye: "Takoroka Rainbow Tie Dye",
takoroka_windcrusher: "Takoroka Windcrusher",
tricolor_rugby: "Tricolor Rugby",
athletic_arrows: "Athletic Arrows",
blue_power_stripes: "Blue Power Stripes",
crazy_arrows: "Crazy Arrows",
le_soccer_shoes: "LE Soccer Shoes",
"new-day_arrows": "New-Day Arrows",
orange_arrows: "Orange Arrows",
"orca_hi-tops": "Orca Hi-Tops",
"orca_passion_hi-tops": "Orca Passion Hi-Tops",
"orca_woven_hi-tops": "Orca Woven Hi-Tops",
red_power_stripes: "Red Power Stripes",
soccer_shoes: "Soccer Shoes",
"sunset_orca_hi-tops": "Sunset Orca Hi-Tops",
trooper_power_stripes: "Trooper Power Stripes",
white_arrows: "White Arrows",
cycle_king_cap: "Cycle King Cap",
fake_contacts: "Fake Contacts",
green_novelty_visor: "Green Novelty Visor",
orange_novelty_visor: "Orange Novelty Visor",
pink_novelty_visor: "Pink Novelty Visor",
purple_novelty_visor: "Purple Novelty Visor",
soccer_headband: "Soccer Headband",
sun_visor: "Sun Visor",
tennis_headband: "Tennis Headband",
black_squideye: "Black Squideye",
blue_tentatek_tee: "Blue Tentatek Tee",
cycle_king_jersey: "Cycle King Jersey",
"lob-stars_jersey": "Lob-Stars Jersey",
"part-time_pirate": "Part-Time Pirate",
red_tentatek_tee: "Red Tentatek Tee",
silver_tentatek_vest: "Silver Tentatek Vest",
"sky-blue_squideye": "Sky-Blue Squideye",
tentatek_slogan_tee: "Tentatek Slogan Tee",
"amber_sea_slug_hi-tops": "Amber Sea Slug Hi-Tops",
black_norimaki_750s: "Black Norimaki 750s",
black_trainers: "Black Trainers",
blue_iromaki_750s: "Blue Iromaki 750s",
blue_sea_slugs: "Blue Sea Slugs",
canary_trainers: "Canary Trainers",
cyan_trainers: "Cyan Trainers",
"gray_sea-slug_hi-tops": "Gray Sea-Slug Hi-Tops",
green_iromaki_750s: "Green Iromaki 750s",
icy_down_boots: "Icy Down Boots",
neon_sea_slugs: "Neon Sea Slugs",
orange_iromaki_750s: "Orange Iromaki 750s",
pink_trainers: "Pink Trainers",
purple_iromaki_750s: "Purple Iromaki 750s",
purple_sea_slugs: "Purple Sea Slugs",
red_iromaki_750s: "Red Iromaki 750s",
red_sea_slugs: "Red Sea Slugs",
"red-mesh_sneakers": "Red-Mesh Sneakers",
sea_slug_volt_95s: "Sea Slug Volt 95s",
sesame_salt_270s: "Sesame Salt 270s",
snowy_down_boots: "Snowy Down Boots",
violet_trainers: "Violet Trainers",
white_norimaki_750s: "White Norimaki 750s",
yellow_iromaki_750s: "Yellow Iromaki 750s",
"yellow-mesh_sneakers": "Yellow-Mesh Sneakers",
face_visor: "Face Visor",
"ink-guard_goggles": "Ink-Guard Goggles",
toni_kensa_goggles: "Toni Kensa Goggles",
dark_bomber_jacket: "Dark Bomber Jacket",
front_zip_vest: "Front Zip Vest",
"half-sleeve_sweater": "Half-Sleeve Sweater",
"ink-wash_shirt": "Ink-Wash Shirt",
inkfall_shirt: "Inkfall Shirt",
kensa_coat: "Kensa Coat",
"kung-fu_zip-up": "Kung-Fu Zip-Up",
light_bomber_jacket: "Light Bomber Jacket",
negative_longcuff_sweater: "Negative Longcuff Sweater",
"panda_kung-fu_zip-up": "Panda Kung-Fu Zip-Up",
positive_longcuff_sweater: "Positive Longcuff Sweater",
pullover_coat: "Pullover Coat",
short_knit_layers: "Short Knit Layers",
toni_k_baseball_jersey: "Toni K. Baseball Jersey",
"arrow_pull-ons": "Arrow Pull-Ons",
"toni_kensa_black_hi-tops": "Toni Kensa Black Hi-Tops",
toni_kensa_soccer_shoes: "Toni Kensa Soccer Shoes",
backwards_cap: "Backwards Cap",
black_arrowbands: "Black Arrowbands",
double_egg_shades: "Double Egg Shades",
"five-panel_cap": "Five-Panel Cap",
jogging_headband: "Jogging Headband",
matte_bike_helmet: "Matte Bike Helmet",
mtb_helmet: "MTB Helmet",
tinted_shades: "Tinted Shades",
white_arrowbands: "White Arrowbands",
zekko_cap: "Zekko Cap",
zekko_mesh: "Zekko Mesh",
birded_corduroy_jacket: "Birded Corduroy Jacket",
black_ls: "Black LS",
black_polo: "Black Polo",
"deep-octo_satin_jacket": "Deep-Octo Satin Jacket",
gray_mixed_shirt: "Gray Mixed Shirt",
"green-check_shirt": "Green-Check Shirt",
logo_aloha_shirt: "Logo Aloha Shirt",
olive_zekko_parka: "Olive Zekko Parka",
"red-check_shirt": "Red-Check Shirt",
reel_sweat: "Reel Sweat",
squid_satin_jacket: "Squid Satin Jacket",
tumeric_zekko_coat: "Tumeric Zekko Coat",
varsity_jacket: "Varsity Jacket",
zapfish_satin_jacket: "Zapfish Satin Jacket",
zekko_baseball_ls: "Zekko Baseball LS",
zekko_hoodie: "Zekko Hoodie",
zekko_jade_coat: "Zekko Jade Coat",
zekko_long_carrot_tee: "Zekko Long Carrot Tee",
zekko_long_radish_tee: "Zekko Long Radish Tee",
zekko_redleaf_coat: "Zekko Redleaf Coat",
"black_flip-flops": "Black Flip-Flops",
"blue_lo-tops": "Blue Lo-Tops",
"le_lo-tops": "LE Lo-Tops",
"marination_lace-ups": "Marination Lace-Ups",
"orange_lo-tops": "Orange Lo-Tops",
"pearl-scout_lace-ups": "Pearl-Scout Lace-Ups",
"suede_gray_lace-ups": "Suede Gray Lace-Ups",
"suede_marine_lace-ups": "Suede Marine Lace-Ups",
"suede_nation_lace-ups": "Suede Nation Lace-Ups",
"b-ball_headband": "B-ball Headband",
cycling_cap: "Cycling Cap",
golf_visor: "Golf Visor",
squash_headband: "Squash Headband",
swim_goggles: "Swim Goggles",
"b-ball_jersey_(away)": "B-ball Jersey (Away)",
"b-ball_jersey_(home)": "B-ball Jersey (Home)",
cycling_shirt: "Cycling Shirt",
dakro_golden_tee: "Dakro Golden Tee",
dakro_nana_tee: "Dakro Nana Tee",
inkopolis_squaps_jersey: "Inkopolis Squaps Jersey",
navy_deca_logo_tee: "Navy Deca Logo Tee",
retro_gamer_jersey: "Retro Gamer Jersey",
school_jersey: "School Jersey",
urchins_jersey: "Urchins Jersey",
white_deca_logo_tee: "White Deca Logo Tee",
zink_layered_ls: "Zink Layered LS",
zink_ls: "Zink LS",
black_dakroniks: "Black Dakroniks",
black_seahorses: "Black Seahorses",
blue_laceless_dakroniks: "Blue Laceless Dakroniks",
chocolate_dakroniks: "Chocolate Dakroniks",
"gold_hi-horses": "Gold Hi-Horses",
mint_dakroniks: "Mint Dakroniks",
"purple_hi-horses": "Purple Hi-Horses",
"red_hi-horses": "Red Hi-Horses",
white_laceless_dakroniks: "White Laceless Dakroniks",
white_seahorses: "White Seahorses",
yellow_seahorses: "Yellow Seahorses",
"zombie_hi-horses": "Zombie Hi-Horses",
} as const;

View File

@@ -0,0 +1,141 @@
export const weaponMarkdownCodes = {
"sploosh-o-matic": "Sploosh-o-matic",
"neo_sploosh-o-matic": "Neo Sploosh-o-matic",
"sploosh-o-matic_7": "Sploosh-o-matic 7",
splattershot_jr: "Splattershot Jr.",
custom_splattershot_jr: "Custom Splattershot Jr.",
kensa_splattershot_jr: "Kensa Splattershot Jr.",
"splash-o-matic": "Splash-o-matic",
"neo_splash-o-matic": "Neo Splash-o-matic",
aerospray_mg: "Aerospray MG",
aerospray_rg: "Aerospray RG",
aerospray_pg: "Aerospray PG",
splattershot: "Splattershot",
hero_shot_replica: "Hero Shot Replica",
tentatek_splattershot: "Tentatek Splattershot",
octo_shot_replica: "Octo Shot Replica",
kensa_splattershot: "Kensa Splattershot",
"52_gal": ".52 Gal",
"52_gal_deco": ".52 Gal Deco",
kensa_52_gal: "Kensa .52 Gal",
"n-zap_85": "N-ZAP '85",
"n-zap_89": "N-ZAP '89",
"n-zap_83": "N-ZAP '83",
splattershot_pro: "Splattershot Pro",
forge_splattershot_pro: "Forge Splattershot Pro",
kensa_splattershot_pro: "Kensa Splattershot Pro",
"96_gal": ".96 Gal",
"96_gal_deco": ".96 Gal Deco",
jet_squelcher: "Jet Squelcher",
custom_jet_squelcher: "Custom Jet Squelcher",
"l-3_nozzlenose": "L-3 Nozzlenose",
"l-3_nozzlenose_d": "L-3 Nozzlenose D",
"kensa_l-3_nozzlenose": "Kensa L-3 Nozzlenose",
"h-3_nozzlenose": "H-3 Nozzlenose",
"h-3_nozzlenose_d": "H-3 Nozzlenose D",
"cherry_h-3_nozzlenose": "Cherry H-3 Nozzlenose",
squeezer: "Squeezer",
foil_squeezer: "Foil Squeezer",
luna_blaster: "Luna Blaster",
luna_blaster_neo: "Luna Blaster Neo",
kensa_luna_blaster: "Kensa Luna Blaster",
blaster: "Blaster",
hero_blaster_replica: "Hero Blaster Replica",
custom_blaster: "Custom Blaster",
range_blaster: "Range Blaster",
custom_range_blaster: "Custom Range Blaster",
grim_range_blaster: "Grim Range Blaster",
rapid_blaster: "Rapid Blaster",
rapid_blaster_deco: "Rapid Blaster Deco",
kensa_rapid_blaster: "Kensa Rapid Blaster",
rapid_blaster_pro: "Rapid Blaster Pro",
rapid_blaster_pro_deco: "Rapid Blaster Pro Deco",
clash_blaster: "Clash Blaster",
clash_blaster_neo: "Clash Blaster Neo",
carbon_roller: "Carbon Roller",
carbon_roller_deco: "Carbon Roller Deco",
splat_roller: "Splat Roller",
hero_roller_replica: "Hero Roller Replica",
"krak-on_splat_roller": "Krak-On Splat Roller",
kensa_splat_roller: "Kensa Splat Roller",
dynamo_roller: "Dynamo Roller",
gold_dynamo_roller: "Gold Dynamo Roller",
kensa_dynamo_roller: "Kensa Dynamo Roller",
flingza_roller: "Flingza Roller",
foil_flingza_roller: "Foil Flingza Roller",
inkbrush: "Inkbrush",
inkbrush_nouveau: "Inkbrush Nouveau",
permanent_inkbrush: "Permanent Inkbrush",
octobrush: "Octobrush",
herobrush_replica: "Herobrush Replica",
octobrush_nouveau: "Octobrush Nouveau",
kensa_octobrush: "Kensa Octobrush",
classic_squiffer: "Classic Squiffer",
new_squiffer: "New Squiffer",
fresh_squiffer: "Fresh Squiffer",
splat_charger: "Splat Charger",
hero_charger_replica: "Hero Charger Replica",
firefin_splat_charger: "Firefin Splat Charger",
kensa_charger: "Kensa Charger",
splatterscope: "Splatterscope",
firefin_splatterscope: "Firefin Splatterscope",
kensa_splatterscope: "Kensa Splatterscope",
"e-liter_4k": "E-liter 4K",
"custom_e-liter_4k": "Custom E-liter 4K",
"e-liter_4k_scope": "E-liter 4K Scope",
"custom_e-liter_4k_scope": "Custom E-liter 4K Scope",
bamboozler_14_mk_i: "Bamboozler 14 Mk I",
bamboozler_14_mk_ii: "Bamboozler 14 Mk II",
bamboozler_14_mk_iii: "Bamboozler 14 Mk III",
goo_tuber: "Goo Tuber",
custom_goo_tuber: "Custom Goo Tuber",
slosher: "Slosher",
hero_slosher_replica: "Hero Slosher Replica",
slosher_deco: "Slosher Deco",
soda_slosher: "Soda Slosher",
"tri-slosher": "Tri-Slosher",
"tri-slosher_nouveau": "Tri-Slosher Nouveau",
sloshing_machine: "Sloshing Machine",
sloshing_machine_neo: "Sloshing Machine Neo",
kensa_sloshing_machine: "Kensa Sloshing Machine",
bloblobber: "Bloblobber",
bloblobber_deco: "Bloblobber Deco",
explosher: "Explosher",
custom_explosher: "Custom Explosher",
mini_splatling: "Mini Splatling",
zink_mini_splatling: "Zink Mini Splatling",
kensa_mini_splatling: "Kensa Mini Splatling",
heavy_splatling: "Heavy Splatling",
hero_splatling_replica: "Hero Splatling Replica",
heavy_splatling_deco: "Heavy Splatling Deco",
heavy_splatling_remix: "Heavy Splatling Remix",
hydra_splatling: "Hydra Splatling",
custom_hydra_splatling: "Custom Hydra Splatling",
ballpoint_splatling: "Ballpoint Splatling",
ballpoint_splatling_nouveau: "Ballpoint Splatling Nouveau",
nautilus_47: "Nautilus 47",
nautilus_79: "Nautilus 79",
dapple_dualies: "Dapple Dualies",
dapple_dualies_nouveau: "Dapple Dualies Nouveau",
clear_dapple_dualies: "Clear Dapple Dualies",
splat_dualies: "Splat Dualies",
hero_dualies_replicas: "Hero Dualie Replicas",
enperry_splat_dualies: "Enperry Splat Dualies",
kensa_splat_dualies: "Kensa Splat Dualies",
glooga_dualies: "Glooga Dualies",
glooga_dualies_deco: "Glooga Dualies Deco",
kensa_glooga_dualies: "Kensa Glooga Dualies",
dualie_squelchers: "Dualie Squelchers",
custom_dualie_squelchers: "Custom Dualie Squelchers",
dark_tetra_dualies: "Dark Tetra Dualies",
light_tetra_dualies: "Light Tetra Dualies",
splat_brella: "Splat Brella",
hero_brella_replica: "Hero Brella Replica",
sorella_brella: "Sorella Brella",
tenta_brella: "Tenta Brella",
tenta_sorella_brella: "Tenta Sorella Brella",
tenta_camo_brella: "Tenta Camo Brella",
undercover_brella: "Undercover Brella",
undercover_sorella_brella: "Undercover Sorella Brella",
kensa_undercover_brella: "Kensa Undercover Brella",
} as const;

716
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,9 @@
"nexus-plugin-prisma": "^0.22.0",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"react-icons": "^3.11.0"
"react-icons": "^3.11.0",
"react-markdown": "^4.3.1",
"react-string-replace": "^0.4.4"
},
"devDependencies": {
"@graphql-codegen/cli": "1.17.10",

View File

@@ -7,6 +7,7 @@ import Layout from "scenes/Layout";
const MyApp = (props: AppProps) => {
const apolloClient = useApollo(props.pageProps.initialApolloState);
// FIXME: on initial load components render twice
return (
<ApolloProvider client={apolloClient}>
<ChakraProvider>

View File

@@ -0,0 +1,115 @@
import { Avatar, Box, Flex, Heading } from "@chakra-ui/core";
import Flag from "components/Flag";
import WeaponImage from "components/WeaponImage";
import { GetUserByIdentifierQuery } from "generated/graphql";
import { useTranslation } from "lib/useMockT";
import { useMyTheme } from "lib/useMyTheme";
import { FaGamepad, FaTwitch, FaYoutube } from "react-icons/fa";
interface AvatarWithInfoProps {
user: NonNullable<GetUserByIdentifierQuery["getUserByIdentifier"]>;
}
const AvatarWithInfo: React.FC<AvatarWithInfoProps> = ({ user }) => {
const { gray } = useMyTheme();
const { t } = useTranslation();
function getSensString(
motion: number | null | undefined,
stick: number
): string {
const stickSensString = `${stick > 0 ? "+" : ""}${stick} ${t(
"users;Stick"
)}`;
const motionSensString = !!motion
? ` ${motion > 0 ? "+" : ""}${motion} ${t("users;Motion")}`
: "";
return `${stickSensString} ${motionSensString}`;
}
return (
<>
<Flex flexWrap="wrap">
<Avatar
name={user.fullUsername}
src={user.avatarUrl ?? ""}
size="2xl"
mr="0.3em"
mb="0.5rem"
/>
<Flex flexDirection="column" justifyContent="center" mb="0.5rem">
<Flex alignItems="center" my="0.2rem">
<Heading fontFamily="'Rubik', sans-serif" size="lg" ml="0.5rem">
{user.fullUsername}
</Heading>
{user.profile?.country && <Flag code={user.profile.country} />}
</Flex>
<Flex>
<Flex maxW="300px" flexWrap="wrap">
{/* FIXME:
user.twitter_name && (
<Flex
alignItems="center"
mx="0.5em"
my="0.1em"
color={gray}
>
<Box as={FaTwitter} mr="0.2em" />
<a href={`https://twitter.com/${user.twitter_name}`}>
{user.twitter_name}
</a>
</Flex>
)*/}
{user.profile?.twitchName && (
<Flex alignItems="center" mx="0.5em" my="0.1em" color={gray}>
<Box as={FaTwitch} mr="0.2em" />
<a href={`https://www.twitch.tv/${user.profile.twitchName}`}>
{user.profile.twitchName}
</a>
</Flex>
)}
{user.profile?.youtubeId && (
<Flex alignItems="center" mx="0.5em" my="0.1em" color={gray}>
<Box as={FaYoutube} mr="0.2em" />
<a
href={`https://youtube.com/channel/${user.profile.youtubeId}`}
>
YouTube
</a>
</Flex>
)}
{user.profile?.sensStick &&
(!!user.profile.sensStick || user.profile.sensStick === 0) && (
<Flex
alignItems="center"
mx="0.5em"
my="0.1em"
color={gray}
w="100%"
>
<Box as={FaGamepad} mr="0.2em" />
{getSensString(
user.profile.sensMotion,
user.profile.sensStick
)}
</Flex>
)}
{user.profile?.weaponPool.length && (
<Flex mt="0.2rem" w="100%">
{user.profile.weaponPool.map((wpn) => (
<Box mx="0.2em" key={wpn}>
<WeaponImage englishName={wpn} size="SMALL" />
</Box>
))}
</Flex>
)}
</Flex>
</Flex>
</Flex>
</Flex>
</>
);
};
export default AvatarWithInfo;

View File

@@ -1,14 +1,42 @@
import { Box } from "@chakra-ui/core";
import Markdown from "components/Markdown";
import MyHead from "components/MyHead";
import { GetUserByIdentifierQuery } from "generated/graphql";
interface ProfileProps {}
import AvatarWithInfo from "./components/AvatarWithInfo";
interface Props {
user: NonNullable<GetUserByIdentifierQuery["getUserByIdentifier"]>;
}
const Profile: React.FC<Props> = ({ user }) => {
console.log({ user });
return <>hello from profile</>;
return (
<>
<MyHead title={user.fullUsername} />
<AvatarWithInfo user={user} />
{user.profile?.bio && (
<Box my="2em">
<Markdown value={user.profile.bio} />
</Box>
)}
{/*FIXME:
<Tabs isFitted variant="line" mt="2em" colorScheme={themeColor}>
<TabList mb="1em">
{tabs.map((tabObj) => (
<Tab key={tabObj.id} color={textColor}>
<Box
as={tabObj.icon}
size="24px"
color={themeColorWithShade}
mr="7px"
/>{" "}
{tabObj.title}
</Tab>
))}
</TabList>
<TabPanels>{tabs.map((tabObj) => tabObj.content)}</TabPanels>
</Tabs>*/}
</>
);
};
export default Profile;