more fluidity
This commit is contained in:
@@ -121,7 +121,7 @@ export default function NirvanaHeader({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<GlobalHotKeys handlers={handlers} keyMap={keyMap} />
|
<GlobalHotKeys handlers={handlers} keyMap={keyMap} allowChanges />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
className="flex flex-row items-center bg-gray-100 p-4 border-b border-b-gray-200"
|
className="flex flex-row items-center bg-gray-100 p-4 border-b border-b-gray-200"
|
||||||
|
|||||||
@@ -1,9 +1,38 @@
|
|||||||
|
import { GlobalHotKeys, KeyMap } from "react-hotkeys";
|
||||||
|
import { useCallback, useMemo } from "react";
|
||||||
|
|
||||||
|
import { $selectedLineId } from "../../controller/recoil";
|
||||||
import { ILineDetails } from "../router";
|
import { ILineDetails } from "../router";
|
||||||
import LineIcon from "../../components/lines/lineIcon/index";
|
import LineIcon from "../../components/lines/lineIcon/index";
|
||||||
|
import { useRecoilState } from "recoil";
|
||||||
|
|
||||||
export default function LineDetailsTerminal() {
|
export default function LineDetailsTerminal() {
|
||||||
|
const [selectedLineId, setSelectedLineId] = useRecoilState($selectedLineId);
|
||||||
|
|
||||||
|
const handleEscape = useCallback(() => {
|
||||||
|
console.log("deselecting line");
|
||||||
|
|
||||||
|
setSelectedLineId(null);
|
||||||
|
}, [setSelectedLineId]);
|
||||||
|
|
||||||
|
const keyMap: KeyMap = useMemo(
|
||||||
|
() => ({
|
||||||
|
DESELECT_LINE: "esc",
|
||||||
|
}),
|
||||||
|
[handleEscape]
|
||||||
|
);
|
||||||
|
|
||||||
|
const handlers = useMemo(
|
||||||
|
() => ({
|
||||||
|
DESELECT_LINE: handleEscape,
|
||||||
|
}),
|
||||||
|
[handleEscape]
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<></>
|
<>
|
||||||
|
<GlobalHotKeys handlers={handlers} keyMap={keyMap} allowChanges />
|
||||||
|
</>
|
||||||
// <div
|
// <div
|
||||||
// id={`${selectedLine.lineId}-lineDetailsTerminal`}
|
// id={`${selectedLine.lineId}-lineDetailsTerminal`}
|
||||||
// className="flex flex-col bg-gray-100 w-[400px]"
|
// className="flex flex-col bg-gray-100 w-[400px]"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import Channels, {
|
|||||||
TERMINAL_DETAILS_PRESET,
|
TERMINAL_DETAILS_PRESET,
|
||||||
TERMINAL_PRESET,
|
TERMINAL_PRESET,
|
||||||
} from "../../electron/constants";
|
} from "../../electron/constants";
|
||||||
|
import { GlobalHotKeys, KeyMap } from "react-hotkeys";
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { useCallback, useEffect, useMemo } from "react";
|
import { useCallback, useEffect, useMemo } from "react";
|
||||||
import { useRecoilState, useRecoilValue } from "recoil";
|
import { useRecoilState, useRecoilValue } from "recoil";
|
||||||
@@ -231,13 +232,14 @@ export default function NirvanaRouter() {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// add dimensions if it's not overlay only mode
|
// add dimensions if it's not overlay only mode
|
||||||
let finalDimensions: Dimensions = { height: 0, width: 0 };
|
let finalDimensions: Dimensions = { height: 0, width: 0 };
|
||||||
let finalPosition;
|
let finalPosition: "center" | "topRight";
|
||||||
|
|
||||||
const setAlwaysOnTop =
|
const setAlwaysOnTop =
|
||||||
desktopMode === "overlayOnly" || desktopMode === "flowState";
|
desktopMode === "overlayOnly" || desktopMode === "flowState";
|
||||||
|
|
||||||
// go hunting for which dimensions to have
|
// go hunting for which dimensions to have
|
||||||
if (desktopMode === "terminal") {
|
if (desktopMode === "terminal") {
|
||||||
|
finalPosition = "center";
|
||||||
finalDimensions = { height: 675, width: 400 };
|
finalDimensions = { height: 675, width: 400 };
|
||||||
}
|
}
|
||||||
if (desktopMode === "terminalDetails") {
|
if (desktopMode === "terminalDetails") {
|
||||||
@@ -298,7 +300,10 @@ export default function NirvanaRouter() {
|
|||||||
if (selectedLineId && desktopMode === "terminal") {
|
if (selectedLineId && desktopMode === "terminal") {
|
||||||
console.log("selected line right now", selectedLineId);
|
console.log("selected line right now", selectedLineId);
|
||||||
setDesktopMode("terminalDetails");
|
setDesktopMode("terminalDetails");
|
||||||
}
|
} else if (!selectedLineId && desktopMode === "terminalDetails")
|
||||||
|
setDesktopMode("terminal");
|
||||||
|
|
||||||
|
// TODO: add more cases step by step based on experience I want
|
||||||
}, [selectedLineId, desktopMode, setDesktopMode]);
|
}, [selectedLineId, desktopMode, setDesktopMode]);
|
||||||
|
|
||||||
const handleToggleFlowState = useCallback(() => {
|
const handleToggleFlowState = useCallback(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user