wip
This commit is contained in:
43
src/utils/createdAt.tsx
Normal file
43
src/utils/createdAt.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
import dayjs from "dayjs";
|
||||
import relativeTime from "dayjs/plugin/relativeTime";
|
||||
import updateLocale from "dayjs/plugin/updateLocale";
|
||||
|
||||
dayjs.extend(relativeTime);
|
||||
dayjs.extend(updateLocale);
|
||||
|
||||
dayjs.updateLocale("en", {
|
||||
relativeTime: {
|
||||
past: "%s ago",
|
||||
s: "just now",
|
||||
m: "1m",
|
||||
mm: "%dm",
|
||||
h: "1h",
|
||||
hh: "%dh",
|
||||
d: "1d",
|
||||
dd: "%dd",
|
||||
},
|
||||
});
|
||||
|
||||
export function formatCreatedAt(time, message = false) {
|
||||
let formated;
|
||||
|
||||
const now = dayjs();
|
||||
const inputTime = dayjs.unix(time);
|
||||
const diff = now.diff(inputTime, "hour");
|
||||
|
||||
if (message) {
|
||||
if (diff < 12) {
|
||||
formated = inputTime.format("HH:mm A");
|
||||
} else {
|
||||
formated = inputTime.format("MMM DD");
|
||||
}
|
||||
} else {
|
||||
if (diff < 24) {
|
||||
formated = inputTime.from(now, true);
|
||||
} else {
|
||||
formated = inputTime.format("MMM DD");
|
||||
}
|
||||
}
|
||||
|
||||
return formated;
|
||||
}
|
||||
@@ -1,42 +1,17 @@
|
||||
import { OPENGRAPH_KEY } from "@stores/constants";
|
||||
import { getLinkPreview } from "@libs/openGraph";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { fetch } from "@tauri-apps/api/http";
|
||||
|
||||
export function useOpenGraph(url: string) {
|
||||
const { status, data, error, isFetching } = useQuery(
|
||||
["preview", url],
|
||||
async () => {
|
||||
const result = await fetch(
|
||||
`https://skrape.dev/api/opengraph/?url=${url}&key=${OPENGRAPH_KEY}`,
|
||||
{
|
||||
method: "GET",
|
||||
timeout: 10,
|
||||
},
|
||||
);
|
||||
if (result.ok) {
|
||||
if (Object.keys(result.data).length === 0) {
|
||||
const origin = new URL(url).origin;
|
||||
const result = await fetch(
|
||||
`https://skrape.dev/api/opengraph/?url=${origin}&key=${OPENGRAPH_KEY}`,
|
||||
{
|
||||
method: "GET",
|
||||
timeout: 10,
|
||||
},
|
||||
);
|
||||
if (result.ok) {
|
||||
return result.data;
|
||||
}
|
||||
} else {
|
||||
return result.data;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
return await getLinkPreview(url);
|
||||
},
|
||||
{
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnMount: false,
|
||||
refetchOnReconnect: false,
|
||||
staleTime: Infinity,
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user