diff --git a/src/hooks/use-time-filter.ts b/src/hooks/use-time-filter.ts index ee10954d..748b30cc 100644 --- a/src/hooks/use-time-filter.ts +++ b/src/hooks/use-time-filter.ts @@ -51,10 +51,43 @@ const useTimeFilter = () => { timeFilterName = lastVisitTimeFilterName; } - assert(!timeFilterName || typeof timeFilterName === 'string', `useTimeFilter timeFilterName argument '${timeFilterName}' not a string`); - const timeFilterSeconds = timeFilterNamesToSeconds[timeFilterName as keyof typeof timeFilterNamesToSeconds]; - assert(!timeFilterName || timeFilterName === 'all' || timeFilterSeconds !== undefined, `useTimeFilter no filter for timeFilterName '${timeFilterName}'`); - return { timeFilterSeconds, timeFilterNames, timeFilterName }; + let timeFilterSeconds: number | undefined; + + if (timeFilterName === 'all') { + timeFilterSeconds = undefined; + } else if (timeFilterName && timeFilterName in timeFilterNamesToSeconds) { + timeFilterSeconds = timeFilterNamesToSeconds[timeFilterName as keyof typeof timeFilterNamesToSeconds]; + } else if (timeFilterName) { + // Handle dynamic time filters (e.g., "3d", "2w") + const match = timeFilterName.match(/^(\d+)([dwmy])$/); + if (match) { + const [, value, unit] = match; + const numValue = parseInt(value, 10); + switch (unit) { + case 'd': + timeFilterSeconds = numValue * 24 * 60 * 60; + break; + case 'w': + timeFilterSeconds = numValue * 7 * 24 * 60 * 60; + break; + case 'm': + timeFilterSeconds = numValue * 30 * 24 * 60 * 60; + break; + case 'y': + timeFilterSeconds = numValue * 365 * 24 * 60 * 60; + break; + } + } + } + + // If we still don't have a valid timeFilterSeconds, use the default (24h) + if (timeFilterSeconds === undefined && timeFilterName !== 'all') { + timeFilterSeconds = timeFilterNamesToSeconds['24h']; + } + + assert(timeFilterName === 'all' || timeFilterSeconds !== undefined, `useTimeFilter no filter for timeFilterName '${timeFilterName}'`); + + return { timeFilterSeconds, timeFilterNames, timeFilterName, lastVisitTimeFilterName }; }; export default useTimeFilter; diff --git a/src/lib/utils/media-utils.ts b/src/lib/utils/media-utils.ts index a003350c..d61dbe58 100644 --- a/src/lib/utils/media-utils.ts +++ b/src/lib/utils/media-utils.ts @@ -4,8 +4,7 @@ import extName from 'ext-name'; import { canEmbed } from '../../components/embed'; import memoize from 'memoizee'; import { isValidURL } from './url-utils'; -import { Capacitor } from '@capacitor/core'; -import { CapacitorHttp } from '@capacitor/core'; +import { Capacitor, CapacitorHttp } from '@capacitor/core'; export interface CommentMediaInfo { url: string;