diff --git a/src/App.css b/src/App.css index 62159f1..27f9238 100644 --- a/src/App.css +++ b/src/App.css @@ -1,8 +1,21 @@ :root { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* browsers agreeing on stuff challenge (impossible) */ background-color: #121212; font-family: monospace; overflow-x: hidden; color: pink; + +} + +.actualreviewdiv { + overflow-y: scroll; + height: 18em; } .header { @@ -12,7 +25,7 @@ justify-content: center; } -.header img:hover{ +.header img:hover { animation: bigsmall .5s infinite; } @@ -30,19 +43,23 @@ margin: 0.5em; } +.cardchild:hover::-webkit-scrollbar { + display: none; +} + +.cardchild { + -ms-overflow-style: none; + scrollbar-width: none; +} + +/* CAN BROWSERS JUST AGREE ON ONE FUCKING THING */ + .cardchild { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - /* browsers agreeing on stuff challenge (impossible) */ cursor: default; background-color: #272525; border-radius: 5%; - margin: 1em 1em .5em .5em; - width: 20em; + width: 25em; + height: 25em; padding: 0.5em 5em 2em 5em; transform: translateY(-0em); transition: background-color 1s, transform .5s, box-shadow .5s, -webkit-box-shadow .5s, -moz-box-shadow 0.5s; @@ -57,15 +74,30 @@ transform: translateY(-0.3em); transition: background-color 1s, transform .5s, box-shadow .5s, -webkit-box-shadow .5s, -moz-box-shadow 0.5s; } + .linktree { display: flex; - justify-content: space-around; + justify-content: space-around; } .linktree img { cursor: pointer; } +.singlereview { + display: flex; + align-items: center; +} + +.reviewinfo { + display: flex; + flex-direction: column; +} + +.reviewname { + font-weight: bolder; +} + .parent { width: 100%; height: 100%; @@ -107,7 +139,7 @@ .animate { z-index: 10000000; - transform: scale(10000); + transform: scale(10000); transition: 20s; } @@ -135,10 +167,12 @@ 0% { max-width: 10em; } + 50% { width: 10.5em; max-width: 10.5em; } + 100% { max-width: 10em; } diff --git a/src/App.tsx b/src/App.tsx index 18faa61..46d7709 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,6 +2,7 @@ import './App.css' import HoverComponent from './components/name.tsx' import AdvancedBr from './components/comps.tsx' import { createSignal } from 'solid-js'; +import Reviews from './components/api.tsx'; function App() { function remov() { for (let i = 0; i < document.styleSheets.length; i++) { @@ -68,7 +69,7 @@ function App() { opacity: isAnimating() || animatedwoem() ? "0%" : "100%" }} class='cardchild'>

reviews

- {/* */} + diff --git a/src/components/api.tsx b/src/components/api.tsx new file mode 100644 index 0000000..7362256 --- /dev/null +++ b/src/components/api.tsx @@ -0,0 +1,66 @@ +import { createSignal, onMount } from "solid-js" + +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://api.review.exhq.dev/getreviews") + .then(response => response.json()) + .then((data: Review[]) => { + const promises = data.map(review => ( + fetch(`https://discordlookup.mesalytic.moe/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 ( +
+ {reviews().length > 0 ? ( + reviews().reverse().map((review) => ( +
+ +
+ )) + ) : ( +
Loading reviews...
+ )} +
+ ) +} + + +function SingleReview(props: NeoReview) { + console.log(props.global_name) + return
+ +
+
{props.global_name === null? props.username : props.global_name}
+
{props.reviewText}
+
+
+} \ No newline at end of file diff --git a/src/components/name.jsx b/src/components/name.jsx deleted file mode 100644 index 7dacb4b..0000000 --- a/src/components/name.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import { createSignal, onCleanup } from "solid-js"; -import { removethething } from "./utils"; - -function HoverComponent() { - let timerId; - - const [name, setname] = createSignal(true) - - const startTimer = () => { - timerId = setTimeout(() => { - setname(!name()) - }, 3000); - }; - - const clearTimer = () => { - if (timerId) { - clearTimeout(timerId); - timerId = null; - } - }; - - const handleMouseEnter = () => { - removethething() - startTimer(); - }; - - onCleanup(() => { - clearTimer(); - }); - - return ( -

- {name() ? "ECHO" : "exhq"} -

- ); -} - -export default HoverComponent; \ No newline at end of file