fix #477 #492

Closed
vivganes wants to merge 4 commits from vivganes/patch-477 into main
3 changed files with 30 additions and 2 deletions

View File

@ -7,11 +7,12 @@ const DayInMs = HourInMs * 24;
export interface NoteTimeProps { export interface NoteTimeProps {
from: number; from: number;
fallback?: string; fallback?: string;
displayAbsoluteTime?: boolean;
} }
export default function NoteTime(props: NoteTimeProps) { export default function NoteTime(props: NoteTimeProps) {
const [time, setTime] = useState<string>(); const [time, setTime] = useState<string>();
const { from, fallback } = props; const { from, fallback, displayAbsoluteTime } = props;
const absoluteTime = new Intl.DateTimeFormat(undefined, { const absoluteTime = new Intl.DateTimeFormat(undefined, {
dateStyle: "medium", dateStyle: "medium",
timeStyle: "long", timeStyle: "long",
@ -59,7 +60,7 @@ export default function NoteTime(props: NoteTimeProps) {
return ( return (
<time dateTime={isoDate} title={absoluteTime}> <time dateTime={isoDate} title={absoluteTime}>
{time} {displayAbsoluteTime ? absoluteTime : time}
</time> </time>
); );
} }

View File

@ -15,6 +15,8 @@ import NoteReaction from "Element/NoteReaction";
import useModeration from "Hooks/useModeration"; import useModeration from "Hooks/useModeration";
import ProfilePreview from "Element/ProfilePreview"; import ProfilePreview from "Element/ProfilePreview";
import Skeleton from "Element/Skeleton"; import Skeleton from "Element/Skeleton";
import NoteTime from "./NoteTime";
import Spinner from "Icons/Spinner";
export interface TimelineProps { export interface TimelineProps {
postsOnly: boolean; postsOnly: boolean;
@ -108,6 +110,17 @@ const Timeline = (props: TimelineProps) => {
} }
} }
function isSearchingMessageShown() {
//show in ProfilePage
if (props.subject.type === "pubkey" && props.subject.discriminator !== "follows") {
return true;
}
if (props.subject.type === "keyword") {
return true;
}
return false;
}
return ( return (
<div className="main-content"> <div className="main-content">
{latestFeed.length > 0 && ( {latestFeed.length > 0 && (
@ -138,6 +151,18 @@ const Timeline = (props: TimelineProps) => {
)} )}
{mainFeed.map(eventElement)} {mainFeed.map(eventElement)}
<LoadMore onLoadMore={feed.loadMore} shouldLoadMore={!feed.loading}> <LoadMore onLoadMore={feed.loadMore} shouldLoadMore={!feed.loading}>
{isSearchingMessageShown() && (
<div>
<Spinner /> <FormattedMessage defaultMessage="Searching for stuff from" />{" "}
<b>
<NoteTime from={feed.since * 1000} displayAbsoluteTime />
</b>{" "}
<FormattedMessage defaultMessage="upto" />{" "}
<b>
<NoteTime from={feed.until * 1000} displayAbsoluteTime />
</b>
</div>
)}
<Skeleton width="100%" height="120px" margin="0 0 16px 0" /> <Skeleton width="100%" height="120px" margin="0 0 16px 0" />
<Skeleton width="100%" height="120px" margin="0 0 16px 0" /> <Skeleton width="100%" height="120px" margin="0 0 16px 0" />
<Skeleton width="100%" height="120px" margin="0 0 16px 0" /> <Skeleton width="100%" height="120px" margin="0 0 16px 0" />

View File

@ -180,6 +180,8 @@ export default function useTimelineFeed(subject: TimelineSubject, options: Timel
main: main.data, main: main.data,
related: related.data, related: related.data,
latest: latest.data, latest: latest.data,
since: since,
until: until,
loading: main.loading(), loading: main.loading(),
loadMore: () => { loadMore: () => {
if (main.data) { if (main.data) {