diff --git a/app/components/@settings/tabs/connections/components/PushToGitHubDialog.tsx b/app/components/@settings/tabs/connections/components/PushToGitHubDialog.tsx index 5346964d..3a571109 100644 --- a/app/components/@settings/tabs/connections/components/PushToGitHubDialog.tsx +++ b/app/components/@settings/tabs/connections/components/PushToGitHubDialog.tsx @@ -13,7 +13,7 @@ import type { FileMap, File } from '~/lib/stores/files'; import { Octokit } from '@octokit/rest'; // Import UI components -import { Badge, EmptyState, StatusIndicator, SearchInput } from '~/components/ui'; +import { Badge, EmptyState, StatusIndicator, SearchInput, CloseButton } from '~/components/ui'; interface PushToGitHubDialogProps { isOpen: boolean; @@ -303,11 +303,8 @@ export function PushToGitHubDialog({ isOpen, onClose, onPush }: PushToGitHubDial

- -
+ +
@@ -414,11 +411,8 @@ export function PushToGitHubDialog({ isOpen, onClose, onPush }: PushToGitHubDial aria-describedby="connection-required-description" >
- -
+ +
- -
+ +
diff --git a/app/components/@settings/tabs/connections/components/RepositoryDialogContext.tsx b/app/components/@settings/tabs/connections/components/RepositoryDialogContext.tsx index 6ca74ff7..8a0490e2 100644 --- a/app/components/@settings/tabs/connections/components/RepositoryDialogContext.tsx +++ b/app/components/@settings/tabs/connections/components/RepositoryDialogContext.tsx @@ -6,7 +6,9 @@ export interface RepositoryDialogContextType { } // Default context value with a no-op function -// eslint-disable-next-line @typescript-eslint/no-empty-function export const RepositoryDialogContext = createContext({ - setShowAuthDialog: () => {}, + // This is intentionally empty as it will be overridden by the provider + setShowAuthDialog: () => { + // No operation + }, }); diff --git a/app/components/ui/CloseButton.tsx b/app/components/ui/CloseButton.tsx new file mode 100644 index 00000000..5c8fff5e --- /dev/null +++ b/app/components/ui/CloseButton.tsx @@ -0,0 +1,49 @@ +import React from 'react'; +import { motion } from 'framer-motion'; +import { classNames } from '~/utils/classNames'; + +interface CloseButtonProps { + onClick?: () => void; + className?: string; + size?: 'sm' | 'md' | 'lg'; +} + +/** + * CloseButton component + * + * A button with an X icon used for closing dialogs, modals, etc. + * The button has a transparent background and only shows a background on hover. + */ +export function CloseButton({ onClick, className, size = 'md' }: CloseButtonProps) { + const sizeClasses = { + sm: 'p-1', + md: 'p-2', + lg: 'p-3', + }; + + const iconSizeClasses = { + sm: 'w-3 h-3', + md: 'w-4 h-4', + lg: 'w-5 h-5', + }; + + return ( + +
+ + ); +} diff --git a/app/components/ui/index.ts b/app/components/ui/index.ts index b3b884e0..15ade2f2 100644 --- a/app/components/ui/index.ts +++ b/app/components/ui/index.ts @@ -21,6 +21,7 @@ export * from './LoadingOverlay'; // New components export * from './Breadcrumbs'; +export * from './CloseButton'; export * from './CodeBlock'; export * from './EmptyState'; export * from './FileIcon';