1
0
mirror of https://github.com/zumbiepig/MineXLauncher.git synced 2025-06-08 08:14:48 +00:00
This commit is contained in:
zumbiepig 2024-09-04 12:29:18 -07:00
parent b37f22e6eb
commit 50276b8608
No known key found for this signature in database
GPG Key ID: 17C891BE28B953DE
17 changed files with 134 additions and 36 deletions

View File

@ -17,7 +17,7 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="main-panel">

View File

@ -9,6 +9,35 @@
<link rel="stylesheet" id="theme" onload="document.documentElement.style.display = ''" />
<script src="/resources/scripts/google-tag.js"></script>
<script src="/resources/scripts/main.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const modal = document.getElementById('article-modal');
const modalContent = document.getElementById('article-modal-content');
const closeButton = document.querySelector('.close-button');
document.querySelectorAll('.article-item').forEach((item) => {
item.addEventListener('click', function () {
const articleName = this.querySelector('.article-name').textContent;
const articleDescription = this.querySelector('.article-description').textContent;
modalContent.innerHTML = `
<h2>${articleName}</h2>
<p>${articleDescription}</p>
`;
modal.style.display = 'block';
});
});
closeButton.addEventListener('click', function () {
modal.style.display = 'none';
});
modal.addEventListener('click', function () {
modal.style.display = 'none';
});
});
</script>
</head>
<body>
<div class="ads-container">
@ -16,12 +45,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">
@ -65,6 +94,27 @@
</div>
</div>
</div>
<div class="article-modal" id="article-modal">
<span class="close-button">&times;</span>
<div id="article-content">
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
</div>
</div>
</div>
</div>
<div class="bottom-bar">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -13,12 +13,12 @@
<body>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item selected" onclick="navigate.mobile()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -17,7 +17,7 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="main-panel">

View File

@ -14,12 +14,12 @@
<body>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item selected" href="/offline/">

View File

@ -763,3 +763,51 @@ nav {
color: #bbb;
margin-bottom: 10px;
}
.article-modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.5);
transition: opacity 0.3s ease;
background-color: #333;
margin: 15% auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
color: #fff;
border-radius: 8px;
max-width: 80vw;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
animation: slide-down 0.3s ease-out;
}
.close-button {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close-button:hover,
.close-button:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
@keyframes slide-down {
from {
transform: translateY(-50px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item" onclick="navigate.updates()">

View File

@ -16,12 +16,12 @@
</div>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="sidebar">
<div class="profile">
<span class="profile-name" id="profile-name"></span>
<span class="profile-name"></span>
</div>
<nav>
<li class="nav-item selected" onclick="navigate.updates()">
@ -55,7 +55,7 @@
<span class="game-title">Updates</span>
</div>
<div class="main-content">
<div class="updates-container" id="updates-container"></div>
<div class="updates-container"></div>
</div>
</div>
</div>

View File

@ -14,7 +14,7 @@
<body>
<div class="launcher">
<div class="title-bar">
<span id="title-bar-text">MineXLauncher</span>
<span>MineXLauncher</span>
</div>
<div class="content">
<div class="main-panel">

View File

@ -377,8 +377,8 @@ if (window.location.pathname === '/') {
theme.load();
document.addEventListener('DOMContentLoaded', async () => {
const profileName = document.getElementById('profile-name');
const titleBarText = document.getElementById('title-bar-text');
const profileName = document.querySelector('.profile-name');
const titleBarText = document.querySelector('.title-bar span');
const lastVersion = storage.local.get('lastVersion');
const updateData = (await (await fetch('/resources/data/main.json')).json()).updates;
@ -407,7 +407,7 @@ if (window.location.pathname === '/') {
googleAdsPush.text = '(adsbygoogle = window.adsbygoogle || []).push({});';
document.body.appendChild(googleAdsPush);
const adsContainers = Array.from(document.getElementsByClassName('ads-container')) as HTMLElement[];
const adsContainers = document.querySelectorAll('ads-container');
adsContainers.forEach((adsContainer) => {
adsContainer.style.display = 'flex';
});
@ -417,12 +417,12 @@ if (window.location.pathname === '/') {
if (window.location.pathname === '/settings/') {
document.addEventListener('DOMContentLoaded', async () => {
const profileName = document.getElementById('profile-name');
const profileName = document.querySelector('.profile-name');
const usernameInput = document.getElementById('username-input') as HTMLInputElement;
const themeSelect = document.getElementById('theme-select') as HTMLSelectElement;
// const offlineCheckbox = document.getElementById('offline-checkbox') as HTMLInputElement;
// const adsCheckbox = document.getElementById('ads-checkbox') as HTMLInputElement;
const themeData: { id: string; name: string }[] = (await (await fetch('/resources/data/main.json')).json()).themes;
const themeData: { id: string; name: string }[] = await(await fetch('/resources/data/main.json')).json().themes;
themeData.forEach((theme: { id: string; name: string }) => {
const option = document.createElement('option');
@ -462,7 +462,7 @@ if (window.location.pathname === '/settings/') {
/* adsCheckbox.addEventListener('change', () => {
storage.local.set('showAds', adsCheckbox.checked);
const adsContainers = Array.from(document.getElementsByClassName('ads-container')) as HTMLElement[];
const adsContainers = querySelectorAll('ads-container');
adsContainers.forEach((adsContainer) => (adsContainer.style.display = 'none'));
}); */
});
@ -543,7 +543,7 @@ if (window.location.pathname === '/settings/') {
if (addonType === 'mods') {
const installedMods = storage.local.get('mods') ?? [];
const modElements = Array.from(document.getElementsByClassName('mod-install')) as HTMLAnchorElement[];
const modElements = document.querySelectorAll('mod-install');
modElements.forEach((modElement) => {
const modId = /^mod-install-(.*)$/.exec(modElement.id)?.[1];
if (installedMods.includes(`/resources/mods/downloads/${modId}.js`)) {
@ -555,7 +555,7 @@ if (window.location.pathname === '/settings/') {
});
} else if (window.location.pathname === '/updates/') {
document.addEventListener('DOMContentLoaded', async () => {
const updatesContainer = document.getElementById('updates-container');
const updatesContainer = document.querySelector('.updates-container');
const updateData: { version: string; changelog: string[] }[] = (await (await fetch('/resources/data/main.json')).json()).updates;
updateData.forEach((update) => {
const versionHeader = document.createElement('strong');