Remove "obsolete" extensions group

Obsolete extensions are not grouped at the top of the extension page anymore and instead show an "OBSOLETE" warning text with a the "uninstall" action.
This commit is contained in:
schroda
2026-05-02 20:11:45 +02:00
parent bfc401c9ee
commit b032b32ec2
6 changed files with 40 additions and 25 deletions

View File

@@ -26,6 +26,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- (**Library**) Improve library manga sorting - (**Library**) Improve library manga sorting
- (**Browse**) Merge languages filter of the sources and extensions into one - (**Browse**) Merge languages filter of the sources and extensions into one
- (**Search**) Hide "pinned" sources button in global search in case no sources are pinned - (**Search**) Hide "pinned" sources button in global search in case no sources are pinned
- (**Extensions**) Show "obsolete" information more discretely with the "uninstall" action instead of grouping obsolete extensions at the top of the page
### Fixed ### Fixed
@@ -90,8 +91,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- (**Reader**) Fix potential page loss (continuous horizontal mode window resize, reader width change, page scale change) - (**Reader**) Fix potential page loss (continuous horizontal mode window resize, reader width change, page scale change)
- (**Reader**) Fix current page detection in continuous horizontal mode with right-to-left reading mode - (**Reader**) Fix current page detection in continuous horizontal mode with right-to-left reading mode
- (**Reader**) Fix occasionally jumping to random pages in continuous reading modes - (**Reader**) Fix occasionally jumping to random pages in continuous reading modes
- (**Extension**) Fix handling obsolete extensions as updatable in case they are marked as having an available update - (**Extensions**) Fix handling obsolete extensions as updatable in case they are marked as having an available update
- (**Extension**) Fix being unable to uninstall an extension that can be updated - (**Extensions**) Fix being unable to uninstall an extension that can be updated
- (**Theme**) Fix loading of fonts defined in themes - (**Theme**) Fix loading of fonts defined in themes
- (**Reader**) Fix broken scrolling in continuous horizontal reading mode - (**Reader**) Fix broken scrolling in continuous horizontal reading mode
@@ -155,7 +156,7 @@ Thanks to everyone that contributed to this release
- (**General**) Fix drag and drop on touch devices - (**General**) Fix drag and drop on touch devices
- (**Reader**) Fix auto scrolling with static overlay - (**Reader**) Fix auto scrolling with static overlay
- (**Extension**) Fix clicking on action button (install, uninstall, update, ...) opening the extension info page - (**Extensions**) Fix clicking on action button (install, uninstall, update, ...) opening the extension info page
- (**Manga**) Fix incorrect removal of some text wrapped in "<>" in the description and tracker search result summaries - (**Manga**) Fix incorrect removal of some text wrapped in "<>" in the description and tracker search result summaries
- (**Settings**) Fix hidden "pure black mode" appearance setting - (**Settings**) Fix hidden "pure black mode" appearance setting
- (**Chapter**) Fix updating read status of already read chapters when using the mark previous as read option - (**Chapter**) Fix updating read status of already read chapters when using the mark previous as read option
@@ -214,8 +215,8 @@ Thanks to everyone that contributed to this release
- (**Chapter**) Save chapter list options on the server - (**Chapter**) Save chapter list options on the server
- (**Chapter**) Hide chapter list actions while chapters are selected - (**Chapter**) Hide chapter list actions while chapters are selected
- (**Chapter**) Clear selection after performing an action - (**Chapter**) Clear selection after performing an action
- (**Extension**) Make "All" language a selectable language (was forcibly enabled up until now) - (**Extensions**) Make "All" language a selectable language (was forcibly enabled up until now)
- (**Extension**) Remove language information from uninstalled extension items in list - (**Extensions**) Remove language information from uninstalled extension items in list
- (**Source**) Remove language information from not pinned and last used source items in list - (**Source**) Remove language information from not pinned and last used source items in list
- (**Source**) Save "selected languages" on the server - (**Source**) Save "selected languages" on the server
- (**Browse**) Select users preferred languages (from the browser) and the "All" language by default - (**Browse**) Select users preferred languages (from the browser) and the "All" language by default
@@ -245,7 +246,7 @@ Thanks to everyone that contributed to this release
- (**Reader**) Fix scrolling horizontally with trackpads - (**Reader**) Fix scrolling horizontally with trackpads
- (**WebUI Update**) Fix stable changelog url - (**WebUI Update**) Fix stable changelog url
- (**Global search**) Fix failed source searches getting sorted the same way as if they were successfull - (**Global search**) Fix failed source searches getting sorted the same way as if they were successfull
- (**Extension**) Fix link to repository setting in case no extensions are installed - (**Extensions**) Fix link to repository setting in case no extensions are installed
- (**Manga**) Fix data not getting updated properly on a library update (e.g. unread chapter count didn't get updated in case new chapters were found) - (**Manga**) Fix data not getting updated properly on a library update (e.g. unread chapter count didn't get updated in case new chapters were found)
- (**Manga**) Add option to click on artist/author to trigger library search - (**Manga**) Add option to click on artist/author to trigger library search
- (**Browse**) Fix browse not loading more pages in some cases after filtering/searching - (**Browse**) Fix browse not loading more pages in some cases after filtering/searching

View File

@@ -17,7 +17,7 @@ import { useLingui } from '@lingui/react/macro';
import { requestManager } from '@/lib/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/RequestManager.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import type { InstalledStates, TExtension } from '@/features/extension/Extensions.types.ts'; import type { InstalledStates, TExtension } from '@/features/extension/Extensions.types.ts';
import { ExtensionAction, ExtensionState, InstalledState } from '@/features/extension/Extensions.types.ts'; import { ExtensionAction, ExtensionState } from '@/features/extension/Extensions.types.ts';
import { import {
EXTENSION_ACTION_TO_NEXT_ACTION_MAP, EXTENSION_ACTION_TO_NEXT_ACTION_MAP,
EXTENSION_ACTION_TO_STATE_MAP, EXTENSION_ACTION_TO_STATE_MAP,
@@ -118,12 +118,34 @@ export function ExtensionCard(props: IProps) {
{name} {name}
</Typography> </Typography>
<Typography variant="caption"> <Typography variant="caption">
{isInstalled ? `${languageCodeToName(lang)} ` : ''} {isInstalled ? `${languageCodeToName(lang)}` : ''}
{versionName} {isInstalled ? (
{isNsfw && ( <Typography variant="caption" sx={{ px: 1 }}>
<Typography variant="caption" color="error">
{' 18+'}
</Typography> </Typography>
) : (
''
)}
{versionName}
{isObsolete && (
<>
<Typography variant="caption" sx={{ px: 1 }}>
</Typography>
<Typography variant="caption" color="warning" sx={{ textTransform: 'uppercase' }}>
{t`Obsolete`}
</Typography>
</>
)}
{isNsfw && (
<>
<Typography variant="caption" sx={{ px: 1 }}>
</Typography>
<Typography variant="caption" color="error">
18+
</Typography>
</>
)} )}
</Typography> </Typography>
{showSourceRepo && <Typography variant="caption">{repo}</Typography>} {showSourceRepo && <Typography variant="caption">{repo}</Typography>}
@@ -137,10 +159,7 @@ export function ExtensionCard(props: IProps) {
)} )}
<Button <Button
variant="outlined" variant="outlined"
sx={{ sx={{ flexShrink: 0 }}
color: installedState === InstalledState.OBSOLETE ? 'red' : 'inherit',
flexShrink: 0,
}}
onClick={(e) => { onClick={(e) => {
e.preventDefault(); e.preventDefault();
handleButtonClick(); handleButtonClick();

View File

@@ -33,7 +33,7 @@ export const INSTALLED_STATE_TO_TRANSLATION_MAP: { [installedState in InstalledS
[InstalledState.UNINSTALL]: msg`Uninstall`, [InstalledState.UNINSTALL]: msg`Uninstall`,
[InstalledState.INSTALL]: msg`Install`, [InstalledState.INSTALL]: msg`Install`,
[InstalledState.UPDATE]: msg`Update`, [InstalledState.UPDATE]: msg`Update`,
[InstalledState.OBSOLETE]: msg`Obsolete`, [InstalledState.OBSOLETE]: msg`Uninstall`,
[InstalledState.UPDATING]: msg`Updating`, [InstalledState.UPDATING]: msg`Updating`,
[InstalledState.UNINSTALLING]: msg`Uninstalling`, [InstalledState.UNINSTALLING]: msg`Uninstalling`,
[InstalledState.INSTALLING]: msg`Installing`, [InstalledState.INSTALLING]: msg`Installing`,

View File

@@ -72,10 +72,6 @@ export function groupExtensionsByLanguage(extensions: TExtension[]): GroupedExte
return ExtensionGroupState.UPDATE_PENDING; return ExtensionGroupState.UPDATE_PENDING;
} }
if (extension.isObsolete) {
return ExtensionGroupState.OBSOLETE;
}
return ExtensionGroupState.INSTALLED; return ExtensionGroupState.INSTALLED;
}); });

View File

@@ -25,10 +25,8 @@ export const ActionButton = ({ pkgName, isInstalled, isObsolete, hasUpdate }: TE
return ( return (
<Box sx={{ px: 1, flexGrow: 1, flexBasis: 0 }}> <Box sx={{ px: 1, flexGrow: 1, flexBasis: 0 }}>
<Button <Button
sx={{ sx={{ width: '100%' }}
width: '100%', color={installedState === InstalledState.OBSOLETE ? 'error' : undefined}
color: installedState === InstalledState.OBSOLETE ? 'red' : 'inherit',
}}
variant="outlined" variant="outlined"
size="large" size="large"
onClick={async () => { onClick={async () => {

View File

@@ -2452,6 +2452,7 @@ msgstr ""
msgid "Number of unread chapters to download" msgid "Number of unread chapters to download"
msgstr "Number of unread chapters to download" msgstr "Number of unread chapters to download"
#: src/features/browse/extensions/components/ExtensionCard.tsx
#: src/features/extension/Extensions.constants.ts #: src/features/extension/Extensions.constants.ts
msgid "Obsolete" msgid "Obsolete"
msgstr "Obsolete" msgstr "Obsolete"