mirror of
https://github.com/LCE-Hub/LCE-Emerald-Launcher.git
synced 2026-09-24 17:11:00 +00:00
feat: show title image on versionsview if windowheight is sufficient
This commit is contained in:
+35
-20
@@ -1,6 +1,11 @@
|
|||||||
import { useEffect, useState, useMemo, useCallback, useRef } from "react";
|
import { useEffect, useState, useMemo, useCallback, useRef } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { motion, AnimatePresence, MotionConfig } from "framer-motion";
|
import {
|
||||||
|
motion,
|
||||||
|
AnimatePresence,
|
||||||
|
MotionConfig,
|
||||||
|
getDefaultTransition,
|
||||||
|
} from "framer-motion";
|
||||||
import "../css/App.css";
|
import "../css/App.css";
|
||||||
import HomeView from "../components/views/HomeView";
|
import HomeView from "../components/views/HomeView";
|
||||||
import SettingsView from "../components/views/SettingsView";
|
import SettingsView from "../components/views/SettingsView";
|
||||||
@@ -105,6 +110,12 @@ export default function App() {
|
|||||||
message: string;
|
message: string;
|
||||||
options?: ToastOptions;
|
options?: ToastOptions;
|
||||||
} | null>(null);
|
} | null>(null);
|
||||||
|
const [windowHeight, setWindowHeight] = useState(window.innerHeight);
|
||||||
|
useEffect(() => {
|
||||||
|
const onResize = () => setWindowHeight(window.innerHeight);
|
||||||
|
window.addEventListener("resize", onResize);
|
||||||
|
return () => window.removeEventListener("resize", onResize);
|
||||||
|
}, []);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const pm = PluginManager.instance;
|
const pm = PluginManager.instance;
|
||||||
pm.setNavigateCallback((viewId) => {
|
pm.setNavigateCallback((viewId) => {
|
||||||
@@ -294,23 +305,27 @@ export default function App() {
|
|||||||
const selectedVersionName = selectedEdition?.name ?? "";
|
const selectedVersionName = selectedEdition?.name ?? "";
|
||||||
const hasAnyInstall = game.installs.length > 0;
|
const hasAnyInstall = game.installs.length > 0;
|
||||||
const titleImage = selectedEdition?.titleImage ?? "/images/MenuTitle.png";
|
const titleImage = selectedEdition?.titleImage ?? "/images/MenuTitle.png";
|
||||||
const TITLE_HIDDEN_VIEWS = new Set([
|
const titleHiddenViews = useMemo(
|
||||||
//neo: why an entire Set for that? yes. the answer is yes.
|
() =>
|
||||||
"workshop",
|
new Set([
|
||||||
"lceonline",
|
//neo: why an entire Set for that? yes. the answer is yes.
|
||||||
"devtools",
|
"workshop",
|
||||||
"guides",
|
"lceonline",
|
||||||
"pck-editor",
|
"devtools",
|
||||||
"arc-editor",
|
"guides",
|
||||||
"loc-editor",
|
"pck-editor",
|
||||||
"grf-editor",
|
"arc-editor",
|
||||||
"col-editor",
|
"loc-editor",
|
||||||
"options-editor",
|
"grf-editor",
|
||||||
"model-editor",
|
"col-editor",
|
||||||
"swf-editor",
|
"options-editor",
|
||||||
"goldmapper",
|
"model-editor",
|
||||||
"versions", //neo: didnt expect that but oh well
|
"swf-editor",
|
||||||
]);
|
"goldmapper",
|
||||||
|
windowHeight >= 744 ? null : "versions",
|
||||||
|
]),
|
||||||
|
[windowHeight],
|
||||||
|
);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleContextMenu = (e: MouseEvent) => e.preventDefault();
|
const handleContextMenu = (e: MouseEvent) => e.preventDefault();
|
||||||
document.addEventListener("contextmenu", handleContextMenu);
|
document.addEventListener("contextmenu", handleContextMenu);
|
||||||
@@ -629,7 +644,7 @@ export default function App() {
|
|||||||
<div className="shrink-0 flex justify-center py-4 relative w-full pt-4">
|
<div className="shrink-0 flex justify-center py-4 relative w-full pt-4">
|
||||||
<div className="relative w-full max-w-135 flex justify-center">
|
<div className="relative w-full max-w-135 flex justify-center">
|
||||||
{activeView !== "credits" &&
|
{activeView !== "credits" &&
|
||||||
!TITLE_HIDDEN_VIEWS.has(activeView) && (
|
!titleHiddenViews.has(activeView) && (
|
||||||
<motion.img
|
<motion.img
|
||||||
layoutId="mainLogo"
|
layoutId="mainLogo"
|
||||||
src={titleImage}
|
src={titleImage}
|
||||||
@@ -643,7 +658,7 @@ export default function App() {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{activeView !== "credits" &&
|
{activeView !== "credits" &&
|
||||||
!TITLE_HIDDEN_VIEWS.has(activeView) && (
|
!titleHiddenViews.has(activeView) && (
|
||||||
<motion.div
|
<motion.div
|
||||||
{...uiFade}
|
{...uiFade}
|
||||||
className="absolute bottom-[20%] right-[5%] w-0 h-0 flex items-center justify-center"
|
className="absolute bottom-[20%] right-[5%] w-0 h-0 flex items-center justify-center"
|
||||||
|
|||||||
Reference in New Issue
Block a user