4 Commits

Author SHA1 Message Date
4e829b6ff5 Feat: version 0.0.3 - Beta 2025-01-15 15:10:17 +03:00
6cda6fee45 Feat: added metrics 2025-01-15 14:56:02 +03:00
0157a63201 Feat: fixed mobile dnd and styles 2025-01-15 14:55:54 +03:00
1ee4043c0e Feat: some change in index.html 2025-01-14 23:25:38 +03:00
7 changed files with 32 additions and 11 deletions

View File

@@ -2,9 +2,14 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title> <title>NWaifu Tier Maker</title>
<script
defer
src="https://stats.nwaifu.su/script.js"
data-website-id="2167decc-21d6-4f30-bdf3-f00da4b74ee9"
data-domains="tiermaker.nwaifu.su"
></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>

View File

@@ -1,7 +1,7 @@
{ {
"name": "nwtierlist", "name": "nwtierlist",
"private": true, "private": true,
"version": "0.0.2", "version": "0.0.3",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -127,7 +127,7 @@ const App = () => {
</div> </div>
<div className='w-full text-[#dfe6e9] flex flex-row items-center justify-center md:justify-between mt-5 gap-1 md:pe-5 md:ps-5'> <div className='w-full text-[#dfe6e9] flex flex-row items-center justify-center md:justify-between mt-5 gap-1 md:pe-5 md:ps-5'>
<span className='text-[#dfe6e9]'>Version 0.0.2</span> <span className='text-[#dfe6e9]'>Version 0.0.3</span>
<a href='https://git.nwaifu.su/sergey/NwTierList' target='_blank'> <a href='https://git.nwaifu.su/sergey/NwTierList' target='_blank'>
Source Code <GitHub /> Source Code <GitHub />
</a> </a>

View File

@@ -1,14 +1,19 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useShallow } from 'zustand/shallow'; import { useShallow } from 'zustand/shallow';
import useStore from '../store'; import useStore from '../store';
export const EditTierModal = () => { export const EditTierModal = () => {
const [tierLevel, setTierLevel, editTierLevel] = useStore( const [tierLevel, setTierLevel, editTierLevel] = useStore(
useShallow(state => [state.editingTierLevel, state.setEditingTierLevel, state.editTierLevelName]), useShallow(state => [state.editingTierLevel, state.setEditingTierLevel, state.editTierLevelName]),
); );
const [newName, setNewName] = useState(''); const [newName, setNewName] = useState('');
useEffect(() => { useEffect(() => {
if (tierLevel) setNewName(tierLevel.name); if (tierLevel) {
setNewName(tierLevel.name);
document.body.style.overflow = 'hidden';
} else document.body.style.overflow = 'auto';
return () => {
document.body.style.overflow = 'auto';
};
}, [tierLevel]); }, [tierLevel]);
return ( return (
<div <div
@@ -20,7 +25,7 @@ export const EditTierModal = () => {
}} }}
> >
<div <div
className={`absolute top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] flex w-2/5 h-1/4 bg-[#2d3436] ps-8 pe-8 pt-8 pb-8 z-50 rounded-3xl flex-row gap-4 justify-center items-center text-white border-white border-2`} className={`absolute top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] flex md:w-2/5 w-5/6 h-1/4 bg-[#2d3436] ps-8 pe-8 pt-8 pb-8 z-50 rounded-3xl flex-row gap-4 justify-center items-center text-white border-white border-2`}
onClick={e => { onClick={e => {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();

View File

@@ -1,5 +1,7 @@
.tier_name:hover { .tier_name:hover {
@media(min-width: 768px) {
button { button {
opacity: 1; opacity: 1;
} }
} }
}

View File

@@ -49,7 +49,7 @@ export const Tier = ({ color, name, textColor, id }: TierProps) => {
}} }}
> >
<button <button
className='absolute right-[5%] top-[5%] opacity-0 transition duration-250 ease-in-out' className='absolute right-[5%] top-[5%] md:opacity-0 transition duration-250 ease-in-out'
onClick={() => { onClick={() => {
setEditingTierLevel({ name, color, textColor, id }); setEditingTierLevel({ name, color, textColor, id });
}} }}

View File

@@ -1,3 +1,4 @@
import { useEffect } from 'react';
import { useShallow } from 'zustand/shallow'; import { useShallow } from 'zustand/shallow';
import useStore from '../store'; import useStore from '../store';
import { TierModalCategory } from './TierModalCategory'; import { TierModalCategory } from './TierModalCategory';
@@ -5,11 +6,19 @@ import { TierModalCategory } from './TierModalCategory';
export const TierModal = () => { export const TierModal = () => {
const [modalOpen, tierLevels] = useStore(useShallow(state => [state.tierLevelsModalOpen, state.tierLevels])); const [modalOpen, tierLevels] = useStore(useShallow(state => [state.tierLevelsModalOpen, state.tierLevels]));
useEffect(() => {
if (modalOpen) document.body.style.overflow = 'hidden';
else document.body.style.overflow = 'auto';
return () => {
document.body.style.overflow = 'auto';
};
}, [modalOpen]);
return ( return (
<div <div
className={`fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] ${ className={`fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%] ${
modalOpen ? 'flex' : 'hidden' modalOpen ? 'flex' : 'hidden'
} min-w-[300px] md:w-[70vw] md:h-1/4 h-[90vh] bg-[#2d3436] ps-8 pe-8 pt-8 pb-8 z-50 rounded-3xl flex-col md:flex-row gap-4 justify-center items-center text-white border-white border-2`} } min-w-[300px] md:w-[70vw] md:h-1/4 h-[90vh] bg-[#1e2324] ps-8 pe-8 pt-8 pb-8 z-50 rounded-3xl flex-col md:flex-row gap-4 justify-center items-center text-white border-white border-2`}
> >
{tierLevels.map(tier_level => ( {tierLevels.map(tier_level => (
<TierModalCategory name={tier_level.name} color={tier_level.color} textColor={tier_level.textColor} /> <TierModalCategory name={tier_level.name} color={tier_level.color} textColor={tier_level.textColor} />