this repo has no description

moonbase: Implement deprecated filter

Changed files
+20 -3
packages
core-extensions
src
moonbase
webpackModules
+8 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/card.tsx
···
Button,
ChannelListIcon,
HeartIcon,
-
WindowTopOutlineIcon
+
WindowTopOutlineIcon,
+
WarningIcon
} from "@moonlight-mod/wp/discord/components/common/index";
import React from "@moonlight-mod/wp/react";
import { useStateFromStores } from "@moonlight-mod/wp/discord/packages/flux";
···
{hasDuplicateEntry && ext?.source?.url && (
<Tooltip text={`This extension is from the following repository: ${ext.source.url}`} position="top">
{(props: any) => <WindowTopOutlineIcon {...props} class={BuildOverrideClasses.infoIcon} size="xs" />}
+
</Tooltip>
+
)}
+
+
{ext.manifest?.meta?.deprecated && (
+
<Tooltip text="This extension is deprecated" position="top">
+
{(props: any) => <WarningIcon {...props} class={BuildOverrideClasses.infoIcon} size="xs" />}
</Tooltip>
)}
</Flex>
+8 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/filterBar.tsx
···
Disabled = 1 << 4,
Installed = 1 << 5,
Repository = 1 << 6,
-
Incompatible = 1 << 7
+
Incompatible = 1 << 7,
+
Deprecated = 1 << 8
}
export const defaultFilter = 127 as Filter;
···
label="Show incompatible"
checked={(filter & Filter.Incompatible) === Filter.Incompatible}
action={() => toggleFilter(Filter.Incompatible)}
+
/>
+
<MenuCheckboxItem
+
id="l-deprecated"
+
label="Show deprecated"
+
checked={(filter & Filter.Deprecated) === Filter.Deprecated}
+
action={() => toggleFilter(Filter.Deprecated)}
/>
<MenuItem
id="reset-all"
+4 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
···
) &&
(filter & Filter.Incompatible ||
ext.compat === ExtensionCompat.Compatible ||
-
(ext.compat === ExtensionCompat.InvalidApiLevel && ext.hasUpdate))
+
(ext.compat === ExtensionCompat.InvalidApiLevel && ext.hasUpdate)) &&
+
(filter & Filter.Deprecated ||
+
ext.manifest?.meta?.deprecated !== true ||
+
ext.state !== ExtensionState.NotDownloaded)
);
// Prioritize extensions with updates