Turns out I wasn't really satisfied with how the very first `Info` I made aged
Don't know yet if I'll do anything with other `Info`s, they kinda look fine tbh!
That's worth it only if they open at the spot they were moved to during the previous visit
I really really don't feel like figuring out how to *properly* keep track of a tab's position at the moment
"v4" is the January 2024 logo with the dot, "v4b" is the May 2024 logo without the dot
But I liked the dot :(
Isn't it interesting how the web version doesn't have the shading that's present in the game client btw?
Note to self: Background is both in `index.html` & `App.tsx`
It's in `index.html` so the bg's still there after scrolling
It's in `App.tsx` so the bg actually works (tailwind shenanigans?)
Switch the tab's logo and name, having the logo on the left and the name at the middle (like any Linux DE)
Make the tab close button look smaller, make it look different on hover and active states
Make `CopyField`s inactive for 3 seconds instead of 5 seconds
Make certain things no longer draggable
Add looks for the hover & active state for `TabButton`s and `ButtonLink`s
Use `@carbon/icons-react` over downloaded svgs
Update README
Remove Herobrine
Turns out setting environment variables on runtime seemingly only works on my computer 👍
Will need to find a database solution I think
Might wanna look into Prisma (ORM)
Makes it so:
- An `Info`'s `Website` doesn't need to wait for other `Website`s of that same `Info` to load to show up
- An `Info`s `Website` not working won't prevent other `Website`s of that same `Info` from showing up
- Code is more split and organized
Furthermore, the token for the osu! API is now stored, and used for ALL osu! requests for 24 hours instead of being revoked
Overall, it's a lot of future-proofing so things on working even if I'm no longer there to maintain them
Also so `Info`s can be added, changed, and removed more easily
Despite all the type safety stuff going on, the objects we access have no guarantee of having the expected properties
When the property doesn't exist, it actually crashes **the whole page**!
So now, if such an unexpected thing was to happen, it'll be handled kinda as if the Netlify functions gave us `undefined`
Although in this specific case, it also logs stuff on the client's dev console
Also make the client automatically request every 2 minutes an update for Last.fm
Also lightly change the `AnimateHeight` of `Info` (for the sake of the top border and better looks when multiple websites in one category)
Also added the Carbon Design System elements in it, instead of writing the svgs in `src`
Also made all image imports absolute
Also made the `alt` of `SocialButton`s more (although not entirely) readable, *just in case* :3
`SocialButton` and its image are no longer draggable
It's no longer possible to click the edge of a `SocialButton` without clicking the hyperlink
Any `SocialButton` will darken while `active`
`Tab` has its name and close button switch positions
The reasoning for this last change is because it's more intuitive (to Windows and most Linux users)
and because it makes more sense to have the mouse be on the middle/right of the screen surrounded by buttons, rather than the left where there's very little
tldr; my interpretation of psychology
I couldn't find an svg for the modern osu! logo so I made one myself using the assets on the osu! website
I've switched the background colour and the colour of the "A" in the AniList logo so it would look better here
I've made this Last.fm logo myself, using its old square logo and the colour of the current favicon
Wait, so which compiler have I been using this whole time??
I'm guessing Babel, but then is tsconfig and adding typescript to package.json useful???
Man, I'm not used to that stuff, I need to learn more