diff --git a/src/components/mod-loader-cards.tsx b/src/components/mod-loader-cards.tsx index 80b1d9a45..61afb58b4 100644 --- a/src/components/mod-loader-cards.tsx +++ b/src/components/mod-loader-cards.tsx @@ -23,6 +23,7 @@ interface ModLoaderCardsProps extends BoxProps { displayMode: "entry" | "selector"; loading?: boolean; onTypeSelect?: (type: ModLoaderType) => void; + expandedType?: ModLoaderType | null; } const ModLoaderCards: React.FC = ({ @@ -31,6 +32,7 @@ const ModLoaderCards: React.FC = ({ displayMode, loading = false, onTypeSelect, + expandedType, ...boxProps }) => { const { t } = useTranslation(); @@ -93,23 +95,27 @@ const ModLoaderCards: React.FC = ({ - - } - variant="ghost" - size="xs" - disabled={loading} - onClick={() => onTypeSelect?.(type)} - /> + {displayMode === "selector" && + expandedType !== null && + expandedType !== type ? null : ( + + } + variant="ghost" + size="xs" + disabled={loading} + onClick={() => onTypeSelect?.(type)} + /> + )} ); diff --git a/src/components/mod-loader-selector.tsx b/src/components/mod-loader-selector.tsx index 7cd00a235..414b47a48 100644 --- a/src/components/mod-loader-selector.tsx +++ b/src/components/mod-loader-selector.tsx @@ -51,6 +51,11 @@ export const ModLoaderSelector: React.FC = ({ const [modLoaders, setModLoaders] = useState([]); const [loading, setLoading] = useState(false); + const expandedLoaderType = + selectedModLoader.loaderType !== "Unknown" + ? selectedModLoader.loaderType + : null; + useEffect(() => { setLoading(true); ResourceService.fetchModLoaderVersionList( @@ -123,6 +128,7 @@ export const ModLoaderSelector: React.FC = ({ currentVersion={selectedModLoader.version} displayMode="selector" loading={loading} + expandedType={expandedLoaderType} onTypeSelect={(loaderType) => { if (loaderType !== selectedModLoader.loaderType) { onSelectModLoader({