refactor: use getter capability for isEntryAvailable

This commit is contained in:
Lukas Obermann
2023-12-29 20:10:10 +01:00
parent 934e03a8ca
commit 4e81ee1ef0
3 changed files with 15 additions and 4 deletions
+6 -1
View File
@@ -17,5 +17,10 @@ export const useIsEntryAvailable = () => {
const includePublications = useAppSelector(selectIncludePublications) ?? []
return (sourceReferences: PublicationRefs) =>
isEntryAvailable(publications, includeAllPublications, includePublications, sourceReferences)
isEntryAvailable(
id => publications[id],
includeAllPublications,
includePublications,
sourceReferences,
)
}
@@ -18,5 +18,10 @@ export const selectIsEntryAvailable = createSelector(
selectIncludePublications,
(publications, includeAllPublications, includePublications) =>
(sourceReferences: PublicationRefs) =>
isEntryAvailable(publications, includeAllPublications, includePublications, sourceReferences),
isEntryAvailable(
id => publications[id],
includeAllPublications,
includePublications,
sourceReferences,
),
)
+3 -2
View File
@@ -1,5 +1,6 @@
import { Publication } from "optolith-database-schema/types/source/Publication"
import { PublicationRefs } from "optolith-database-schema/types/source/_PublicationRef"
import { GetById } from "../getTypes.ts"
/**
* Checks if a publication is enabled, depending on the type of publication and
@@ -19,13 +20,13 @@ export const isPublicationEnabled = (
* at least one of its associated publications is enabled.
*/
export const isEntryAvailable = (
publications: Record<number, Publication>,
getPublication: GetById.Static.Publication,
includeAllPublications: boolean,
includePublications: number[],
sourceReferences: PublicationRefs,
) =>
sourceReferences.some(ref => {
const publication = publications[ref.id.publication]
const publication = getPublication(ref.id.publication)
return (
publication !== undefined &&
isPublicationEnabled(publication, includeAllPublications, includePublications)