fix(p/all): auto time filter didn't show posts from last visit

This commit is contained in:
Tom (plebeius.eth)
2024-10-27 15:50:09 +01:00
parent 360dfb4604
commit 0b5aa7dc31
2 changed files with 38 additions and 6 deletions
+37 -4
View File
@@ -51,10 +51,43 @@ const useTimeFilter = () => {
timeFilterName = lastVisitTimeFilterName; timeFilterName = lastVisitTimeFilterName;
} }
assert(!timeFilterName || typeof timeFilterName === 'string', `useTimeFilter timeFilterName argument '${timeFilterName}' not a string`); let timeFilterSeconds: number | undefined;
const timeFilterSeconds = timeFilterNamesToSeconds[timeFilterName as keyof typeof timeFilterNamesToSeconds];
assert(!timeFilterName || timeFilterName === 'all' || timeFilterSeconds !== undefined, `useTimeFilter no filter for timeFilterName '${timeFilterName}'`); if (timeFilterName === 'all') {
return { timeFilterSeconds, timeFilterNames, timeFilterName }; 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; export default useTimeFilter;
+1 -2
View File
@@ -4,8 +4,7 @@ import extName from 'ext-name';
import { canEmbed } from '../../components/embed'; import { canEmbed } from '../../components/embed';
import memoize from 'memoizee'; import memoize from 'memoizee';
import { isValidURL } from './url-utils'; import { isValidURL } from './url-utils';
import { Capacitor } from '@capacitor/core'; import { Capacitor, CapacitorHttp } from '@capacitor/core';
import { CapacitorHttp } from '@capacitor/core';
export interface CommentMediaInfo { export interface CommentMediaInfo {
url: string; url: string;