From db4476d1cbd3fdf9e4bae4147420a34e478b3a7c Mon Sep 17 00:00:00 2001 From: arcticfly <41524992+arcticfly@users.noreply.github.com> Date: Fri, 7 Jul 2023 14:47:54 -0700 Subject: [PATCH] Change website layout (#18) * Add basic experiments page * Isolate experiment components * Fix grid on small screens * Change nav bar * Add padding to logo * Fix linking * Remove right margin on ExperimentCard flask * Change favicon * Use humanize in formatTimePast * Add TODO --- @types/nextjs-routes.d.ts | 1 + public/favicon.ico | Bin 15086 -> 15086 bytes public/favicons/android-chrome-192x192.png | Bin 11047 -> 1234 bytes public/favicons/android-chrome-512x512.png | Bin 31152 -> 1962 bytes public/favicons/apple-touch-icon.png | Bin 10381 -> 1269 bytes public/favicons/favicon-16x16.png | Bin 1147 -> 738 bytes public/favicons/favicon-32x32.png | Bin 2014 -> 828 bytes public/favicons/favicon.ico | Bin 15086 -> 15086 bytes public/favicons/mstile-144x144.png | Bin 8095 -> 0 bytes public/favicons/mstile-150x150.png | Bin 8080 -> 1219 bytes public/favicons/mstile-310x150.png | Bin 8741 -> 0 bytes public/favicons/mstile-310x310.png | Bin 17796 -> 0 bytes public/favicons/mstile-70x70.png | Bin 5573 -> 0 bytes public/favicons/safari-pinned-tab.svg | 17 +++ public/logo.svg | 108 ++-------------- src/components/experiments/ExperimentCard.tsx | 76 +++++++++++ .../experiments/NewExperimentButton.tsx | 29 +++++ src/components/nav/AppShell.tsx | 119 ++++++------------ src/pages/experiments/[id].tsx | 9 +- src/pages/experiments/index.tsx | 40 ++++++ src/pages/index.tsx | 21 ++-- src/server/api/routers/experiments.router.ts | 29 ++++- .../api/routers/promptVariants.router.ts | 19 ++- src/server/api/routers/scenarios.router.ts | 9 ++ src/utils/dayjs.ts | 20 +++ 25 files changed, 301 insertions(+), 196 deletions(-) delete mode 100644 public/favicons/mstile-144x144.png delete mode 100644 public/favicons/mstile-310x150.png delete mode 100644 public/favicons/mstile-310x310.png delete mode 100644 public/favicons/mstile-70x70.png create mode 100644 public/favicons/safari-pinned-tab.svg create mode 100644 src/components/experiments/ExperimentCard.tsx create mode 100644 src/components/experiments/NewExperimentButton.tsx create mode 100644 src/pages/experiments/index.tsx create mode 100644 src/utils/dayjs.ts diff --git a/@types/nextjs-routes.d.ts b/@types/nextjs-routes.d.ts index 0c8dd88..08e1564 100644 --- a/@types/nextjs-routes.d.ts +++ b/@types/nextjs-routes.d.ts @@ -14,6 +14,7 @@ declare module "nextjs-routes" { | DynamicRoute<"/api/auth/[...nextauth]", { "nextauth": string[] }> | DynamicRoute<"/api/trpc/[trpc]", { "trpc": string }> | DynamicRoute<"/experiments/[id]", { "id": string }> + | StaticRoute<"/experiments"> | StaticRoute<"/">; interface StaticRoute { diff --git a/public/favicon.ico b/public/favicon.ico index b48618ac4f99df9a5eea495a0c1fbe628f5de3af..9069131290fc9e8328ac328eb1263039163792dd 100644 GIT binary patch literal 15086 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 c8a*0y=cA03PAQp!lvI6-E$sR$z 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 Ih4}IR0CRfkZU6uP diff --git a/public/favicons/android-chrome-512x512.png b/public/favicons/android-chrome-512x512.png index 005d003c2d54632d9ab0220c695100e27a331e27..7bb045c7be92c267d1e77354d3cde453a988bdde 100644 GIT binary patch literal 1962 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&w@L)Zt|+Cx8@7x}&cn1H;CC?mvmFK)yn< zN02WALzNl>LqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bX-A)^mS!_&dx3>Da+M)Fq46Sb&aQsV@SoVw>M5E2|0>5 zTx{ccOrbgx~&LZoc_CbK0H__heW$R9FAIclOQS21)%jvJ7wG3i%r<7>+P2 z$RX(+6@rB#-jLv9zENjUFQ5J`^FWXIwdc(YSGbYF(tNGE|AK|S*B7f_IFYyP<+q!e zx8KNqPc09L-+%Va@51Lcy>)M5Z#+A4dgolf`)BWcza#&>>}T=2>W}L$u3!8A(%;AO zB_A1qiG)O8P*qK$4vLf?cm&G4B!Yx5-$>L!k@AM4?4;{I@Zv2Qp-;L!Fdg0eFc$H2 z!^PWVgg)`+qpK8?M;9T2zj!+tp-+UlIF#tv;gG;7{NNMApL=pw58pi_*Ju4a^UL!l z#*8$iB5{v5LxJrtq3L(BzI^-VeBOLCy&nOiTJ zTUc4xd$I_#u!2j2$>9`c<;@`qr*B+2apcSqnIr6{8$1?x=`p+#7cBYYWI7cTKAx_A JF6*2UngBV(cP{_{ literal 31152 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 diff --git a/public/favicons/apple-touch-icon.png b/public/favicons/apple-touch-icon.png index 441f6d681d4ff9cb7d121e0c05557b86c0c66b80..008f87df74839d1e1385e589d0f58e572b770b59 100644 GIT binary patch delta 1045 zcmeAT{K`2&l7pFnfq_f-8^c6JyL!gd0G|+7pa6M5gq=l>i%k}YcsOOHrDf&hWPw0N zMwX9Tn4N{0k#VA->>Y2Nn_k*CJ+*E|+21^Q^yaNwH-X^7xtkdQH|sq#Cm71IFfy*P zQu-fh@;}1(f4I^AZ14YXUi=4wFQ5L`#QzU7TnUtoF!>*D{6EXOBJ)Yoo+)0g_g-MW&S&*GoP=H?$2m}NKIoO2Q zShV>$wfQ-;`8c#i>iM-bG_-+0U0qw4FG)${g}>f&AoA6Do)_}`&duj9UOWeaD;J)p zcs%#j%~ciqUlsfR^N0Vhp8d}c_#bBUKh*GlW$gdFfEan9TV6Uh)BSIrJ9G2+k(+TY zu?oUGEKIU|T(Z(qvb>zUEX*lyHv0g>S*Rq)FPP!&p{rLu)gKX%klV(-ZavGK+00?< zAI||wGbVYvyBOZQEn5WSa29w(7Bet#3xhBt!>lhvIa$e|}c7iYRl);?OcV_>c_bqdI zIH&jj`r=m2{klK=@?Y?TFAIpgX}PoQ)2E|sOP^|SEV$b`PibP8x7X=Y&DyJ1tPz?u zW!myvfBU}u`eUke_1aZ)iR_%9R<)&1zgIH9NL%Zwvh`|HUbZ+;)ioX|lZ*=s9GlsA zaWVc&Z#lodGo`k^^}@v^T)tkfKZ`c)-n=?`$-H~}{xv@M#opcqH2UgQ$%^+A?Toap z-T2Y6@ucQK&&=K$8}?t>nhymh#)}Is{hw2ncJ0cYKZh1=T>5lpWcpd3*Y2)2n-)!- z5i$GGqp$jF*Q}cvb^pelTYP!h>E-!nBUfwx3jA1Dwn*aWwicJa-oNW-{WP6eRgkgE ztFO;rW?#UiZ(kP+3BU3E_F_r+mZ!&TY&S1BAG-Yd2W=}(LSDk-TijAUkU)AN@7DfK z-|6W>eZ8}*=dND2&iD4x{Jd`2b=~{+OzzsZJ?~=O3FCDi&sEkG?V0gAQp>8v(@}kS zi`d**Y2H<}zR>VBS$k58j)XK<0+rYrez@RW>p7rDtSR@!Y)!HY^ HY2*U{&PS^5 delta 10278 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 VH8plJXK{3~%svw!Ob&;2{2$GgV!HqU diff --git a/public/favicons/favicon-16x16.png b/public/favicons/favicon-16x16.png index 0a399fcd076e161c67f29147f7a41624cde8cc0e..f2f1f88414341b0750f82b68a6a8d5d8bb4eaff9 100644 GIT binary patch delta 547 zcmey(@rZRod_BW~0G|+71_lNuMg~R(hDIH!eU56|?UZ+Vo9wh#-EOZ6l!AcSCUUb) z<$>%KmWnH^lvY?OwdzW>>PdI&%bao3JmsQ(D%9rGo}H(<>rOeVopRM!Z=?J_(&T@b z(f=Hu|8HOY-!T7wnBo5j9YaMD%d zq>IM;D9g9!Prlu;_HB^C+d%#IK?eU5?f>7u@&DMa|4H^|e2q?RTzzWp>^46_eH*fm!tT+M`XH4>Tcd@riHYf#h zI14-?>x&r}xP?KOkzv*x37{x@iKnkC`*U`7QAt^@&V!jip>|If#}J9j$pV6+!qX>A znbgJ*D99!mX<5nYs+!6%VQS)pz_6ge(2(GEhSUWOYyqvy#9CIbQ9OL$%%M}u)-GPX zeEs_M$Il%+bmqXxqi2&7GE#Dql9EoHK6~`!f%*d{j_0T4Eo8j1Q1QU=6Ad~GbUfl2 zy^Fac7o1=4F5!{zrcK*6vi`d3H>1Ckks&uHyKl z!+akP3w+wo|7E|Zlmbvn8>m21LHpw|z7K~4K5paxGDrC18ljK71pfbLkdW5}ssYMM zDQbT_Ecj`Qz=xy!pO*;%xsr<7(m<2z6}3O@;s3Z#;Nv0wk1GWvL1yW^-^%xKfv}W3 zP@4|Wl#hD_K5Z8GJY8H0WSKU|DGE9=3R<6lPCU&2X@kJmMS{{mo4^j0RMdQTLh$2m zpqcz1kMMt7FYtY)AjA=$4)cClEA)RG1JKdZia`GWT~MzB^y{Z}f*&^tf7-|YX$w%P zF3=I55AgsU`)Rwt=T(A0F34iA?>`*o|GZ1^|9)Vo=*r7$z6XZHD#4HI1wU@)11bPI zT|vPB94fjWcL)L%D=8U+9C3jE<6-^}Kp!6B|GZl8<92~hD+NET2kI55|NsC0Bhj9H z!0<0F3GxeOV9HG9iEa*HP0C0-<7WQpmBiWjNghJqe#cIH#^^b*&o}Fqay zqhGZe2av&D;_2(k{+yjrKwW=1w@ucR`YZ z1jh~DvgStKR~>&J%a+;SG5$O!a>LUbist(J7YMYcGIw>&oigQAef6?6cOoAKtyr^Y zms{5BS4$UeTp77==~T0cWmYa$yLX9JRlOAc`9fYmvSg>I4!?6!T-uFf&7KNLSz`mc zhqGDg6S$V8yV#{SpJDyea!7DSd_+uCT%(5t%j)b6|Gw_sxbpt?ZKf9`-u!vsekrd2W+85kMs8kp-EpljGEuXO;ZK@y}PI6tkVJh3R1p}f3YFEcN@I61K(RWH9N hefB#WDWIb8s*s41pu}>8f};Gi%$!t(lF1!RQ2=&-f>Hng diff --git a/public/favicons/favicon-32x32.png b/public/favicons/favicon-32x32.png index a20c6d1bde5ec01cefcd2e50309db9224120103d..2bea3ef3d398a4e1395e2c0729e984587fc7665f 100644 GIT binary patch delta 589 zcmcb|zlUu?d_BXr0G|+71_lOMF1AQHp;!gsSOp;etz=sbB5Pvf1S@k`mM%_U18px zF~OZ>MV%=zo%Z^jdQzSG(p~z}t-8`re09GD>U{||_;O(Dm!H4BeEa^Tui{If?$;2* zCw_YG0uBC0n*Beu@BhDl|0mb{4>9;3qW?e2?0|YI{d#dwW~EpHsW8 z@s$Mm1vBi}xpU{f&+KecmxV7~x~Q^wJy3=*$=lsU_BC_iL?DN=z$3Dl zfq`2Xgc%uT&5-~KvX^-Jy0SlKXBU-}Eak-aXR_IV{ry1N5w?JKto5y zk^|?DE9fb5vIJc++Enz3Ytjn`Cz)0C4vcFY3JbIkJmywS6%7p)H7(`!)ypDn(KfkEPFx=r9N>C(wB*knb_LyQcqj7+VJEVT^`tPBjUD^Km8EXj^3v8+zl Jcyc~_J^-39;t>D< delta 1784 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 c8a*0y=cA03PAQpJlZaE?RWa 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 diff --git a/public/favicons/mstile-150x150.png b/public/favicons/mstile-150x150.png index 85e4e1f89c167eaaf8c756b884507961c4c1e922..1e7c37952429549fec8e4c02ed03c3de3892a3c0 100644 GIT binary patch delta 995 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 E0K%H&D*ylh diff --git a/public/favicons/mstile-310x150.png b/public/favicons/mstile-310x150.png deleted file mode 100644 index d2dda825a70e2273bcc4b1fcb73bde490cf51304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8741 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

)D0WtKa#f*?5U%hatI5 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 X!OrBf`%pHSWN{-7 diff --git a/public/favicons/mstile-310x310.png b/public/favicons/mstile-310x310.png deleted file mode 100644 index 7fda71e29f551aec3a557ceff00e1d34a4126539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17796 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 diff --git a/public/favicons/mstile-70x70.png b/public/favicons/mstile-70x70.png deleted file mode 100644 index f2b42cfcd49c8693abbd99d2b917fd1cf7aaf16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5573 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 diff --git a/public/favicons/safari-pinned-tab.svg b/public/favicons/safari-pinned-tab.svg new file mode 100644 index 0000000..344b685 --- /dev/null +++ b/public/favicons/safari-pinned-tab.svg @@ -0,0 +1,17 @@ + + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/public/logo.svg b/public/logo.svg index d44df40..9eb2c24 100644 --- a/public/logo.svg +++ b/public/logo.svg @@ -1,100 +1,8 @@ - - - - - - - - - - - - - - -{{ + + + + + + + + diff --git a/src/components/experiments/ExperimentCard.tsx b/src/components/experiments/ExperimentCard.tsx new file mode 100644 index 0000000..a9f9cb7 --- /dev/null +++ b/src/components/experiments/ExperimentCard.tsx @@ -0,0 +1,76 @@ +import { + Card, + CardBody, + HStack, + Icon, + VStack, + Text, + CardHeader, + Divider, + Box, +} from "@chakra-ui/react"; +import { RiFlaskLine } from "react-icons/ri"; +import { formatTimePast } from "~/utils/dayjs"; +import { useRouter } from "next/router"; + +type ExperimentData = { + testScenarioCount: number; + promptVariantCount: number; + id: string; + label: string; + sortIndex: number; + createdAt: Date; + updatedAt: Date; +}; + +export const ExperimentCard = ({ exp }: { exp: ExperimentData }) => { + const router = useRouter(); + return ( + { + e.preventDefault(); + void router.push({ pathname: "/experiments/[id]", query: { id: exp.id } }, undefined, { + shallow: true, + }); + }} + > + + + + {exp.label} + + + + + + + + + + Created {formatTimePast(exp.createdAt)} + + Updated {formatTimePast(exp.updatedAt)} + + + + ); +}; + +const CountLabel = ({ label, count }: { label: string; count: number }) => { + return ( + + + {label} + + + {count} + + + ); +}; diff --git a/src/components/experiments/NewExperimentButton.tsx b/src/components/experiments/NewExperimentButton.tsx new file mode 100644 index 0000000..47f8864 --- /dev/null +++ b/src/components/experiments/NewExperimentButton.tsx @@ -0,0 +1,29 @@ +import { Icon, Button, Spinner, type ButtonProps } from "@chakra-ui/react"; +import { api } from "~/utils/api"; +import { useRouter } from "next/router"; +import { BsPlusSquare } from "react-icons/bs"; +import { useHandledAsyncCallback } from "~/utils/hooks"; + +export const NewExperimentButton = (props: ButtonProps) => { + const router = useRouter(); + const utils = api.useContext(); + const createMutation = api.experiments.create.useMutation(); + const [createExperiment, isLoading] = useHandledAsyncCallback(async () => { + const newExperiment = await createMutation.mutateAsync({ label: "New Experiment" }); + await utils.experiments.list.invalidate(); + await router.push({ pathname: "/experiments/[id]", query: { id: newExperiment.id } }); + }, [createMutation, router]); + + return ( + + ); +}; diff --git a/src/components/nav/AppShell.tsx b/src/components/nav/AppShell.tsx index 13ebf47..a8fe871 100644 --- a/src/components/nav/AppShell.tsx +++ b/src/components/nav/AppShell.tsx @@ -1,119 +1,82 @@ import { - Box, Heading, VStack, Icon, HStack, - type BoxProps, - forwardRef, Image, - Link, Grid, GridItem, + Divider, + Text, + Box, + type BoxProps, + type LinkProps, + Link, } from "@chakra-ui/react"; import Head from "next/head"; -import { api } from "~/utils/api"; -import { BsGithub, BsPlusSquare, BsTwitter } from "react-icons/bs"; -import { RiFlaskLine } from "react-icons/ri"; +import { BsGithub, BsTwitter } from "react-icons/bs"; import { useRouter } from "next/router"; -import NextLink from "next/link"; -import { useHandledAsyncCallback } from "~/utils/hooks"; import PublicPlaygroundWarning from "../PublicPlaygroundWarning"; +import { type IconType } from "react-icons"; +import { RiFlaskLine } from "react-icons/ri"; -const ExperimentLink = forwardRef( - ({ children, active, ...props }, ref) => ( +type IconLinkProps = BoxProps & LinkProps & { label: string; icon: IconType; href: string }; + +const IconLink = ({ icon, label, href, target, ...props }: IconLinkProps) => { + const isActive = useRouter().pathname.startsWith(href); + return ( - {children} + + + {label} + - ) -); - -ExperimentLink.displayName = "ExperimentLink"; - -const Separator = () => ; + ); +}; const NavSidebar = () => { - const experiments = api.experiments.list.useQuery(); - const router = useRouter(); - const utils = api.useContext(); - const currentId = router.query.id as string | undefined; - - const createMutation = api.experiments.create.useMutation(); - const [createExperiment] = useHandledAsyncCallback(async () => { - const newExperiment = await createMutation.mutateAsync({ label: "New Experiment" }); - await utils.experiments.list.invalidate(); - await router.push({ pathname: "/experiments/[id]", query: { id: newExperiment.id } }); - }, [createMutation, router]); - return ( - - + + OpenPipe - + - - Experiments - - - - - New Experiment - - - {experiments?.data?.map((exp) => ( - - - {exp.label} - - ))} - + - - - - + + - - - + - - - + /> + ); }; diff --git a/src/pages/experiments/[id].tsx b/src/pages/experiments/[id].tsx index 231170f..c938cd3 100644 --- a/src/pages/experiments/[id].tsx +++ b/src/pages/experiments/[id].tsx @@ -15,6 +15,7 @@ import { AlertDialogContent, AlertDialogOverlay, useDisclosure, + BreadcrumbLink, } from "@chakra-ui/react"; import { useRouter } from "next/router"; @@ -120,9 +121,11 @@ export default function Experiment() { - - Experiments - + + + Experiments + + + + + + + + Experiments + + + + + + + {experiments?.data?.map((exp) => ( + + ))} + + + + ); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index f7e5976..99d5739 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,12 +1,15 @@ -import { Center } from "@chakra-ui/react"; -import AppShell from "~/components/nav/AppShell"; +import { type GetServerSideProps } from 'next'; + +// eslint-disable-next-line @typescript-eslint/require-await +export const getServerSideProps: GetServerSideProps = async (context) => { + return { + redirect: { + destination: '/experiments', + permanent: false, + }, + } +} export default function Home() { - return ( - -
-
Select an experiment from the sidebar to get started!
-
-
- ); + return null; } diff --git a/src/server/api/routers/experiments.router.ts b/src/server/api/routers/experiments.router.ts index 4c4e679..ff7b8df 100644 --- a/src/server/api/routers/experiments.router.ts +++ b/src/server/api/routers/experiments.router.ts @@ -4,11 +4,38 @@ import { prisma } from "~/server/db"; export const experimentsRouter = createTRPCRouter({ list: publicProcedure.query(async () => { - return await prisma.experiment.findMany({ + const experiments = await prisma.experiment.findMany({ orderBy: { sortIndex: "asc", }, }); + + // TODO: look for cleaner way to do this. Maybe aggregate? + const experimentsWithCounts = await Promise.all( + experiments.map(async (experiment) => { + const visibleTestScenarioCount = await prisma.testScenario.count({ + where: { + experimentId: experiment.id, + visible: true, + }, + }); + + const visiblePromptVariantCount = await prisma.promptVariant.count({ + where: { + experimentId: experiment.id, + visible: true, + }, + }); + + return { + ...experiment, + testScenarioCount: visibleTestScenarioCount, + promptVariantCount: visiblePromptVariantCount, + }; + }), + ); + + return experimentsWithCounts; }), get: publicProcedure.input(z.object({ id: z.string() })).query(async ({ input }) => { diff --git a/src/server/api/routers/promptVariants.router.ts b/src/server/api/routers/promptVariants.router.ts index 4d3c374..2e7db3e 100644 --- a/src/server/api/routers/promptVariants.router.ts +++ b/src/server/api/routers/promptVariants.router.ts @@ -76,7 +76,7 @@ export const promptVariantsRouter = createTRPCRouter({ }) ) .mutation(async ({ input }) => { - const lastScenario = await prisma.promptVariant.findFirst({ + const lastVariant = await prisma.promptVariant.findFirst({ where: { experimentId: input.experimentId, visible: true, @@ -98,16 +98,25 @@ export const promptVariantsRouter = createTRPCRouter({ }) )._max?.sortIndex ?? 0; - const newScenario = await prisma.promptVariant.create({ + const newVariant = await prisma.promptVariant.create({ data: { experimentId: input.experimentId, label: `Prompt Variant ${largestSortIndex + 2}`, - sortIndex: (lastScenario?.sortIndex ?? 0) + 1, - config: lastScenario?.config ?? {}, + sortIndex: (lastVariant?.sortIndex ?? 0) + 1, + config: lastVariant?.config ?? {}, }, }); - return newScenario; + await prisma.experiment.update({ + where: { + id: input.experimentId, + }, + data: { + updatedAt: new Date(), + }, + }); + + return newVariant; }), update: publicProcedure diff --git a/src/server/api/routers/scenarios.router.ts b/src/server/api/routers/scenarios.router.ts index 6747f44..e5df5a3 100644 --- a/src/server/api/routers/scenarios.router.ts +++ b/src/server/api/routers/scenarios.router.ts @@ -45,6 +45,15 @@ export const scenariosRouter = createTRPCRouter({ : {}, }, }); + + await prisma.experiment.update({ + where: { + id: input.experimentId, + }, + data: { + updatedAt: new Date(), + }, + }); }), hide: publicProcedure.input(z.object({ id: z.string() })).mutation(async ({ input }) => { diff --git a/src/utils/dayjs.ts b/src/utils/dayjs.ts new file mode 100644 index 0000000..705a5dc --- /dev/null +++ b/src/utils/dayjs.ts @@ -0,0 +1,20 @@ +import dayjs from "dayjs"; +import duration from "dayjs/plugin/duration"; +import relativeTime from "dayjs/plugin/relativeTime"; + +dayjs.extend(duration); +dayjs.extend(relativeTime); + +export const formatTimePast = (date: Date) => { + const now = dayjs(); + const dayDiff = Math.floor(now.diff(date, "day")); + if (dayDiff > 0) return dayjs.duration(-dayDiff, "days").humanize(true); + + const hourDiff = Math.floor(now.diff(date, "hour")); + if (hourDiff > 0) return dayjs.duration(-hourDiff, "hours").humanize(true); + + const minuteDiff = Math.floor(now.diff(date, "minute")); + if (minuteDiff > 0) return dayjs.duration(-minuteDiff, "minutes").humanize(true); + + return 'a few seconds ago' +};