From d84bd96acfeec954620dae9bd3fc8afa67034f34 Mon Sep 17 00:00:00 2001 From: Der_Googler <54764558+DerGoogler@users.noreply.github.com> Date: Sat, 22 Jun 2024 11:49:54 +0200 Subject: [PATCH] add support for new repo format --- .../activitys/ModuleViewActivity/index.tsx | 23 ++++++------- .../ModuleViewActivity/tabs/AboutTabs.tsx | 18 +++++----- .../ModuleViewActivity/tabs/OverviewTab.tsx | 27 +++++++-------- .../ModuleViewActivity/tabs/VersionsTab.tsx | 4 +-- Website/src/components/AntifeaturesButton.tsx | 2 +- .../src/components/module/DeviceModule.tsx | 2 +- .../src/components/module/ExploreModule.tsx | 13 ++++---- Website/src/hooks/useOpenModuleSearch.tsx | 4 +-- Website/src/typings/global.d.ts | 33 +++++++++---------- Website/src/util/blacklisted-modules.ts | 2 +- 10 files changed, 64 insertions(+), 64 deletions(-) diff --git a/Website/src/activitys/ModuleViewActivity/index.tsx b/Website/src/activitys/ModuleViewActivity/index.tsx index 572c5687..88fae1f9 100644 --- a/Website/src/activitys/ModuleViewActivity/index.tsx +++ b/Website/src/activitys/ModuleViewActivity/index.tsx @@ -62,6 +62,7 @@ const ModuleViewActivity = () => { const { context, extra } = useActivity(); const { id, name, version, versionCode, author, versions, track } = extra; + const { cover, icon, verified, donate, support } = extra; const latestVersion = React.useMemo(() => versions[versions.length - 1], [versions]); const search = React.useMemo(() => new URLSearchParams(window.location.search), [window.location.search]); @@ -83,7 +84,7 @@ const ModuleViewActivity = () => { { modifier="noshadow" renderToolbar={renderToolbar} backgroundStyle={{ - ...(track.cover ? { top: `0px !important` } : {}), + ...(cover ? { top: `0px !important` } : {}), }} sx={{ - ...(track.cover ? { top: `0px !important` } : {}), + ...(cover ? { top: `0px !important` } : {}), }} > { color: "white", }} > - {track.cover && ( + {cover && ( ({ background: `linear-gradient(to top,${ @@ -172,7 +173,7 @@ const ModuleViewActivity = () => { }, objectFit: "cover", }} - image={track.cover} + image={cover} alt={name} /> @@ -191,7 +192,7 @@ const ModuleViewActivity = () => { ({ - pt: track.cover ? 0 : 2, + pt: cover ? 0 : 2, pl: 2, pr: 2, pb: 2, @@ -219,7 +220,7 @@ const ModuleViewActivity = () => { mr: 1.5, fontSize: 50, })} - src={track.icon} + src={icon} > {name.charAt(0).toUpperCase()} @@ -229,7 +230,7 @@ const ModuleViewActivity = () => { setIsNameVisible(!visible)}> {name} - + { code - {track.donate && ( + {donate && ( { - os.open(track.donate, { + os.open(donate, { target: "_blank", features: { color: theme.palette.primary.main, @@ -361,7 +362,7 @@ const ModuleViewActivity = () => { component: InstallTerminalV2Activity, key: "InstallTerminalV2Activity", extra: { - issues: track.support, + issues: support, source: track.source, id: id, exploreInstall: true, diff --git a/Website/src/activitys/ModuleViewActivity/tabs/AboutTabs.tsx b/Website/src/activitys/ModuleViewActivity/tabs/AboutTabs.tsx index 36bac084..020cb028 100644 --- a/Website/src/activitys/ModuleViewActivity/tabs/AboutTabs.tsx +++ b/Website/src/activitys/ModuleViewActivity/tabs/AboutTabs.tsx @@ -19,11 +19,11 @@ const AboutTab = () => { const { context, extra } = useActivity(); const { theme } = useTheme(); - const { id, name, version, versionCode, description, author, versions, track } = extra; + const { license, verified, support, track } = extra; return ( - {track.verified && ( + {verified && ( @@ -32,10 +32,10 @@ const AboutTab = () => { )} - {track.license && ( + {license && ( { - fetch(`https://raw.githubusercontent.com/spdx/license-list-data/main/website/${track.license}.json`) + fetch(`https://raw.githubusercontent.com/spdx/license-list-data/main/website/${license}.json`) .then((res) => { if (res.status === 200) { return res.json(); @@ -46,7 +46,7 @@ const AboutTab = () => { .then((json: LicenseSPX) => { context.pushPage({ component: FetchTextActivity, - key: "license_" + track.license, + key: "license_" + license, extra: { raw_data: json.licenseText, modulename: json.name, @@ -59,14 +59,14 @@ const AboutTab = () => { - + )} - {track.support && ( + {support && ( { - os.open(track.support, { + os.open(support, { target: "_blank", features: { color: theme.palette.primary.main, @@ -77,7 +77,7 @@ const AboutTab = () => { - + )} diff --git a/Website/src/activitys/ModuleViewActivity/tabs/OverviewTab.tsx b/Website/src/activitys/ModuleViewActivity/tabs/OverviewTab.tsx index 72cbedf6..4a437d88 100644 --- a/Website/src/activitys/ModuleViewActivity/tabs/OverviewTab.tsx +++ b/Website/src/activitys/ModuleViewActivity/tabs/OverviewTab.tsx @@ -36,21 +36,22 @@ const OverviewTab = () => { const { context, extra } = useActivity(); const { settings } = useSettings(); const { modules } = useRepos(); - const { id, name, version, versionCode, description, author, versions, track } = extra; + const { id, name, description, versions } = extra; + const { antifeatures, screenshots, require, readme: __readme, categories, icon } = extra; - const { filteredCategories } = useCategories(track.categories); + const { filteredCategories } = useCategories(categories); const isLowQuality = useLowQualityModule(extra, !settings._low_quality_module); const latestVersion = React.useMemo(() => versions[versions.length - 1], [versions]); const formatLastUpdate = useFormatDate(latestVersion.timestamp); const [readme, setReadme] = React.useState(undefined); - const findHardCodedAntifeature = React.useMemo(() => { - return [...(track.antifeatures || []), ...(blacklistedModules.find((mod) => mod.id === id)?.antifeatures || [])]; - }, [id, track.antifeatures]); + const findHardCodedAntifeature = React.useMemo(() => { + return [...(antifeatures || []), ...(blacklistedModules.find((mod) => mod.id === id)?.antifeatures || [])]; + }, [id, antifeatures]); React.useEffect(() => { - if (track.readme) { - fetch(track.readme) + if (readme) { + fetch(readme) .then((res) => { if (res.status === 200) { return res.text(); @@ -60,7 +61,7 @@ const OverviewTab = () => { }) .then((text) => setReadme(text)); } - }, [track.readme]); + }, [__readme]); return ( <> @@ -100,7 +101,7 @@ const OverviewTab = () => { extra: { desc: readme, name: name, - logo: track.icon, + logo: icon, }, }); }} @@ -169,7 +170,7 @@ const OverviewTab = () => { )} - {track.require && track.require.length !== 0 && ( + {require && require.length !== 0 && ( { }} > - {track.require.map((req) => { + {require.map((req) => { const findRequire = React.useMemo(() => modules.find((module) => module.id === req), [modules]); if (findRequire) { @@ -221,7 +222,7 @@ const OverviewTab = () => { )} - {track.screenshots && track.screenshots.length !== 0 && ( + {screenshots && screenshots.length !== 0 && ( @@ -241,7 +242,7 @@ const OverviewTab = () => { gridAutoColumns: "minmax(250px, 1fr)", }} > - {track.screenshots.map((image, i) => ( + {screenshots.map((image, i) => ( ({ ml: 1, diff --git a/Website/src/activitys/ModuleViewActivity/tabs/VersionsTab.tsx b/Website/src/activitys/ModuleViewActivity/tabs/VersionsTab.tsx index 6b01fa5c..bd3d51c1 100644 --- a/Website/src/activitys/ModuleViewActivity/tabs/VersionsTab.tsx +++ b/Website/src/activitys/ModuleViewActivity/tabs/VersionsTab.tsx @@ -46,7 +46,7 @@ const VersionItem = React.memo(({ id, version, index }) => { const { strings } = useStrings(); const { theme } = useTheme(); - const { track } = extra; + const { track, support } = extra; const versionName = `${version.version} (${version.versionCode})`; @@ -59,7 +59,7 @@ const VersionItem = React.memo(({ id, version, index }) => { component: InstallTerminalV2Activity, key: "InstallTerminalV2Activity", extra: { - issues: track.support, + issues: support, source: track.source, id: id, exploreInstall: true, diff --git a/Website/src/components/AntifeaturesButton.tsx b/Website/src/components/AntifeaturesButton.tsx index 47bbd8d7..0b3af039 100644 --- a/Website/src/components/AntifeaturesButton.tsx +++ b/Website/src/components/AntifeaturesButton.tsx @@ -8,7 +8,7 @@ import { GestureDetector } from "./onsenui/GestureDetector"; type Props = { sx?: SxProps; - antifeatures?: Track["antifeatures"]; + antifeatures?: Module["antifeatures"]; }; export const AntifeatureButton = (props: Props) => { diff --git a/Website/src/components/module/DeviceModule.tsx b/Website/src/components/module/DeviceModule.tsx index 99e1ed58..e13e2510 100644 --- a/Website/src/components/module/DeviceModule.tsx +++ b/Website/src/components/module/DeviceModule.tsx @@ -62,7 +62,7 @@ const DeviceModule = React.memo((props) => { const boot_complete = SuFile.exist(format("BOOTCOMP")); const module_config_file = SuFile.exist(format("CONFINDEX")); - const findHardCodedAntifeature = React.useMemo(() => { + const findHardCodedAntifeature = React.useMemo(() => { return blacklistedModules.find((mod) => mod.id === id)?.antifeatures || []; }, [id]); diff --git a/Website/src/components/module/ExploreModule.tsx b/Website/src/components/module/ExploreModule.tsx index 3f37f4f9..1cb9b5eb 100644 --- a/Website/src/components/module/ExploreModule.tsx +++ b/Website/src/components/module/ExploreModule.tsx @@ -24,6 +24,7 @@ interface Props { const ExploreModule = React.memo((props) => { const { id, name, author, description, track, timestamp, version, versions, versionCode } = props.module; + const { cover, antifeatures, verified } = props.module; const { context } = useActivity(); const { strings } = useStrings(); @@ -32,9 +33,9 @@ const ExploreModule = React.memo((props) => { const formatLastUpdate = useFormatDate(timestamp ? timestamp : versions[versions.length - 1].timestamp); - const findHardCodedAntifeature = React.useMemo(() => { - return [...(track.antifeatures || []), ...(blacklistedModules.find((mod) => mod.id === id)?.antifeatures || [])]; - }, [id, track.antifeatures]); + const findHardCodedAntifeature = React.useMemo(() => { + return [...(antifeatures || []), ...(blacklistedModules.find((mod) => mod.id === id)?.antifeatures || [])]; + }, [id, antifeatures]); const handleOpenModule = () => { context.pushPage({ @@ -58,14 +59,14 @@ const ExploreModule = React.memo((props) => { }} > - {track.cover && ( + {cover && ( {name} @@ -74,7 +75,7 @@ const ExploreModule = React.memo((props) => { {name} - + diff --git a/Website/src/hooks/useOpenModuleSearch.tsx b/Website/src/hooks/useOpenModuleSearch.tsx index 61771bae..f84e652f 100644 --- a/Website/src/hooks/useOpenModuleSearch.tsx +++ b/Website/src/hooks/useOpenModuleSearch.tsx @@ -50,7 +50,7 @@ export function useOpenModuleSearch(list: L) { borderRadius: "20%", mr: 1.5, })} - src={item.track.icon} + src={item.icon} > {item.name.charAt(0).toUpperCase()} @@ -60,7 +60,7 @@ export function useOpenModuleSearch(list: L) { {item.name} - + } secondary={ diff --git a/Website/src/typings/global.d.ts b/Website/src/typings/global.d.ts index c3b9ecbb..7563c35a 100644 --- a/Website/src/typings/global.d.ts +++ b/Website/src/typings/global.d.ts @@ -146,10 +146,6 @@ declare global { } export interface Module { - /** - * # This is local prop only - */ - cover?: string; id: string; name: string; version: string; @@ -162,6 +158,21 @@ declare global { track: Track; versions: Version[]; + license?: string; + homepage?: string; + support?: string; + donate?: string; + cover?: string; + icon?: string; + require?: string[]; + screenshots?: string[]; + category?: string; + categories?: string[]; + stars?: number; + readme?: string; + antifeatures?: string | string[]; + verified: boolean; + /** * Local modules only */ @@ -171,21 +182,7 @@ declare global { export interface Track { type: string; added: number; - license: string; - homepage: string; source: string; - support: string; - donate: string; - verified: boolean; - cover?: string; - icon?: string; - require?: string[]; - screenshots?: string[]; - category?: string; - categories?: string[]; - stars?: number; - readme?: string; - antifeatures?: string | string[]; } export interface Version { diff --git a/Website/src/util/blacklisted-modules.ts b/Website/src/util/blacklisted-modules.ts index 67cec00d..b8b15a9e 100644 --- a/Website/src/util/blacklisted-modules.ts +++ b/Website/src/util/blacklisted-modules.ts @@ -3,7 +3,7 @@ export interface BlacklistedModule { source: string; hidden: boolean; notes: string; - antifeatures: Track["antifeatures"]; + antifeatures: Module["antifeatures"]; } export const blacklistedModules: BlacklistedModule[] = [