Reduce requested extension data in queries

This commit is contained in:
schroda
2024-07-06 15:55:58 +02:00
parent df006bb348
commit 4b30e9bc48
12 changed files with 83 additions and 83 deletions

View File

@@ -25,6 +25,7 @@ import {
GroupedExtensions,
GroupedExtensionsResult,
isExtensionStateOrLanguage,
TExtension,
translateExtensionLanguage,
} from '@/screens/util/Extensions';
import { AppbarSearch } from '@/components/util/AppbarSearch';
@@ -32,7 +33,6 @@ import { LoadingPlaceholder } from '@/components/util/LoadingPlaceholder';
import { makeToaster } from '@/components/util/Toast';
import { LangSelect } from '@/components/navbar/action/LangSelect';
import { ExtensionCard } from '@/components/ExtensionCard';
import { PartialExtension } from '@/typings.ts';
import { NavBarContext } from '@/components/context/NavbarContext.tsx';
import { StyledGroupedVirtuoso } from '@/components/virtuoso/StyledGroupedVirtuoso.tsx';
import { StyledGroupHeader } from '@/components/virtuoso/StyledGroupHeader.tsx';
@@ -44,7 +44,7 @@ import { MediaQuery } from '@/lib/ui/MediaQuery.tsx';
const LANGUAGE = 0;
const EXTENSIONS = 1;
function getExtensionsInfo(extensions: PartialExtension[]): {
function getExtensionsInfo(extensions: TExtension[]): {
allLangs: string[];
groupedExtensions: GroupedExtensionsResult;
} {

View File

@@ -7,8 +7,9 @@
*/
import { t } from 'i18next';
import { PartialExtension, TranslationKey } from '@/typings';
import { TranslationKey } from '@/typings';
import { DefaultLanguage, langCodeToName } from '@/util/language';
import { ExtensionType } from '@/lib/graphql/generated/graphql.ts';
export enum ExtensionState {
INSTALLED = 'INSTALLED',
@@ -16,16 +17,31 @@ export enum ExtensionState {
OBSOLETE = 'OBSOLETE',
}
export type GroupedExtensionsResult<KEY extends string = string> = [KEY, PartialExtension[]][];
export type TExtension = Pick<
ExtensionType,
| 'pkgName'
| 'name'
| 'lang'
| 'versionCode'
| 'versionName'
| 'iconUrl'
| 'repo'
| 'isNsfw'
| 'isInstalled'
| 'isObsolete'
| 'hasUpdate'
>;
export type GroupedExtensionsResult<KEY extends string = string> = [KEY, TExtension[]][];
export type GroupedByExtensionState = {
[state in ExtensionState]: PartialExtension[];
[state in ExtensionState]: TExtension[];
};
export type GroupedByLanguage = {
[language in DefaultLanguage]: PartialExtension[];
[language in DefaultLanguage]: TExtension[];
} & {
[language: string]: PartialExtension[];
[language: string]: TExtension[];
};
export type GroupedExtensions = GroupedByExtensionState & GroupedByLanguage;