nice flow state decent and cleaning things up in terms of router and such
This commit is contained in:
@@ -45,7 +45,7 @@
|
|||||||
"port": "4001",
|
"port": "4001",
|
||||||
"loggerPort": "9002",
|
"loggerPort": "9002",
|
||||||
"mainConfig": "./webpack.main.config.js",
|
"mainConfig": "./webpack.main.config.js",
|
||||||
"devContentSecurityPolicy": "connect-src 'self' http://localhost:5000 ws://localhost:5000 'unsafe-eval'",
|
"devContentSecurityPolicy": "connect-src 'self' https://zenquotes.io/api http://localhost:5000 ws://localhost:5000 'unsafe-eval'",
|
||||||
"renderer": {
|
"renderer": {
|
||||||
"config": "./webpack.renderer.config.js",
|
"config": "./webpack.renderer.config.js",
|
||||||
"entryPoints": [
|
"entryPoints": [
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export default function NirvanaHeader({
|
|||||||
const inputRef = useRef<HTMLInputElement>(null);
|
const inputRef = useRef<HTMLInputElement>(null);
|
||||||
const [searchInput, setSearchInput] = useState<string>("");
|
const [searchInput, setSearchInput] = useState<string>("");
|
||||||
|
|
||||||
const desktopMode = useRecoilValue($desktopMode);
|
const [desktopMode, setDesktopMode] = useRecoilState($desktopMode);
|
||||||
|
|
||||||
const [mediaSettings, setMediaSettings] = useRecoilState($mediaSettings);
|
const [mediaSettings, setMediaSettings] = useRecoilState($mediaSettings);
|
||||||
|
|
||||||
@@ -147,9 +147,21 @@ export default function NirvanaHeader({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{/* todo: move this ghost button to components */}
|
{/* todo: move this ghost button to components */}
|
||||||
<button className="text-gray-300 text-xs p-3 transition-all hover:bg-gray-200">
|
{desktopMode === "flowState" ? (
|
||||||
flow state
|
<button
|
||||||
</button>
|
onClick={() => setDesktopMode("terminal")}
|
||||||
|
className="ml-auto text-gray-300 text-xs p-3 transition-all hover:bg-gray-200"
|
||||||
|
>
|
||||||
|
connect
|
||||||
|
</button>
|
||||||
|
) : (
|
||||||
|
<button
|
||||||
|
onClick={() => setDesktopMode("flowState")}
|
||||||
|
className="text-gray-300 text-xs p-3 transition-all hover:bg-gray-200"
|
||||||
|
>
|
||||||
|
flow state
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
|
||||||
<Dropdown overlay={profileMenu}>
|
<Dropdown overlay={profileMenu}>
|
||||||
<div className={"cursor-pointer ml-2"}>
|
<div className={"cursor-pointer ml-2"}>
|
||||||
|
|||||||
@@ -22,15 +22,7 @@ export interface DimensionChangeRequest {
|
|||||||
addDimensions: boolean;
|
addDimensions: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TERMINAL_PRESET: Dimensions = {
|
export const DEFAULT_APP_PRESET: Dimensions = { height: 875, width: 1210 };
|
||||||
height: 675,
|
|
||||||
width: 400,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const TERMINAL_DETAILS_PRESET: Dimensions = {
|
|
||||||
height: 675,
|
|
||||||
width: 800,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const OVERLAY_ONLY_INITIAL_PRESET: Dimensions = {
|
export const OVERLAY_ONLY_INITIAL_PRESET: Dimensions = {
|
||||||
height: 50,
|
height: 50,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
ipcMain,
|
ipcMain,
|
||||||
screen,
|
screen,
|
||||||
} from "electron";
|
} from "electron";
|
||||||
import Channels, { TERMINAL_PRESET } from "./electron/constants";
|
import Channels, { DEFAULT_APP_PRESET } from "./electron/constants";
|
||||||
|
|
||||||
import { DimensionChangeRequest } from "./electron/constants";
|
import { DimensionChangeRequest } from "./electron/constants";
|
||||||
import { handleGoogleLogin } from "./electron/handleLogin";
|
import { handleGoogleLogin } from "./electron/handleLogin";
|
||||||
@@ -36,7 +36,7 @@ let display: Display;
|
|||||||
const createWindow = (): void => {
|
const createWindow = (): void => {
|
||||||
// Create the browser window.
|
// Create the browser window.
|
||||||
browserWindow = new BrowserWindow({
|
browserWindow = new BrowserWindow({
|
||||||
...{ height: TERMINAL_PRESET.height, width: TERMINAL_PRESET.width },
|
...DEFAULT_APP_PRESET,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
|
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
|
||||||
sandbox: true,
|
sandbox: true,
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ import {
|
|||||||
$numberActiveLines,
|
$numberActiveLines,
|
||||||
$selectedLineId,
|
$selectedLineId,
|
||||||
} from "../../controller/recoil";
|
} from "../../controller/recoil";
|
||||||
import Channels, { Dimensions } from "../../electron/constants";
|
import Channels, {
|
||||||
|
DEFAULT_APP_PRESET,
|
||||||
|
Dimensions,
|
||||||
|
} from "../../electron/constants";
|
||||||
import { useCallback, useEffect } from "react";
|
import { useCallback, useEffect } from "react";
|
||||||
import { useRecoilState, useRecoilValue } from "recoil";
|
import { useRecoilState, useRecoilValue } from "recoil";
|
||||||
|
|
||||||
@@ -25,17 +28,13 @@ export default function NirvanaRouter() {
|
|||||||
let finalDimensions: Dimensions = { height: 0, width: 0 };
|
let finalDimensions: Dimensions = { height: 0, width: 0 };
|
||||||
let finalPosition: "center" | "topRight";
|
let finalPosition: "center" | "topRight";
|
||||||
|
|
||||||
const setAlwaysOnTop =
|
const setAlwaysOnTop = desktopMode === "overlayOnly";
|
||||||
desktopMode === "overlayOnly" || desktopMode === "flowState";
|
|
||||||
|
|
||||||
// go hunting for which dimensions to have
|
// go hunting for which dimensions to have
|
||||||
if (desktopMode === "terminal") {
|
if (desktopMode === "terminal" || desktopMode == "flowState") {
|
||||||
finalDimensions = { height: 875, width: 1210 };
|
finalDimensions = DEFAULT_APP_PRESET;
|
||||||
}
|
|
||||||
if (desktopMode === "flowState") {
|
|
||||||
finalPosition = "topRight";
|
|
||||||
finalDimensions = { height: 68, width: 360 };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (desktopMode === "overlayOnly") {
|
if (desktopMode === "overlayOnly") {
|
||||||
finalDimensions = {
|
finalDimensions = {
|
||||||
height: 68 + numberOfOverlayRows * 200,
|
height: 68 + numberOfOverlayRows * 200,
|
||||||
@@ -81,17 +80,32 @@ export default function NirvanaRouter() {
|
|||||||
});
|
});
|
||||||
}, [setDesktopMode, setSelectedLineId]);
|
}, [setDesktopMode, setSelectedLineId]);
|
||||||
|
|
||||||
const handleToggleFlowState = useCallback(() => {
|
|
||||||
setDesktopMode("flowState");
|
|
||||||
}, [setDesktopMode]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<LineDataProvider>
|
<div className="flex flex-col flex-1">
|
||||||
<div className="flex flex-col flex-1">
|
<NirvanaHeader onHeaderFocus={() => setDesktopMode("terminal")} />
|
||||||
<NirvanaHeader onHeaderFocus={() => setDesktopMode("terminal")} />
|
|
||||||
|
|
||||||
<NirvanaTerminal />
|
{desktopMode === "flowState" && <FlowState />}
|
||||||
</div>
|
|
||||||
</LineDataProvider>
|
{/* remount nirvana terminal */}
|
||||||
|
{(desktopMode === "terminal" || desktopMode === "overlayOnly") && (
|
||||||
|
<LineDataProvider>
|
||||||
|
<NirvanaTerminal overlayOnly={desktopMode === "overlayOnly"} />
|
||||||
|
</LineDataProvider>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function FlowState() {
|
||||||
|
useEffect(() => {
|
||||||
|
fetch("http://zenquotes.io/api/random", { method: "GET" })
|
||||||
|
.then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// do nothing, don't bother user, just don't show the quote
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return <>{}</>;
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,7 +16,11 @@ import NewLineModal from "./newLine";
|
|||||||
import toast from "react-hot-toast";
|
import toast from "react-hot-toast";
|
||||||
import { useLineDataProvider } from "../../controller/lineDataProvider";
|
import { useLineDataProvider } from "../../controller/lineDataProvider";
|
||||||
|
|
||||||
export default function NirvanaTerminal() {
|
export default function NirvanaTerminal({
|
||||||
|
overlayOnly,
|
||||||
|
}: {
|
||||||
|
overlayOnly: boolean;
|
||||||
|
}) {
|
||||||
const [isModalVisible, setIsModalVisible] = useState<boolean>(false);
|
const [isModalVisible, setIsModalVisible] = useState<boolean>(false);
|
||||||
|
|
||||||
const { data: userDetails } = useGetUserDetails();
|
const { data: userDetails } = useGetUserDetails();
|
||||||
|
|||||||
Reference in New Issue
Block a user