diff --git a/assets/images/heart.svg b/assets/images/heart.svg
index 0262800..a450b1c 100644
--- a/assets/images/heart.svg
+++ b/assets/images/heart.svg
@@ -1,11 +1,23 @@
diff --git a/src/main/minecraft-launcher.ts b/src/main/minecraft-launcher.ts
index 2689dc9..d9e3ed7 100644
--- a/src/main/minecraft-launcher.ts
+++ b/src/main/minecraft-launcher.ts
@@ -281,7 +281,7 @@ export async function findJava(): Promise {
});
// Предпочитаем Java 21 или 17 для совместимости с authlib-injector
- const preferredVersions = [21, 17, 11];
+ const preferredVersions = [24, 21, 17, 11];
for (const preferredVersion of preferredVersions) {
const preferred = javaVersions.find(
diff --git a/src/renderer/components/CapeCard.tsx b/src/renderer/components/CapeCard.tsx
index 3b24527..d03dd3c 100644
--- a/src/renderer/components/CapeCard.tsx
+++ b/src/renderer/components/CapeCard.tsx
@@ -107,6 +107,16 @@ export default function CapeCard({
color={actionButton.color as 'primary' | 'success' | 'error'}
onClick={() => onAction(capeId)}
disabled={actionDisabled}
+ sx={{
+ borderRadius: '20px',
+ p: '5px 25px',
+ color: 'white',
+ backgroundColor: 'rgb(0, 134, 0)',
+ '&:hover': {
+ backgroundColor: 'rgba(0, 134, 0, 0.5)',
+ },
+ fontFamily: 'Benzin-Bold',
+ }}
>
{actionButton.text}
diff --git a/src/renderer/components/TopBar.tsx b/src/renderer/components/TopBar.tsx
index 8a3898f..3e93800 100644
--- a/src/renderer/components/TopBar.tsx
+++ b/src/renderer/components/TopBar.tsx
@@ -34,6 +34,7 @@ export default function TopBar({ onRegister, username }: TopBarProps) {
const navigate = useNavigate();
const [coins, setCoins] = useState(0);
const [value, setValue] = useState(0);
+ const [activePage, setActivePage] = useState('versions');
const handleChange = (event: React.SyntheticEvent, newValue: number) => {
setValue(newValue);
@@ -60,7 +61,18 @@ export default function TopBar({ onRegister, username }: TopBarProps) {
return 'Запуск';
}
if (isVersionsExplorerPage) {
- return 'Версии';
+ if (activePage === 'versions') {
+ return 'Версии';
+ }
+ if (activePage === 'profile') {
+ return 'Профиль';
+ }
+ if (activePage === 'shop') {
+ return 'Магазин';
+ }
+ if (activePage === 'marketplace') {
+ return 'Рынок';
+ }
}
return 'Неизвестная страница';
};
@@ -122,7 +134,6 @@ export default function TopBar({ onRegister, username }: TopBarProps) {
{(isLaunchPage || isRegistrationPage) && (
)}
{!isLaunchPage && !isRegistrationPage && !isLoginPage && (
-
+
{
+ setActivePage('versions');
+ }}
sx={{
color: 'white',
fontFamily: 'Benzin-Bold',
fontSize: '0.7em',
+ '&.Mui-selected': {
+ color: 'rgba(255, 77, 77, 1)',
+ },
+ '&:hover': {
+ color: 'rgb(199, 199, 199)',
+ },
+ transition: 'all 0.3s ease',
}}
/>
{
+ setActivePage('profile');
+ }}
sx={{
color: 'white',
fontFamily: 'Benzin-Bold',
fontSize: '0.7em',
+ '&.Mui-selected': {
+ color: 'rgba(255, 77, 77, 1)',
+ },
+ '&:hover': {
+ color: 'rgb(199, 199, 199)',
+ },
+ transition: 'all 0.3s ease',
}}
/>
{
+ setActivePage('shop');
+ }}
sx={{
color: 'white',
fontFamily: 'Benzin-Bold',
fontSize: '0.7em',
+ '&.Mui-selected': {
+ color: 'rgba(255, 77, 77, 1)',
+ },
+ '&:hover': {
+ color: 'rgb(199, 199, 199)',
+ },
+ transition: 'all 0.3s ease',
}}
/>
{
+ setActivePage('marketplace');
+ }}
sx={{
color: 'white',
fontFamily: 'Benzin-Bold',
fontSize: '0.7em',
+ '&.Mui-selected': {
+ color: 'rgba(255, 77, 77, 1)',
+ },
+ '&:hover': {
+ color: 'rgb(199, 199, 199)',
+ },
+ transition: 'all 0.3s ease',
}}
/>
@@ -193,7 +257,10 @@ export default function TopBar({ onRegister, username }: TopBarProps) {
WebkitAppRegion: 'drag',
}}
>
-
+
{getPageTitle()}
diff --git a/src/renderer/pages/Marketplace.tsx b/src/renderer/pages/Marketplace.tsx
index e3e6496..b9f4edc 100644
--- a/src/renderer/pages/Marketplace.tsx
+++ b/src/renderer/pages/Marketplace.tsx
@@ -221,9 +221,18 @@ export default function Marketplace() {
diff --git a/src/renderer/pages/Profile.tsx b/src/renderer/pages/Profile.tsx
index c176ed2..c505be7 100644
--- a/src/renderer/pages/Profile.tsx
+++ b/src/renderer/pages/Profile.tsx
@@ -167,7 +167,9 @@ export default function Profile() {
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
- gap: 2,
+ gap: '100px',
+ width: '100%',
+ justifyContent: 'center',
}}
>
{loading ? (
@@ -185,6 +187,20 @@ export default function Profile() {
}}
>
{/* Используем переработанный компонент SkinViewer */}
+
+ {username}
+
-
+
- Shop
{loading ? (
Загрузка...
) : (
@@ -93,9 +94,11 @@ export default function Shop() {
sx={{
display: 'flex',
flexDirection: 'column',
+ flexWrap: 'wrap',
+ alignContent: 'flex-start',
+ width: '90%',
+ height: '80%',
gap: '2vw',
- justifyContent: 'center',
- alignItems: 'center',
}}
>
Доступные плащи