From f13fcc0e8c9992279bd6c8ac3f039343603e72ac Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 16 Aug 2025 17:10:48 +0200 Subject: [PATCH] Move type "NullAndUndefined" to util types --- src/UtilTypes.d.ts | 2 ++ src/base/Base.types.ts | 2 -- src/features/chapter/Chapter.types.ts | 1 - src/features/chapter/utils/ChapterList.util.tsx | 1 - src/features/library/Library.types.ts | 2 +- src/features/library/hooks/useGetVisibleLibraryMangas.ts | 2 +- src/features/metadata/Metadata.constants.ts | 1 - 7 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/UtilTypes.d.ts b/src/UtilTypes.d.ts index 22ed4724..caff9bd4 100644 --- a/src/UtilTypes.d.ts +++ b/src/UtilTypes.d.ts @@ -20,6 +20,8 @@ type RecursivePartial = { : T[P]; }; +type NullAndUndefined = T | null | undefined; + type NonNullableProperties = { [P in keyof T]-?: NonNullable }; type OptionalProperty = Omit & Partial>; diff --git a/src/base/Base.types.ts b/src/base/Base.types.ts index 0ebb8f3c..977cd61e 100644 --- a/src/base/Base.types.ts +++ b/src/base/Base.types.ts @@ -20,8 +20,6 @@ export enum DirectionOffset { NEXT = 1, } -export type NullAndUndefined = T | null | undefined; - export type TranslationKey = ParseKeys; interface DisplayDataTranslationKey { diff --git a/src/features/chapter/Chapter.types.ts b/src/features/chapter/Chapter.types.ts index b0444e1d..71439e14 100644 --- a/src/features/chapter/Chapter.types.ts +++ b/src/features/chapter/Chapter.types.ts @@ -11,7 +11,6 @@ import { ChapterType, DownloadStatusFieldsFragment, } from '@/lib/graphql/generated/graphql.ts'; -import { NullAndUndefined } from '@/base/Base.types.ts'; export type ChapterSortMode = 'fetchedAt' | 'source' | 'chapterNumber' | 'uploadedAt'; diff --git a/src/features/chapter/utils/ChapterList.util.tsx b/src/features/chapter/utils/ChapterList.util.tsx index 5b3d926b..5e4f74e9 100644 --- a/src/features/chapter/utils/ChapterList.util.tsx +++ b/src/features/chapter/utils/ChapterList.util.tsx @@ -19,7 +19,6 @@ import { MangaIdInfo } from '@/features/manga/Manga.types.ts'; import { GqlMetaHolder } from '@/features/metadata/Metadata.types.ts'; import { createUpdateMangaMetadata, useGetMangaMetadata } from '@/features/manga/services/MangaMetadata.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import { NullAndUndefined } from '@/base/Base.types.ts'; export function unreadFilter(unread: NullAndUndefined, { isRead: isChapterRead }: ChapterReadInfo) { switch (unread) { diff --git a/src/features/library/Library.types.ts b/src/features/library/Library.types.ts index 5edd9515..142b307a 100644 --- a/src/features/library/Library.types.ts +++ b/src/features/library/Library.types.ts @@ -7,7 +7,7 @@ */ import { MangaStatus, MangaType, TrackerType } from '@/lib/graphql/generated/graphql.ts'; -import { GridLayout, NullAndUndefined } from '@/base/Base.types.ts'; +import { GridLayout } from '@/base/Base.types.ts'; export type MetadataLibrarySettings = { showAddToLibraryCategorySelectDialog: boolean; diff --git a/src/features/library/hooks/useGetVisibleLibraryMangas.ts b/src/features/library/hooks/useGetVisibleLibraryMangas.ts index 84a2c74f..72af014c 100644 --- a/src/features/library/hooks/useGetVisibleLibraryMangas.ts +++ b/src/features/library/hooks/useGetVisibleLibraryMangas.ts @@ -22,7 +22,7 @@ import { MangaUnreadInfo, } from '@/features/manga/Manga.types.ts'; import { SourceDisplayNameInfo } from '@/features/source/Source.types.ts'; -import { NullAndUndefined, SearchParam } from '@/base/Base.types.ts'; +import { SearchParam } from '@/base/Base.types.ts'; const triStateFilter = ( triState: NullAndUndefined, diff --git a/src/features/metadata/Metadata.constants.ts b/src/features/metadata/Metadata.constants.ts index 4adcdb5e..b34de631 100644 --- a/src/features/metadata/Metadata.constants.ts +++ b/src/features/metadata/Metadata.constants.ts @@ -33,7 +33,6 @@ import { ISourceMetadata } from '@/features/source/Source.types.ts'; import { LibraryOptions } from '@/features/library/Library.types.ts'; import { MetadataThemeSettings } from '@/features/theme/AppTheme.types.ts'; import { TapZoneInvertMode } from '@/features/reader/tap-zones/TapZoneLayout.types.ts'; -import { NullAndUndefined } from '@/base/Base.types.ts'; export const APP_METADATA_KEY_PREFIX = 'webUI';