diff --git a/src/components/dialogs/UnlockerSelectionDialog.tsx b/src/components/dialogs/UnlockerSelectionDialog.tsx new file mode 100644 index 0000000..ec89b8c --- /dev/null +++ b/src/components/dialogs/UnlockerSelectionDialog.tsx @@ -0,0 +1,95 @@ +import React from 'react' +import { + Dialog, + DialogHeader, + DialogBody, + DialogFooter, + DialogActions, +} from '@/components/dialogs' +import { Button } from '@/components/buttons' +import { Icon, info } from '@/components/icons' + +export interface UnlockerSelectionDialogProps { + visible: boolean + gameTitle: string + onClose: () => void + onSelectCreamLinux: () => void + onSelectSmokeAPI: () => void +} + +/** + * Unlocker Selection Dialog component + * Allows users to choose between CreamLinux and SmokeAPI for native Linux games + */ +const UnlockerSelectionDialog: React.FC = ({ + visible, + gameTitle, + onClose, + onSelectCreamLinux, + onSelectSmokeAPI, +}) => { + return ( + + +
+

Choose Unlocker

+
+
+ + +
+

+ Select which unlocker to install for {gameTitle}: +

+ +
+
+
+

CreamLinux

+ Recommended +
+

+ Native Linux DLC unlocker. Works best with most native Linux games and provides + better compatibility. +

+ +
+ +
+
+

SmokeAPI

+ Alternative +
+

+ Cross-platform DLC unlocker. Try this if CreamLinux doesn't work for your game. + Automatically fetches DLC information. +

+ +
+
+ +
+ + + You can always uninstall and try the other option if one doesn't work properly. + +
+
+
+ + + + + + +
+ ) +} + +export default UnlockerSelectionDialog \ No newline at end of file diff --git a/src/components/dialogs/index.ts b/src/components/dialogs/index.ts index 761695e..adf8246 100644 --- a/src/components/dialogs/index.ts +++ b/src/components/dialogs/index.ts @@ -10,6 +10,7 @@ export { default as SettingsDialog } from './SettingsDialog' export { default as SmokeAPISettingsDialog } from './SmokeAPISettingsDialog' export { default as ConflictDialog } from './ConflictDialog' export { default as DisclaimerDialog } from './DisclaimerDialog' +export { default as UnlockerSelectionDialog} from './UnlockerSelectionDialog' // Export types export type { DialogProps } from './Dialog' @@ -19,4 +20,5 @@ export type { DialogFooterProps } from './DialogFooter' export type { DialogActionsProps } from './DialogActions' export type { ProgressDialogProps, InstallationInstructions } from './ProgressDialog' export type { DlcSelectionDialogProps } from './DlcSelectionDialog' -export type { ConflictDialogProps, Conflict } from './ConflictDialog' \ No newline at end of file +export type { ConflictDialogProps, Conflict } from './ConflictDialog' +export type { UnlockerSelectionDialogProps } from './UnlockerSelectionDialog' \ No newline at end of file