Skip to content

Commit bbc7e4b

Browse files
clicktodevCakeLancelot
authored andcommitted
Refactor navigation handling to use Next.js router in NavBar and Home components
1 parent c65f27a commit bbc7e4b

2 files changed

Lines changed: 40 additions & 18 deletions

File tree

app/components/NavBar.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Row, Col, Container, Stack } from "react-bootstrap";
22
import Button from "@/components/Button";
33
import { useEffect, useState } from "react";
44
import { getUseCustomTitlebar } from "@/app/util";
5+
import { useRouter } from "next/navigation";
56

67
export default function NavBar({
78
title,
@@ -11,6 +12,7 @@ export default function NavBar({
1112
buttons?: React.ReactNode;
1213
}) {
1314
const [topOffset, setTopOffset] = useState<string>("0");
15+
const router = useRouter();
1416

1517
useEffect(() => {
1618
const fetch = async () => {
@@ -23,16 +25,20 @@ export default function NavBar({
2325
}, []);
2426

2527
return (
26-
<Container fluid className="px-0 pb-0 m-0 nav-bar" style={{
27-
paddingTop: topOffset,
28-
}}>
28+
<Container
29+
fluid
30+
className="px-0 pb-0 m-0 nav-bar"
31+
style={{
32+
paddingTop: topOffset,
33+
}}
34+
>
2935
<Row className="m-0 w-100">
3036
<Col className="p-0">
3137
<Button
3238
text="Back"
3339
icon="angle-double-left"
3440
iconLeft
35-
onClick={() => window.history.back()}
41+
onClick={() => router.back()}
3642
tooltip="Back"
3743
variant="primary"
3844
/>

app/page.tsx

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,21 @@ import LogoImages from "@/components/LogoImages";
3939
import SelectVersionModal from "@/components/SelectVersionModal";
4040
import Toasts from "@/components/Toasts";
4141
import { listen } from "@tauri-apps/api/event";
42-
import { getDebugMode, getTheme, getUseCustomTitlebar, sleep } from "@/app/util";
42+
import {
43+
getDebugMode,
44+
getTheme,
45+
getUseCustomTitlebar,
46+
sleep,
47+
} from "@/app/util";
4348
import ForgotPasswordModal from "./components/ForgotPasswordModal";
49+
import { useRouter } from "next/navigation";
4450

4551
const DEFAULT_TAGLINE =
4652
"Welcome to OpenFusion.\nSelect a server from the list below to get started.";
4753

4854
export default function Home() {
4955
const loadedRef = useRef(false);
56+
const router = useRouter();
5057

5158
const [appName, setAppName] = useState("");
5259
const [launcherVersion, setLauncherVersion] = useState("--");
@@ -62,7 +69,9 @@ export default function Home() {
6269
const [versions, setVersions] = useState<VersionEntry[]>([]);
6370

6471
const [selectedIdx, setSelectedIdx] = useState<number>(-1);
65-
const [currentSession, setCurrentSession] = useState<LoginSession | undefined>(undefined);
72+
const [currentSession, setCurrentSession] = useState<
73+
LoginSession | undefined
74+
>(undefined);
6675

6776
const [alerts, setAlerts] = useState<Alert[]>([]);
6877
const [loadingTasks, setLoadingTasks] = useState<LoadingTask[]>([]);
@@ -156,8 +165,9 @@ export default function Home() {
156165

157166
const checkForUpdate = async () => {
158167
try {
159-
const updateInfo: UpdateInfo | undefined =
160-
await invoke("check_for_update");
168+
const updateInfo: UpdateInfo | undefined = await invoke(
169+
"check_for_update"
170+
);
161171
if (updateInfo) {
162172
setUpdateAvailable(updateInfo);
163173
alertInfo("Update available: " + updateInfo.version, updateInfo.url);
@@ -213,7 +223,7 @@ export default function Home() {
213223

214224
const setVersionForServer = async (
215225
serverUuid: string,
216-
versionUuid: string,
226+
versionUuid: string
217227
) => {
218228
const server = servers.find((s) => s.uuid == serverUuid);
219229
if (!server) {
@@ -267,7 +277,7 @@ export default function Home() {
267277
const connectToServer = async (
268278
serverUuid: string,
269279
versionUuid: string,
270-
sessionToken?: string,
280+
sessionToken?: string
271281
) => {
272282
try {
273283
startLoading("launch");
@@ -301,7 +311,7 @@ export default function Home() {
301311
serverUuid: string,
302312
username: string,
303313
password: string,
304-
email: string,
314+
email: string
305315
) => {
306316
startLoading("do_register");
307317
try {
@@ -328,7 +338,7 @@ export default function Home() {
328338
serverUuid: string,
329339
username: string,
330340
password: string,
331-
remember: boolean,
341+
remember: boolean
332342
) => {
333343
startLoading("do_login");
334344
try {
@@ -436,7 +446,7 @@ export default function Home() {
436446
const updateServer = async (
437447
details: NewServerDetails,
438448
uuid: string,
439-
showSucc?: boolean,
449+
showSucc?: boolean
440450
) => {
441451
try {
442452
const entry: ServerEntry = { ...details, uuid };
@@ -488,7 +498,10 @@ export default function Home() {
488498

489499
const sendOneTimePassword = async (email: string) => {
490500
try {
491-
await invoke("send_otp", { email, serverUuid: getSelectedServer()!.uuid });
501+
await invoke("send_otp", {
502+
email,
503+
serverUuid: getSelectedServer()!.uuid,
504+
});
492505
setShowForgotPasswordModal(false);
493506
alertSuccess("One-time password sent");
494507
} catch (e: unknown) {
@@ -541,9 +554,12 @@ export default function Home() {
541554
servers={servers}
542555
selectedServer={getSelectedServer()}
543556
/>
544-
<Container id="serverselector-container" style={{
545-
paddingTop: topOffset,
546-
}}>
557+
<Container
558+
id="serverselector-container"
559+
style={{
560+
paddingTop: topOffset,
561+
}}
562+
>
547563
<Row id="of-logoheader" className="text-center pt-3">
548564
<Col>
549565
<LogoImages
@@ -630,7 +646,7 @@ export default function Home() {
630646
</div>
631647
<div id="config-button-div">
632648
<Button
633-
onClick={() => (window.location.href = "/settings")}
649+
onClick={() => router.push("/settings")}
634650
variant="primary"
635651
icon="cog"
636652
tooltip="Settings"

0 commit comments

Comments
 (0)