Skip to content

Commit ed3016e

Browse files
committed
Add new header
1 parent 94d254e commit ed3016e

File tree

19 files changed

+310
-248
lines changed

19 files changed

+310
-248
lines changed

src/App.tsx

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ import { ToastContainer } from "react-toastify";
33
import "react-toastify/dist/ReactToastify.css";
44

55
import { Header } from "@/components/Header";
6-
import { PvmSelect } from "@/components/PvmSelect";
7-
import { NumeralSystemSwitch } from "@/components/NumeralSystemSwitch";
86
import { useAppSelector } from "@/store/hooks.ts";
97
import { DebuggerControlls } from "./components/DebuggerControlls";
10-
import classNames from "classnames";
11-
import { DebuggerSettings } from "./components/DebuggerSettings";
128
import DebuggerContent from "@/pages/DebuggerContent.tsx";
139
import ProgramLoader from "@/pages/ProgramLoader.tsx";
1410
import { Navigate, Route, Routes } from "react-router";
@@ -22,22 +18,7 @@ function App() {
2218
<div className="p-3 text-left w-screen">
2319
<div className="flex flex-col gap-5">
2420
<div className="grid grid-rows md:grid-cols-12 gap-1.5 pt-2">
25-
{pvmInitialized ? <DebuggerControlls /> : null}
26-
27-
<div
28-
className={classNames("col-span-12 max-sm:order-first flex align-middle items-center justify-end", {
29-
"md:col-span-6": pvmInitialized,
30-
})}
31-
>
32-
<div className="mx-3">
33-
<DebuggerSettings />
34-
</div>
35-
36-
<div className="w-full md:w-[350px]">
37-
<PvmSelect />
38-
</div>
39-
<NumeralSystemSwitch className="hidden md:flex ml-3" />
40-
</div>
21+
<div className="col-span-12 flex justify-center"> {pvmInitialized ? <DebuggerControlls /> : null}</div>
4122

4223
<Routes>
4324
<Route index element={pvmInitialized ? <DebuggerContent /> : <Navigate to={"/load"} />} />

src/assets/logo.png

-9.45 KB
Binary file not shown.

src/assets/logo.svg

Lines changed: 18 additions & 0 deletions
Loading

src/components/DebuggerControlls/index.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { useDebuggerActions } from "@/hooks/useDebuggerActions";
1717
import { useState } from "react";
1818
import { ErrorWarningTooltip } from "../ErrorWarningTooltip";
1919
import { isSerializedError } from "@/store/utils";
20+
import { Separator } from "../ui/separator";
2021

2122
export const DebuggerControlls = () => {
2223
const debuggerActions = useDebuggerActions();
@@ -89,7 +90,7 @@ export const DebuggerControlls = () => {
8990
};
9091

9192
return (
92-
<div className="col-span-12 md:col-span-6 max-sm:order-2 flex align-middle max-sm:justify-between mb-3">
93+
<div className="col-span-12 md:col-span-6 max-sm:order-2 flex align-middle max-sm:justify-between mb-3 bg-gray-100 p-3 rounded-xl border border-gray-200">
9394
<div className="md:mr-3">
9495
<ProgramLoader
9596
initialState={initialState}
@@ -99,8 +100,10 @@ export const DebuggerControlls = () => {
99100
}}
100101
/>
101102
</div>
103+
<Separator orientation="vertical" />
102104
<Button
103105
className="md:mr-3"
106+
variant="ghost"
104107
onClick={() => {
105108
debuggerActions.restartProgram(initialState);
106109
setError(undefined);
@@ -110,23 +113,27 @@ export const DebuggerControlls = () => {
110113
<RefreshCcw className="w-3.5 md:mr-1.5" />
111114
<span className="hidden md:block">Reset</span>
112115
</Button>
116+
<Separator orientation="vertical" />
113117
{!isDebugFinished && isRunMode ? (
114-
<Button className="md:mr-3" onClick={handlePauseProgram}>
118+
<Button className="md:mr-3" variant="ghost" onClick={handlePauseProgram}>
115119
<Pause className="w-3.5 md:mr-1.5" />
116120
<span className="hidden md:block">Stop</span>
117121
</Button>
118122
) : (
119123
<Button
120124
className="md:mr-3"
125+
variant="ghost"
121126
onClick={handleRunProgram}
122127
disabled={isDebugFinished || !pvmInitialized || isProgramEditMode || isLoading || !!error}
123128
>
124129
{isLoading ? <LoadingSpinner className="w-3.5 md:mr-1.5" size={20} /> : <Play className="w-3.5 md:mr-1.5" />}
125130
<span className="hidden md:block">Run</span>
126131
</Button>
127132
)}
133+
<Separator orientation="vertical" />
128134
<Button
129135
className="md:mr-3"
136+
variant="ghost"
130137
onClick={onNext}
131138
disabled={
132139
(!isDebugFinished && isRunMode) ||

src/components/DebuggerSettings/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export const DebuggerSettings = () => {
4949
<Dialog>
5050
<DialogTrigger>
5151
<div className="opacity-60 mt-2">
52-
<Settings />
52+
<Settings className="text-gray-400" />
5353
</div>
5454
</DialogTrigger>
5555
<DialogContent>

src/components/Header/index.tsx

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,23 @@
1-
import Logo from "@/assets/logo.png";
2-
import GithubLogo from "@/assets/github-mark-white.svg";
3-
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip.tsx";
1+
import { Header as FluffyHeader } from "@/packages/ui-kit/Header";
2+
import { DebuggerSettings } from "../DebuggerSettings";
3+
import { PvmSelect } from "../PvmSelect";
4+
import { NumeralSystemSwitch } from "../NumeralSystemSwitch";
45

5-
export const Header = () => {
6+
const EndSlot = () => {
67
return (
7-
<div className="bg-black w-full flex flex-row items-center justify-between p-1 h-16 overflow-hidden">
8-
<div className="flex items-center gap-5">
9-
<img src={Logo} alt="FluffyLabs logo" className="w-[90px] ml-3" />
10-
<pre className="text-brand">PVM debugger</pre>
11-
<Environment />
8+
<div className="text-white flex">
9+
<NumeralSystemSwitch className="hidden md:flex mx-7" />
10+
11+
<div className="w-full md:w-[350px]">
12+
<PvmSelect />
1213
</div>
13-
<div className="mr-3 text-white flex flex-row items-center justify-center gap-5">
14-
<TooltipProvider>
15-
<Tooltip>
16-
<TooltipTrigger>
17-
<a target="_blank" href="https://github.com/fluffylabs/pvm-debugger" rel="noreferrer">
18-
<img src={GithubLogo} alt="GitHub logo" width={32} />
19-
</a>
20-
</TooltipTrigger>
21-
<TooltipContent side="left">
22-
<p>Report an issue or fork on Github</p>
23-
</TooltipContent>
24-
</Tooltip>
25-
</TooltipProvider>
14+
15+
<div className="mx-7">
16+
<DebuggerSettings />
2617
</div>
2718
</div>
2819
);
2920
};
30-
31-
const Environment = () => {
32-
const { host } = window.location;
33-
let env = "PR preview";
34-
if (host === "pvm.fluffylabs.dev") {
35-
env = "prod";
36-
} else if (host === "pvm-debugger.netlify.app") {
37-
env = "beta";
38-
}
39-
40-
return <pre className="text-white text-xs">{env}</pre>;
21+
export const Header = () => {
22+
return <FluffyHeader endSlot={<EndSlot />} />;
4123
};

src/components/Instructions/InstructionItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { InstructionMode } from "./types";
66
import { ForwardedRef, forwardRef, useCallback, useContext, useState } from "react";
77
import { NumeralSystemContext } from "@/context/NumeralSystemContext";
88
import { TableCell, TableRow } from "../ui/table";
9-
import { ProgramRow } from ".";
9+
import { ProgramRow } from "./InstructionsTable";
1010
import { useAppSelector } from "@/store/hooks.ts";
1111
import { selectWorkers, WorkerState } from "@/store/workers/workersSlice.ts";
1212
import { hexToRgb } from "@/lib/utils.ts";

0 commit comments

Comments
 (0)