Merge pull request #32 from gractwo/badges

add badges
This commit is contained in:
Stanisław Dzioba
2023-01-29 22:07:26 +01:00
committed by GitHub
4 changed files with 59 additions and 60 deletions

View File

@@ -108,11 +108,21 @@
flex-direction: row;
flex-wrap: wrap;
section {
display: flex;
align-items: center;
gap: 1rem;
width: 50%;
padding: 2rem;
@media screen and (max-width: 800px) {
width: 100%;
}
img {
height: 4rem;
border-radius: 50%;
}
h3 {
padding-top: 0;
}
}
}
}

View File

@@ -13,10 +13,12 @@ type UserProfileCardProps = {
looseXP?: number;
};
badges?: {
badgeName: string;
badgeDesc?: string;
badgeMerit?: string;
badgeImage?: string;
Id: string; // ID
Name: string; // badge name
Desc: string; // badge description (short)
Expl?: string; // badge explanation (long)
Img?: string; // direct url to an image
Date?: string; // datetime w/ timezone (eg: "2022-02-25T10:23:54Z")
}[];
accentColor?: string;
};
@@ -90,19 +92,22 @@ const ProfileCard = ({ data }: UserProfileCardProps) => {
</div>
)}
<footer>
{data.badges
?.slice(0, 1)
.map(
{data.badges?.map(
(el: {
badgeName: string;
badgeDesc?: string;
badgeMerit?: string;
badgeImage?: string;
Id: string; // ID
Name: string; // badge name
Desc: string; // badge description (short)
Expl?: string; // badge explanation (long)
Img?: string; // direct url to an image
Date?: string; // datetime w/ timezone (eg: "2022-02-25T10:23:54Z")
}) => {
return (
<section key={el.badgeName}>
<h3>{el.badgeName}</h3>
<p>{el.badgeDesc}</p>
<section key={el.Name}>
<img src={el.Img} />
<div>
<h3>{el.Name}</h3>
<p>{el.Desc}</p>
</div>
</section>
);
}

View File

@@ -15,7 +15,16 @@ const PageMe = () => {
DevBadge?: boolean;
AssignedUser?: string;
};
type badgeSchema = {
Id: string; // ID
Name: string; // badge name
Desc: string; // badge description (short)
Expl?: string; // badge explanation (long)
Img?: string; // direct url to an image
Date?: string; // datetime w/ timezone (eg: "2022-02-25T10:23:54Z")
};
const [personsData, setPersonsData] = useState<personsSchema | null>(null);
const [badgesData, setBadgesData] = useState<badgeSchema[] | null>(null);
useEffect(() => {
if (!user) return;
@@ -26,11 +35,22 @@ const PageMe = () => {
.then((data) => {
setPersonsData(
data.filter((el: personsSchema) => {
if (!user) return false;
return el.AssignedUser === user.sub?.replace("oauth2|discord|", "");
})[0]
);
});
fetch(
`https://gractwo.pl/api/v1/badges/${user.sub?.replace(
"oauth2|discord|",
""
)}`
)
.then((res) => {
return res.json();
})
.then((data) => {
setBadgesData(data);
});
}, [user]);
return (
@@ -65,37 +85,7 @@ const PageMe = () => {
// looseXP: 420,
// tilNextLevel: 69,
// },
badges: [
{
badgeName: "Odkrywca internetowy",
badgeDesc:
"Logowanie się na gractwo.pl nie jest takie straszne.",
},
{
badgeName: "Technik Informatyk",
badgeDesc: "Łapanki na korytarzu to normalka.",
},
{
badgeName: "Rozpad PGTF",
badgeDesc: "Służba w oddziałach Super Pizzy - powód do dumy.",
},
{
badgeName: "Mollin Stream",
badgeDesc: "„Sorry, ja za bardzo nie pamietam.” ~ Mollin",
},
{
badgeName: "Alkoholik",
badgeDesc: "pracoholicy gdy skończy im się pracohol:",
},
{
badgeName: "Studnia Oneshot",
badgeDesc: "elf w studni - ciekawe jak stamtąd wyjdzie",
},
{
badgeName: "RemCon 2022",
badgeDesc: "pomorze konwent",
},
],
badges: badgesData || undefined,
}}
/>
<Link href="/ja/ustawienia">

View File

@@ -69,13 +69,7 @@ const ProfilePage = () => {
// looseXP: 420,
// tilNextLevel: 69,
// },
badges: [
{
badgeName: "Odkrywca internetowy",
badgeDesc:
"Logowanie się na gractwo.pl nie jest takie straszne.",
},
],
badges: [],
}}
/>
</main>