Download src/components/features/controls/git-tools-submenu.tsx from SaylorTwift/openhands: direct link, hf CLI and curl.
- Browser
- Download file 3.07 kB
-
https://huggingface.co/SaylorTwift/openhands/resolve/main/src/components/features/controls/git-tools-submenu.tsx
- Command line
-
hf download hf://SaylorTwift/openhands/src/components/features/controls/git-tools-submenu.tsx
-
curl -L -o git-tools-submenu.tsx https://huggingface.co/SaylorTwift/openhands/resolve/main/src/components/features/controls/git-tools-submenu.tsx
3.07 kB
| import { useTranslation } from "react-i18next"; | |
| import { ContextMenu } from "#/ui/context-menu"; | |
| import { ContextMenuListItem } from "../context-menu/context-menu-list-item"; | |
| import { ToolsContextMenuIconText } from "./tools-context-menu-icon-text"; | |
| import { useActiveConversation } from "#/hooks/query/use-active-conversation"; | |
| import { Provider } from "#/types/settings"; | |
| import { | |
| getGitPullPrompt, | |
| getGitPushPrompt, | |
| getCreatePRPrompt, | |
| getCreateNewBranchPrompt, | |
| } from "#/utils/utils"; | |
| import { useConversationStore } from "#/stores/conversation-store"; | |
| import ArrowUpIcon from "#/icons/u-arrow-up.svg?react"; | |
| import ArrowDownIcon from "#/icons/u-arrow-down.svg?react"; | |
| import PrIcon from "#/icons/u-pr.svg?react"; | |
| import CodeBranchIcon from "#/icons/u-code-branch.svg?react"; | |
| import { I18nKey } from "#/i18n/declaration"; | |
| const submenuListItemClassName = "!w-auto whitespace-nowrap"; | |
| interface GitToolsSubmenuProps { | |
| onClose: () => void; | |
| } | |
| export function GitToolsSubmenu({ onClose }: GitToolsSubmenuProps) { | |
| const { t } = useTranslation("openhands"); | |
| const { setMessageToSend } = useConversationStore(); | |
| const { data: conversation } = useActiveConversation(); | |
| const currentGitProvider = conversation?.git_provider as Provider; | |
| const onGitPull = () => { | |
| setMessageToSend(getGitPullPrompt()); | |
| onClose(); | |
| }; | |
| const onGitPush = () => { | |
| setMessageToSend(getGitPushPrompt(currentGitProvider)); | |
| onClose(); | |
| }; | |
| const onCreatePR = () => { | |
| setMessageToSend(getCreatePRPrompt(currentGitProvider)); | |
| onClose(); | |
| }; | |
| const onCreateNewBranch = () => { | |
| setMessageToSend(getCreateNewBranchPrompt()); | |
| onClose(); | |
| }; | |
| return ( | |
| <ContextMenu testId="git-tools-submenu" className="w-max"> | |
| <ContextMenuListItem | |
| testId="git-pull-button" | |
| onClick={onGitPull} | |
| className={submenuListItemClassName} | |
| > | |
| <ToolsContextMenuIconText | |
| icon={<ArrowDownIcon width={16} height={16} />} | |
| text={t(I18nKey.COMMON$GIT_PULL)} | |
| /> | |
| </ContextMenuListItem> | |
| <ContextMenuListItem | |
| testId="git-push-button" | |
| onClick={onGitPush} | |
| className={submenuListItemClassName} | |
| > | |
| <ToolsContextMenuIconText | |
| icon={<ArrowUpIcon width={16} height={16} />} | |
| text={t(I18nKey.COMMON$GIT_PUSH)} | |
| /> | |
| </ContextMenuListItem> | |
| <ContextMenuListItem | |
| testId="create-pr-button" | |
| onClick={onCreatePR} | |
| className={submenuListItemClassName} | |
| > | |
| <ToolsContextMenuIconText | |
| icon={<PrIcon width={16} height={16} />} | |
| text={t(I18nKey.COMMON$CREATE_PR)} | |
| /> | |
| </ContextMenuListItem> | |
| <ContextMenuListItem | |
| testId="create-new-branch-button" | |
| onClick={onCreateNewBranch} | |
| className={submenuListItemClassName} | |
| > | |
| <ToolsContextMenuIconText | |
| icon={<CodeBranchIcon width={16} height={16} />} | |
| text={t(I18nKey.COMMON$CREATE_NEW_BRANCH)} | |
| /> | |
| </ContextMenuListItem> | |
| </ContextMenu> | |
| ); | |
| } | |