Skip to content

Commit bdc823a

Browse files
authored
Release/november (#92)
* removed farcaster login added 700 milliseconds to wait before endorsment fetch added back cacheechange for graphql client * Fixed these bugs [BUG] - Zerion #79 [BUG] - Farcaster Login #80 [BUG] - Farcaster Wallet adress #81 [BUG] Farcaster ID #82 [BUG] Endorsements - Symbols Limit #83 [BUG] Endorsement Not In Local Time #84 [BUG] Endorsements submitting appearance (API) #85 [BUG] Long Project name & Description (2 bugs) #86 [BUG] UI/UX on Endorsements page #87 [BUG] Character limit to high for endorsements #88 [BUG] Last endorsement time wrong at times #89 [BUG] Endorsement EAS Link #90 [BUG] Too many pages for pagination. #91
1 parent 8429ff2 commit bdc823a

File tree

11 files changed

+46
-45
lines changed

11 files changed

+46
-45
lines changed

packages/client/src/app/projects/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const ProjectsPage: NextPage = async ({
1313
}) => {
1414
const query = searchParams?.query || "";
1515
const currentPage = Number(searchParams?.page) || 1;
16-
const totalPages = 5;
16+
const totalPages = 4;
1717

1818
return (
1919
<ProjectsView query={query} page={currentPage} totalPages={totalPages} />

packages/client/src/components/Project/Attest/Endorsement.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export const ProjectAttestEndorsement = forwardRef<
3434
ref={ref}
3535
{...props}
3636
/>
37-
<p className="text-sm">500 Characters Max</p>
37+
<p className="text-sm">250 Characters Max</p>
3838
</div>
3939
);
4040
});

packages/client/src/components/Project/Attest/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ function generateSchema(projectCreator: boolean) {
3232
.nullish(),
3333
})
3434
: z.object({
35-
endorsement: z.string().min(100).max(1000),
35+
endorsement: z.string().min(100).max(250),
3636
metrics: z
3737
.array(
3838
z.object({

packages/client/src/components/Project/Endorsements.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export const ProjectEndorsementCard: React.FC<ProjectEndorsementCardProps> = ({
2727
<p className="font-semibold">
2828
by {formatAddress(endorsement.attester)}
2929
</p>
30-
<span>{endorsement.created_at}</span>
30+
<span>{new Date(endorsement.created_at).toLocaleString()}</span>
3131
</div>
3232
</li>
3333
);

packages/client/src/components/Project/Overview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export const ProjectOverview: React.FC<ProjectOverviewProps> = ({
5555
height={120}
5656
/>
5757
<div className="flex-1">
58-
<h1 className="text-5xl font-semibold">{title}</h1>
58+
<h1 className="line-clamp-2 text-5xl font-semibold">{title}</h1>
5959
<p className="line-clamp-6">{description}</p>
6060
</div>
6161
<div className="flex h-full basis-72 flex-col items-end justify-between gap-6">

packages/client/src/hooks/useEndorsements.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ export const useEndorsements = (projectUID: string) => {
2727
const { data, refetch } = useQuery({
2828
queryKey: ["endorsements", projectUID],
2929
queryFn: () => getProjectEndorsements(projectUID),
30-
staleTime: 30000,
31-
refetchInterval: 120000,
30+
// staleTime: 30000,
31+
refetchInterval: 4000,
3232
});
3333

3434
const createEndorsement = async (params: CreateEndorsementParams) => {
@@ -64,7 +64,7 @@ export const useEndorsements = (projectUID: string) => {
6464

6565
const newAttestationUID = await transaction.wait();
6666

67-
await delay(2000);
67+
await delay(3200);
6868
await refetch();
6969

7070
toast.dismiss();

packages/client/src/modules/urql.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ import { Client, cacheExchange, fetchExchange } from "@urql/core";
22

33
export const easOptimismClient = new Client({
44
url: "https://optimism.easscan.org/graphql",
5-
exchanges: [fetchExchange],
6-
requestPolicy: "network-only",
5+
exchanges: [cacheExchange, fetchExchange],
76
});
87

98
export const osoClient = new Client({
109
url: "https://www.opensource.observer/api/v1/graphql",
11-
exchanges: [fetchExchange],
12-
requestPolicy: "network-only",
10+
exchanges: [cacheExchange, fetchExchange],
1311
fetchOptions: {
1412
headers: {
1513
Authorization: `Bearer ${process.env.OPEN_SOURCE_OBSERVER_API_KEY}`,

packages/client/src/modules/wagmi.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,12 @@ export const metadata = {
1717
};
1818

1919
// Create wagmiConfig
20-
const chains = [optimism] as const;
2120
export const config = defaultWagmiConfig({
22-
chains,
21+
chains: [optimism],
2322
projectId,
2423
metadata,
2524
ssr: true,
26-
auth: {
27-
socials: ["farcaster"],
28-
},
25+
auth: {},
2926
storage: createStorage({
3027
storage: cookieStorage,
3128
}),

packages/client/src/utils/text.ts

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,42 @@ export function formatPrice(
1818
}
1919

2020
export function formatLastUpdated(updatedAt: string) {
21+
const msPerSecond = 1000;
22+
const msPerMinute = 60 * msPerSecond;
23+
const msPerHour = 60 * msPerMinute;
24+
const msPerDay = 24 * msPerHour;
25+
const msPerMonth = 30 * msPerDay;
26+
const msPerYear = 12 * msPerMonth;
27+
2128
const updatedDate = new Date(updatedAt).getTime();
2229
const now = new Date().getTime();
30+
const differenceInMs = now - updatedDate;
31+
32+
if (differenceInMs < msPerSecond) {
33+
return "just now";
34+
}
35+
36+
if (differenceInMs < msPerMinute) {
37+
return `${Math.floor(differenceInMs / msPerSecond)} seconds ago`;
38+
}
2339

24-
console.log("updatedDate", updatedDate, now);
40+
if (differenceInMs < msPerHour) {
41+
return `${Math.floor(differenceInMs / msPerMinute)} minutes ago`;
42+
}
2543

26-
const differenceInSeconds = Math.floor((now - updatedDate) / 1000);
44+
if (differenceInMs < msPerDay) {
45+
return `${Math.floor(differenceInMs / msPerHour)} hours ago`;
46+
}
2747

28-
const intervals = [
29-
{ label: "year", seconds: 31536000 },
30-
{ label: "month", seconds: 2592000 },
31-
{ label: "day", seconds: 86400 },
32-
{ label: "hour", seconds: 3600 },
33-
{ label: "minute", seconds: 60 },
34-
{ label: "second", seconds: 1 },
35-
];
48+
if (differenceInMs < msPerMonth) {
49+
return `${Math.floor(differenceInMs / msPerDay)} days ago`;
50+
}
3651

37-
for (const interval of intervals) {
38-
const count = Math.floor(differenceInSeconds / interval.seconds);
39-
if (count !== 0) {
40-
return `${count} ${interval.label}${count !== 1 ? "s" : ""} ago`;
41-
}
52+
if (differenceInMs < msPerYear) {
53+
return `${Math.floor(differenceInMs / msPerMonth)} months ago`;
4254
}
4355

44-
return "just now";
56+
return `${Math.floor(differenceInMs / msPerYear)} years ago`;
4557
}
4658

4759
export function determineSocialMedia(link: string | null) {

packages/client/src/views/Profile/Endorsements.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,21 @@ const ProfileEndorsementsView: React.FC<ProfileEndorsementsProps> = () => {
2626
return (
2727
<div className="w-full flex-1">
2828
{endorsements?.length ? (
29-
<ul className="flex max-w-xl flex-col gap-2">
29+
<ul className="flex max-w-xl flex-col gap-3">
3030
{endorsements.map((endorsement) => (
3131
<li
3232
key={endorsement.id}
33-
className="flex flex-col items-center justify-between gap-8 rounded-xl border-slate-100 p-4 shadow-sm"
33+
className="border-1 flex flex-col items-center justify-between gap-8 rounded-xl border-slate-100 p-4 shadow-md"
3434
>
3535
<p className="max-w-prose font-light leading-snug">
3636
{endorsement.description}
3737
</p>
3838
<div className="flex w-full justify-between">
39-
<span className="">{endorsement.created_at}</span>
39+
<span className="">
40+
{new Date(endorsement.created_at).toLocaleString()}
41+
</span>
4042
<Link
41-
href={`https://sepolia.easscan.org/${endorsement.id}`}
43+
href={`https://optimism.easscan.org/attestation/view/${endorsement.id}`}
4244
target="_blank"
4345
className="button button-link"
4446
>

0 commit comments

Comments
 (0)