Skip to content
This repository has been archived by the owner on Sep 9, 2024. It is now read-only.

Commit

Permalink
feat: improve typing on media hooks
Browse files Browse the repository at this point in the history
  • Loading branch information
KaneFreeman committed Nov 17, 2023
1 parent 91bb851 commit 8641036
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions packages/core/src/lib/hooks/useMediaAsset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,18 @@ import type {
CollectionWithDefaults,
Entry,
MediaField,
ObjectValue,
UnknownField,
} from '@staticcms/core';

export function useGetMediaAsset<T extends MediaField, EF extends BaseField = UnknownField>(
export function useGetMediaAsset<
T extends MediaField,
EF extends BaseField = UnknownField,
D = ObjectValue,
>(
collection?: CollectionWithDefaults<EF>,
field?: T,
entry?: Entry,
entry?: Entry<D>,
currentFolder?: string,
isDirectory = false,
): (url: string | undefined | null) => Promise<string | undefined | null> {
Expand All @@ -30,7 +35,9 @@ export function useGetMediaAsset<T extends MediaField, EF extends BaseField = Un
return url;
}

const asset = await dispatch(getAsset<T, EF>(collection, entry, url, field, currentFolder));
const asset = await dispatch(
getAsset<T, EF>(collection, entry as Entry, url, field, currentFolder),
);

if (asset !== emptyAsset) {
return asset?.toString() ?? '';
Expand All @@ -42,11 +49,15 @@ export function useGetMediaAsset<T extends MediaField, EF extends BaseField = Un
);
}

export default function useMediaAsset<T extends MediaField, EF extends BaseField = UnknownField>(
export default function useMediaAsset<
T extends MediaField,
EF extends BaseField = UnknownField,
D = ObjectValue,
>(
url: string | undefined | null,
collection?: CollectionWithDefaults<EF>,
field?: T,
entry?: Entry,
entry?: Entry<D>,
currentFolder?: string,
isDirectory?: boolean,
): string {
Expand All @@ -68,7 +79,7 @@ export default function useMediaAsset<T extends MediaField, EF extends BaseField

const fetchMedia = async () => {
const asset = await dispatch(
getAsset<T, EF>(collection, entry, debouncedUrl, field, currentFolder),
getAsset<T, EF>(collection, entry as Entry, debouncedUrl, field, currentFolder),
);

if (alive) {
Expand Down

0 comments on commit 8641036

Please sign in to comment.