diff --git a/src/views/conflicts-resolution/action-button.tsx b/src/views/conflicts-resolution/action-button.tsx new file mode 100644 index 0000000..63e17c6 --- /dev/null +++ b/src/views/conflicts-resolution/action-button.tsx @@ -0,0 +1,59 @@ +interface ButtonProps { + size?: number | string; + tooltipText: string; + onClick: () => void; + className?: string; +} + +const BaseButton: React.FC = ({ + size = 24, + tooltipText, + onClick, + children, + className, +}) => ( +
+ + {children} + +
+); + +export const ButtonCross: React.FC = (props) => ( + + + + +); + +export const ButtonLeftArrow: React.FC = (props) => ( + + + +); + +export const ButtonRightArrow: React.FC = (props) => ( + + + +); diff --git a/src/views/conflicts-resolution/actions-gutter.tsx b/src/views/conflicts-resolution/actions-gutter.tsx index f40abfd..0dac964 100644 --- a/src/views/conflicts-resolution/actions-gutter.tsx +++ b/src/views/conflicts-resolution/actions-gutter.tsx @@ -1,5 +1,10 @@ import * as React from "react"; import { DiffChunk } from "./diff"; +import { + ButtonCross, + ButtonLeftArrow, + ButtonRightArrow, +} from "./action-button"; interface ActionsGutterProps { diffChunks: DiffChunk[]; @@ -38,6 +43,90 @@ const ActionsGutter: React.FC = ({ : chunk.type == "remove" ? "var(--color-red)" : "var(--color-yellow)"; + let buttons: React.JSX.Element; + if (chunk.type === "add") { + buttons = ( + +
+ { + console.log("CLICKED"); + }} + /> + { + console.log("CLICKED"); + }} + /> +
+
+ ); + } else if (chunk.type === "remove") { + buttons = ( + +
+ { + console.log("CLICKED"); + }} + /> + { + console.log("CLICKED"); + }} + /> +
+
+ ); + } else if (chunk.type === "modify") { + buttons = ( + +
+ { + console.log("CLICKED"); + }} + /> + { + console.log("CLICKED"); + }} + /> +
+
+ ); + } else { + // Just in case we add other types in the future + throw Error("Unknown chunk type"); + } + return ( = ({ stroke={color} strokeWidth="1" /> + {buttons} + {/* +
+
*/}
); };