import { createSignal, onMount } from "solid-js"; import { ishover } from "../App"; interface Review { reviewID: number; discordID: string; reviewText: string; timestamp: string; } interface NeoReview extends Review { global_name: string; username: string; } export default function Reviews() { const [reviews, setReviews] = createSignal([]); onMount(() => { fetch("https://review.exhq.dev/getreviews") .then((response) => response.json()) .then((data: Review[]) => { const promises = data.map((review) => fetch(`https://dc-lookup.spiro.exhq.dev/v1/user/${review.discordID}`) .then((response) => response.json()) .then((user) => ({ ...review, global_name: user.global_name, username: user.username, })), ); Promise.all(promises) .then((yeah) => { setReviews(yeah); }) .catch((error) => console.error("Error fetching Discord user data:", error), ); }) .catch((error) => console.error("Error fetching reviews:", error)); }); return ( <>

add your reviews here

Reviews

{reviews().length > 0 ? ( reviews() .reverse() .map((review) => (
)) ) : (
Loading reviews...
)}
); } export const theImager = async (id: string): Promise => await fetch(`https://dc-lookup.spiro.exhq.dev/v1/user/${id}`) .then((res) => res.json()) .then((data) => "https://proxy.spiro.exhq.dev/_/plain/" + data.avatar.link) .catch(() => "https://http.cat/status/100"); function SingleReview(props: NeoReview) { const [imageSrc, setImageSrc] = createSignal(""); onMount(async () => { const url = await theImager(props.discordID); setImageSrc(url); }); return (
User Avatar
{props.global_name === null ? props.username : props.global_name}
{props.reviewText}
); } export async function sendReview( review: string, token: string, ): Promise { try { const response = await fetch( `https://review.exhq.dev/sendreview?review=${review}`, { headers: { Auth: token, }, method: "POST", }, ); if (response.status !== 200) { return false; } return true; } catch (error) { return false; } }