Refactor: put freeze inside more
This commit is contained in:
parent
f4a8b31012
commit
ce4550d2ce
7 changed files with 54 additions and 51 deletions
|
|
@ -804,6 +804,10 @@ export const defaultShortcuts = [
|
||||||
name: "Update",
|
name: "Update",
|
||||||
shortcut: `${navigator.userAgent.toUpperCase().includes("MAC") ? "Cmd" : "Ctrl"} + U`,
|
shortcut: `${navigator.userAgent.toUpperCase().includes("MAC") ? "Cmd" : "Ctrl"} + U`,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Freeze",
|
||||||
|
shortcut: `${navigator.userAgent.toUpperCase().includes("MAC") ? "Cmd" : "Ctrl"} + F`,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const unavailableShortcutss = [
|
export const unavailableShortcutss = [
|
||||||
|
|
@ -825,6 +829,7 @@ export const unavailableShortcutss = [
|
||||||
"CTRL + Y",
|
"CTRL + Y",
|
||||||
"CTRL + J",
|
"CTRL + J",
|
||||||
"CTRL + U",
|
"CTRL + U",
|
||||||
|
"CTRL + F",
|
||||||
];
|
];
|
||||||
export const DEFAULT_TABLE_ALERT_MSG = `Oops! It seems there's no data to display right now. Please check back later.`;
|
export const DEFAULT_TABLE_ALERT_MSG = `Oops! It seems there's no data to display right now. Please check back later.`;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,20 @@ export default function NodeToolbarComponent({
|
||||||
downloadNode(flowComponent!);
|
downloadNode(flowComponent!);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleFreeze(e: KeyboardEvent) {
|
||||||
|
e.preventDefault();
|
||||||
|
setNode(data.id, (old) => ({
|
||||||
|
...old,
|
||||||
|
data: {
|
||||||
|
...old.data,
|
||||||
|
node: {
|
||||||
|
...old.data.node,
|
||||||
|
frozen: old.data?.node?.frozen ? false : true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
const advanced = useShortcutsStore((state) => state.advanced);
|
const advanced = useShortcutsStore((state) => state.advanced);
|
||||||
const minimize = useShortcutsStore((state) => state.minimize);
|
const minimize = useShortcutsStore((state) => state.minimize);
|
||||||
const share = useShortcutsStore((state) => state.share);
|
const share = useShortcutsStore((state) => state.share);
|
||||||
|
|
@ -157,6 +171,7 @@ export default function NodeToolbarComponent({
|
||||||
const group = useShortcutsStore((state) => state.group);
|
const group = useShortcutsStore((state) => state.group);
|
||||||
const update = useShortcutsStore((state) => state.update);
|
const update = useShortcutsStore((state) => state.update);
|
||||||
const download = useShortcutsStore((state) => state.download);
|
const download = useShortcutsStore((state) => state.download);
|
||||||
|
const freeze = useShortcutsStore((state) => state.freeze);
|
||||||
|
|
||||||
useHotkeys(minimize, handleMinimizeWShortcut);
|
useHotkeys(minimize, handleMinimizeWShortcut);
|
||||||
useHotkeys(update, handleUpdateWShortcut);
|
useHotkeys(update, handleUpdateWShortcut);
|
||||||
|
|
@ -167,7 +182,7 @@ export default function NodeToolbarComponent({
|
||||||
useHotkeys(save, handleSaveWShortcut);
|
useHotkeys(save, handleSaveWShortcut);
|
||||||
useHotkeys(docs, handleDocsWShortcut);
|
useHotkeys(docs, handleDocsWShortcut);
|
||||||
useHotkeys(download, handleDownloadWShortcut);
|
useHotkeys(download, handleDownloadWShortcut);
|
||||||
useHotkeys("space", handleCodeWShortcut);
|
useHotkeys(freeze, handleFreeze);
|
||||||
|
|
||||||
const isMinimal = numberOfHandles <= 1;
|
const isMinimal = numberOfHandles <= 1;
|
||||||
const isGroup = data.node?.flow ? true : false;
|
const isGroup = data.node?.flow ? true : false;
|
||||||
|
|
@ -233,6 +248,18 @@ export default function NodeToolbarComponent({
|
||||||
}
|
}
|
||||||
saveComponent(cloneDeep(data), false);
|
saveComponent(cloneDeep(data), false);
|
||||||
break;
|
break;
|
||||||
|
case "freeze":
|
||||||
|
setNode(data.id, (old) => ({
|
||||||
|
...old,
|
||||||
|
data: {
|
||||||
|
...old.data,
|
||||||
|
node: {
|
||||||
|
...old.data.node,
|
||||||
|
frozen: old.data?.node?.frozen ? false : true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
break;
|
||||||
case "code":
|
case "code":
|
||||||
setOpenModal(!openModal);
|
setOpenModal(!openModal);
|
||||||
break;
|
break;
|
||||||
|
|
@ -436,36 +463,6 @@ export default function NodeToolbarComponent({
|
||||||
</button>
|
</button>
|
||||||
</ShadTooltip>
|
</ShadTooltip>
|
||||||
|
|
||||||
<ShadTooltip content="Freeze" side="top">
|
|
||||||
<button
|
|
||||||
className={classNames(
|
|
||||||
"relative -ml-px inline-flex items-center bg-background px-2 py-2 text-foreground shadow-md ring-1 ring-inset ring-ring transition-all duration-500 ease-in-out hover:bg-muted focus:z-10",
|
|
||||||
)}
|
|
||||||
onClick={(event) => {
|
|
||||||
event.preventDefault();
|
|
||||||
setNode(data.id, (old) => ({
|
|
||||||
...old,
|
|
||||||
data: {
|
|
||||||
...old.data,
|
|
||||||
node: {
|
|
||||||
...old.data.node,
|
|
||||||
frozen: old.data?.node?.frozen ? false : true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<IconComponent
|
|
||||||
name="Snowflake"
|
|
||||||
className={cn(
|
|
||||||
"h-4 w-4 transition-all",
|
|
||||||
// TODO UPDATE THIS COLOR TO BE A VARIABLE
|
|
||||||
frozen ? "animate-wiggle text-ice" : "",
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
</button>
|
|
||||||
</ShadTooltip>
|
|
||||||
|
|
||||||
<Select onValueChange={handleSelectChange} value="">
|
<Select onValueChange={handleSelectChange} value="">
|
||||||
<ShadTooltip content="More" side="top">
|
<ShadTooltip content="More" side="top">
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
|
|
@ -630,7 +627,18 @@ export default function NodeToolbarComponent({
|
||||||
/>
|
/>
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
)}
|
)}
|
||||||
|
<SelectItem value="freeze">
|
||||||
|
<ToolbarSelectItem
|
||||||
|
shortcut={
|
||||||
|
shortcuts.find((obj) => obj.name === "Freeze")?.shortcut!
|
||||||
|
}
|
||||||
|
isMac={navigator.userAgent.toUpperCase().includes("MAC")}
|
||||||
|
value={"Freeze"}
|
||||||
|
icon={"Snowflake"}
|
||||||
|
dataTestId="group-button-modal"
|
||||||
|
style={`${frozen ? " text-ice" : ""} transition-all`}
|
||||||
|
/>
|
||||||
|
</SelectItem>
|
||||||
<SelectItem value={"delete"} className="focus:bg-red-400/[.20]">
|
<SelectItem value={"delete"} className="focus:bg-red-400/[.20]">
|
||||||
<div className="font-red flex text-status-red">
|
<div className="font-red flex text-status-red">
|
||||||
<IconComponent
|
<IconComponent
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { toolbarSelectItemProps } from "../../../../../types/components";
|
||||||
export default function ToolbarSelectItem({
|
export default function ToolbarSelectItem({
|
||||||
value,
|
value,
|
||||||
icon,
|
icon,
|
||||||
styleObj,
|
style,
|
||||||
dataTestId,
|
dataTestId,
|
||||||
ping,
|
ping,
|
||||||
shortcut,
|
shortcut,
|
||||||
|
|
@ -24,17 +24,15 @@ export default function ToolbarSelectItem({
|
||||||
if (!hasShift) shortcutWPlus = filteredShortcut.join("+");
|
if (!hasShift) shortcutWPlus = filteredShortcut.join("+");
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex" data-testid={dataTestId}>
|
<div className={`flex ${style}`} data-testid={dataTestId}>
|
||||||
<ForwardedIconComponent
|
<ForwardedIconComponent
|
||||||
name={icon}
|
name={icon}
|
||||||
className={`relative top-0.5 mr-2 h-4 w-4 ${styleObj?.iconClasses} ${
|
className={`relative top-0.5 mr-2 h-4 w-4 ${
|
||||||
ping && "animate-pulse text-green-500"
|
ping && "animate-pulse text-green-500"
|
||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
<span className={styleObj?.valueClasses}>{value}</span>
|
<span>{value}</span>
|
||||||
<span
|
<span className={`absolute right-2 top-[0.43em] flex `}>
|
||||||
className={`absolute right-2 top-[0.43em] flex ${styleObj?.keyClasses}`}
|
|
||||||
>
|
|
||||||
{hasShift ? (
|
{hasShift ? (
|
||||||
<>
|
<>
|
||||||
{filteredShortcut[0]}
|
{filteredShortcut[0]}
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,6 @@ export default function EditShortcutButton({
|
||||||
disable?: boolean;
|
disable?: boolean;
|
||||||
setSelected: (selected: string[]) => void;
|
setSelected: (selected: string[]) => void;
|
||||||
}): JSX.Element {
|
}): JSX.Element {
|
||||||
const isMac = navigator.userAgent.toUpperCase().includes("MAC");
|
|
||||||
console.log(shortcut[0]?.split(" ")[0].toLowerCase());
|
|
||||||
let shortcutInitialValue =
|
let shortcutInitialValue =
|
||||||
defaultShortcuts.length > 0
|
defaultShortcuts.length > 0
|
||||||
? defaultShortcuts.find(
|
? defaultShortcuts.find(
|
||||||
|
|
@ -82,7 +80,6 @@ export default function EditShortcutButton({
|
||||||
fixCombination[0] = "mod";
|
fixCombination[0] = "mod";
|
||||||
}
|
}
|
||||||
const shortcutName = shortcut[0].split(" ")[0].toLowerCase();
|
const shortcutName = shortcut[0].split(" ")[0].toLowerCase();
|
||||||
console.log(shortcutName);
|
|
||||||
setUniqueShortcut(shortcutName, fixCombination.join("").toLowerCase());
|
setUniqueShortcut(shortcutName, fixCombination.join("").toLowerCase());
|
||||||
console.log(newCombination);
|
console.log(newCombination);
|
||||||
setShortcuts(newCombination, unavailable);
|
setShortcuts(newCombination, unavailable);
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ export const useShortcutsStore = create<shortcutsStoreType>((set, get) => ({
|
||||||
open: "mod+k",
|
open: "mod+k",
|
||||||
advanced: "mod+shift+a",
|
advanced: "mod+shift+a",
|
||||||
minimize: "mod+shift+q",
|
minimize: "mod+shift+q",
|
||||||
code: "mod+shift+u",
|
code: "space",
|
||||||
copy: "mod+c",
|
copy: "mod+c",
|
||||||
duplicate: "mod+d",
|
duplicate: "mod+d",
|
||||||
share: "mod+shift+s",
|
share: "mod+shift+s",
|
||||||
|
|
@ -29,6 +29,7 @@ export const useShortcutsStore = create<shortcutsStoreType>((set, get) => ({
|
||||||
api: "mod+r",
|
api: "mod+r",
|
||||||
update: "mod+u",
|
update: "mod+u",
|
||||||
download: "mod+j",
|
download: "mod+j",
|
||||||
|
freeze: "mod+f",
|
||||||
updateUniqueShortcut: (name, combination) => {
|
updateUniqueShortcut: (name, combination) => {
|
||||||
set({
|
set({
|
||||||
[name]: combination,
|
[name]: combination,
|
||||||
|
|
|
||||||
|
|
@ -781,14 +781,7 @@ export type toolbarSelectItemProps = {
|
||||||
isMac: boolean;
|
isMac: boolean;
|
||||||
value: string;
|
value: string;
|
||||||
icon: string;
|
icon: string;
|
||||||
styleObj?: {
|
style?: string;
|
||||||
iconClasses?: string;
|
|
||||||
commandClasses?: string;
|
|
||||||
shiftClasses?: string;
|
|
||||||
ctrlClasses?: string;
|
|
||||||
keyClasses?: string;
|
|
||||||
valueClasses?: string;
|
|
||||||
};
|
|
||||||
dataTestId: string;
|
dataTestId: string;
|
||||||
ping?: boolean;
|
ping?: boolean;
|
||||||
shortcut: string;
|
shortcut: string;
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ export type shortcutsStoreType = {
|
||||||
delete: string;
|
delete: string;
|
||||||
update: string;
|
update: string;
|
||||||
download: string;
|
download: string;
|
||||||
|
freeze: string;
|
||||||
shortcuts: Array<{
|
shortcuts: Array<{
|
||||||
name: string;
|
name: string;
|
||||||
shortcut: string;
|
shortcut: string;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue