From 7fdcf75739a3928d55063f39dd785301cfdc2412 Mon Sep 17 00:00:00 2001 From: ImAlpha Date: Sun, 22 Oct 2023 23:22:00 -0700 Subject: [PATCH] fixed routing to ticket screen and added markdown editor --- Websites/jefes-nextjs/app/api/issues/route.ts | 27 ++++++++ .../app/components/NavBar/NavBar.tsx | 13 ++-- Websites/jefes-nextjs/app/globals.css | 2 +- Websites/jefes-nextjs/app/issues/new/page.tsx | 58 ++++++++++++++++++ Websites/jefes-nextjs/app/issues/page.tsx | 22 +++++++ Websites/jefes-nextjs/app/layout.tsx | 2 +- Websites/jefes-nextjs/bun.lockb | Bin 137914 -> 142437 bytes Websites/jefes-nextjs/package.json | 6 +- Websites/jefes-nextjs/prisma/client.ts | 19 ++++++ Websites/jefes-nextjs/tailwind.config.ts | 2 +- 10 files changed, 142 insertions(+), 9 deletions(-) create mode 100644 Websites/jefes-nextjs/app/api/issues/route.ts create mode 100644 Websites/jefes-nextjs/app/issues/new/page.tsx create mode 100644 Websites/jefes-nextjs/app/issues/page.tsx create mode 100644 Websites/jefes-nextjs/prisma/client.ts diff --git a/Websites/jefes-nextjs/app/api/issues/route.ts b/Websites/jefes-nextjs/app/api/issues/route.ts new file mode 100644 index 0000000..c0924ef --- /dev/null +++ b/Websites/jefes-nextjs/app/api/issues/route.ts @@ -0,0 +1,27 @@ +import { NextRequest, NextResponse } from "next/server"; +import { z } from 'zod'; +import prisma from "@/prisma/client"; + +// validate the request with zod +const createIssueSchema = z.object({ + title: z.string().min(1).max(255), // confirms string is between 1-255 characters + description: z.string().min(1), // confirms string has min length of 1 +}); + +// send request +export async function POST(request: NextRequest) { + // return request with a promise + const body = await request.json(); + + // validate the data + const validation = createIssueSchema.safeParse(body); + if (!validation.success) + return NextResponse.json(validation.error.errors, {status: 400}) // Send error 400 if data is invalid + + const newIssue = await prisma.issue.create({ + data: { title: body.title, description: body.description } + }); + + // return the issue to the client + return NextResponse.json(newIssue, {status: 201}); // status 201 means an object was created +} \ No newline at end of file diff --git a/Websites/jefes-nextjs/app/components/NavBar/NavBar.tsx b/Websites/jefes-nextjs/app/components/NavBar/NavBar.tsx index 94883de..8292e52 100644 --- a/Websites/jefes-nextjs/app/components/NavBar/NavBar.tsx +++ b/Websites/jefes-nextjs/app/components/NavBar/NavBar.tsx @@ -5,6 +5,7 @@ import Image from "next/image"; import Jefes from "../../../public/jefes_logo.jpg"; import { usePathname } from "next/navigation"; import classnames from 'classnames'; +import issues from "@/app/issues"; const NavBar = () => { const currentPath = usePathname(); @@ -12,8 +13,10 @@ const NavBar = () => { // Create an array to hold the list items const links = [ - { label: "Dashboard", href: "/Dashboard" }, - { label: "Issues", href: "/Issues" }, + { label: "Dashboard", href: "/dashboard" }, + { label: "Issues", href: "/issues" }, + { label: "Keira", href: "/issues" }, + { label: "Jacob", href: "/issues" }, ]; return ( @@ -28,9 +31,9 @@ const NavBar = () => { // className={`${link.href === currentPath ? 'text-zinc-900' : 'text-zinc-500 hover:text-zinc-800'}`} // replace with classnames object instead className={classnames({ - 'text-zinc-900': link.href === currentPath, - 'text-zinc-500' : link.href !== currentPath, - 'hover:text-zinc-800': true, + 'text-emerald-400': link.href === currentPath, + 'text-white' : link.href !== currentPath, + 'hover:text-zinc-500': true, })} href={link.href}> {link.label} diff --git a/Websites/jefes-nextjs/app/globals.css b/Websites/jefes-nextjs/app/globals.css index 28f6920..7dabf6b 100644 --- a/Websites/jefes-nextjs/app/globals.css +++ b/Websites/jefes-nextjs/app/globals.css @@ -13,6 +13,6 @@ } body { - color: black; + color: white; } diff --git a/Websites/jefes-nextjs/app/issues/new/page.tsx b/Websites/jefes-nextjs/app/issues/new/page.tsx new file mode 100644 index 0000000..474055c --- /dev/null +++ b/Websites/jefes-nextjs/app/issues/new/page.tsx @@ -0,0 +1,58 @@ +"use client"; +import React from "react"; +import SimpleMDE from "react-simplemde-editor"; +import "easymde/dist/easymde.min.css"; +import { useForm, Controller } from "react-hook-form"; +import { FormEvent } from "react"; + +interface IssueForm { + title: string; + description: string; +} + +const NewIssuePage = () => { + const { register, control, handleSubmit } = useForm(); + // console.log(register('title')) + + // handle form submit + async function onSubmit(event: FormEvent) { + event.preventDefault(); + + const formData = new FormData(event.currentTarget); + const response = await fetch("/api/issues", { + method: "POST", + body: formData, + }); + + // Handle response if necessary + // const data = await response.json(); + // ... + } + + return ( +
console.log(data))} + onSubmit={onSubmit} + > + + ( + + )} + /> + + + ); +}; + +export default NewIssuePage; diff --git a/Websites/jefes-nextjs/app/issues/page.tsx b/Websites/jefes-nextjs/app/issues/page.tsx new file mode 100644 index 0000000..b8a9d23 --- /dev/null +++ b/Websites/jefes-nextjs/app/issues/page.tsx @@ -0,0 +1,22 @@ +import Link from 'next/link' +import React from 'react' +import type { NextApiRequest, NextApiResponse } from 'next' + +const IssuesPage = () => { + async function handler( + req: NextApiRequest, + res: NextApiResponse, + ) { + const data = req.body + console.log(...data) + res.redirect(307, '/issues') + } + + return ( +
+ +
+ ) +} + +export default IssuesPage \ No newline at end of file diff --git a/Websites/jefes-nextjs/app/layout.tsx b/Websites/jefes-nextjs/app/layout.tsx index c39ec4b..56d1b2d 100644 --- a/Websites/jefes-nextjs/app/layout.tsx +++ b/Websites/jefes-nextjs/app/layout.tsx @@ -16,7 +16,7 @@ export default function RootLayout({ children: React.ReactNode }) { return ( - +
{children}
diff --git a/Websites/jefes-nextjs/bun.lockb b/Websites/jefes-nextjs/bun.lockb index 2facaef8ab7c0c24bf37d7d689c5a4f0e69cff11..564cb33c6cd6012ae1a3605482adf806a7030594 100755 GIT binary patch delta 35557 zcmeIbcU)B0_C7r4$f%>DAc&xdAc}~B^dTZ6Sg?$-3nbPN2Lb7z5!;MLjV&r}_1G1= zSc$zPvBbo#*jtPxMuXinO|JTT);aqq@v7h4&l_+4c<=e}%sOlBwfA0Y?K(4@+1odj zy>YJW6u){~r>>01%GthdsI8tdTnzA}@KS10ghQ+94@U$Z9Fl-1viq?O3v40%p&M!Iiuwq^nNa^Req87PnVPe3by4hPj)aFb;=#pi%oXQR=O0WGyi0NnweXhv32 zcB)CEDN|a>m}VYC>YAx#6hm@BU7*(sv>N5-a(~dO;GMYqDe{xvkD!jACqXUb;X&L` zMR(x_S@<1jMbKT4lV@8XBzZ=9c20bDw#Ec2$)i|MN>4MTr6(aW8=+4Q^cj%dCp{OD zf)ep_xI8C2C8-Y?&g+907P)`~2&uv*hznWV9Xu7>5tJ&<9uS{p$~J5EAg*M2MpBk3 z$DFN69Sj9r`IQyDoJ4b4QbMj~9OtKjlA(pjM@`Z%C7tTmG(sVE;M3DA@n#Zylx51u zfW-kwph);vQ9?ZplnfaIN(LsSC7QF6ak@-CFXcRpA1}q(kWjaC^=xo3x(PY zS{?KjD9JnE1x2CBv(r-snl+6r(5eYRAShK-8^^lL8-jSu1W;1gC~7`4MmqLDIO8m1j1S>cn~NRco38-Ois#4q5_k$edQ=y+!ejmyxhg0q?c;W>SqqrXt>;B zecwZAiv&}4P9_S-G7rcm<0{rtJUa$Tov6B}(j*aFzi-Mws!ubE8ycUO-ao0YDJvn{ zJkXq$lZ{c;w{KEbM#tKUp$>JFK441AO*Q4jCz`VQA-6@N8HWP!XKex&{l#iVFHOtQ zXzJ8cJgCm;a!&0zjqy?PrI-h%ks)otQ)KFK8U%{gwDvWdGklY>H6rrSxL5nwuikJB z^;?T@1LLg8*}if!!ml=OIv7to~Cq#TWxzmmQHm~wJ31x`Um^2D4yASVe1n6onnn6q*RAQ+#?B zg(?$rYSQ>%#GgFr0ReTwzUlEfSxIT;zUDpysC81&;ppmwbc(=7iAnK^;FGe=gHXQa zV2EPKyilc=XP9ylePK0PH>E$)O?oAQ7)`z~zF!P@DyLqUqCY5%l`HLLDf6CE{auJ@ z0u4rW==N3@P#V4G8(|=VRsv7{J+G^@{5Ro>e>*_Qp8<^(ng~kMPN@jR?;oH~Jz+m6 zmD`>3?x2W|#d-{Vj}%TtDh0SlDRz$qPX$c}CA;@PPVw3VO7eKfiQfx~3BelBOj!|X zfKohloc2r4!1S!qtbv{rJ$`k-svHfxXB;eSHuF zm?NzwPTP|L_z+NPni`{S z-4akTd>SYjHW<`G1!QoA54l1!P%|4>KRH3}MWB9KEPln9rbRsB~GrS4nPo8J;gtlFkwp$NMgU23nN^b{B{EiqUqf4yf z$;Y5nkXxMMkrk9G9>^&olWoRy2AXQhK=>i2$UQH5Q5*%Z4=5F*POp7UN!hsrk~FuIl)!dPR`SQEr=({g zZxDPXKb!Vfx}YAE0__G$^5zIG^<``bOevSLauH2ghL06B=tW zIHoD`QlKbGo9J^Tqdz``oLt#y9l(?Uv0gyWJPL)gu>NYw4CsWLmGb{6+&CIxLT6?#7>!42#1l{c5 zcJIDrMW4}ehMwZiQ}@e$XQ<+LE%wLl-$$7<@c9+e-L_n$?G}426got zm{Cfj`N~I0ZERKOj2>IdZ9pE8XW9bV5bi)#_57KZs zU!j}cUWa;HaGl1`tAO(BQu($YASDbb5NfKj%ofd%;L#q*_DvXjBq*+!$m z)MhOM)rP8pVvY?fa58AWLShhG;}kCbX2X1{8gw0C57s6a9^kDP$7@+ZRfBj^%ZjTS zv`(dAGP_$fTx-Hz09)hI*aoF`W~t8M+DZsZSNX0l?qcP;9k^3cD`JZ7D9d``PD$O2 zJ0(YX%q~VbH3oO>=}xy4cVvi&uijn4L%Y14W!~wP}8Dx_!D**Y$mKB5eS7bhJ25lcq93fP* zC{<(y5S)adF?s84#cZ96BB`kmFAdsOzG5Ip2eN)pl)!8UX1OxEJ}!bCORi}UjdrX6 zn+qTsv?!GWR1m ze{dohrgL#sJ4|5>y{IRDDTyPXqQO=xnHadbHQ+kP zrC_LQpMoy2hCBse&?c%5A76uRoV$__?!ona;HZU4Q<>UQ9>~XhJ;HT8a7T5a z9if#6j_MF=BhAv_d)JXtY> z8J-$V69`3?Szj-%^JK~X2Hm$1Dsjq0H*l%ViXrS(Tj@ng6G)tc-w5n6aLwgXD9p9% zC_M$5PI_G$IO=`S^w;Z_fur7_mE&~^T$IdF(5qmHdtV-xtS<8jGUyuCQ|v%@L_z&I zr}U3P&dI?Q@77~J!3JFd#wZOMc;l|ut_A1MQmcpSF5`|I(#SJRwff8_#307hXUQN7 z>$8FogZ4~)jV78#n9j9<(om%+u(}v<6gA9}ZhGAeaM-7z38;@c`6^+?_=VeT!I7g% z&l?4fLV{9!_1gX53~WtExUMw3r$&U`SS}iYL*t^>9NbZETULlkaFZV^2s7v&KuGO~ zHugsE!umulE>GCH!JI2Cr)>pC*%i$P;3yx)DhvxiFQYz_79b%J@KMZm1Vc0W3M(pqmRJl~sxYAYKSy#Sq#BB6hNnnm7g=RgUQ#OVh+a zR?yg>I}9P!gLe1Oi)DkDPlQ2i5yX-s3_6Cr3XKe`vTl0uK@cm3&=Yo0+{-ZZL0t+s zQjr%~-7;_;WRAk}D>$WtJ!~H)gfO2b23_wEjRs8x8w%sX%7P)AG4g!%x}U(o80sS! zv2|dn!ckGN;K&h}?yc7rfNM%aUv~$0N)p)!$PZ0DeNHJvb^1rlPNW0QQ|0%1qy8xk%?hs$GW2zCn;Pq+r7FMw+YPHA>;*gP}a$2;Gl)=*JzT{DyaJsceHRREjJi~R>G1{n8 zDXWeN9JMK5Vq39-wg%l<2)n2yXzRD8sR*WP^KjQmcESlBC~hJ&+786AyKr+n?pn!r zCvXSryfA?oOX|je!{!5ln1;KyiXm7Pt{7QzdxNeHBrz|n8}cWv2prFVSk-tRy-uzw z7k6>;T@mg&u{D0-I!|<`mtH1;BQFJp&aKM_2kVq*>TZL>c%oiiKdfwfC3cuX^1rorGH0S?`hB8#5zIXESVG?eY}mYe%kORwz*4zoLY z&ko$taFrWN_Z%E~DEAGm5xuylT2uUIvyOwMv2?kFF2Zd z#19mIl(f)4amnD|F2$#%Ui&$?7&#&iAF88>OzZ)UM;F`%aA9&?m=(0Q!O3rdbj`Y{ zS~RiG>c*108+2{EmmDq2y0c;kpF>CkN+-|u5j|dn!&9%D08R-<0Q%A~aKUn2w7Qh) z$$WYmbm2V}6%Bic$&Ee|AlH?(W=Bs}+|wXd=*4_`8N_bASTabh-mIXPK|8cJjU(FT zZN^;~b!6>5+y#=$qPvL|^fu@|G%1BE^Xq&Q^D!B8cOaxS0263iz0R$Vy4+v^6x;M+ z#U_Jx1%!R%xusmZMw2Wn2Sn(_De`bOxAFD zIXHS-hwf+6>vGLX11a2LaF~90ntg&sgZOZ6FgQM)Vt8x^M}fnF8m`y<2Ck8!iP{7D zDfKB+em`&_NGnhK1?_Thf$}PN9(UBt^4hPfmZ+4VG-*Eohbf;7uB#V= zQdvQ=K^&dRib3|LGN1kiUG20NR-xz*(^x@&gE%*h6@y$!V?HScv35F3PHAMRqLDuq z!>dAVKwSVW;0Dk|Q~>ZcK)zl_Dcv0)>H*M2l=xbldV-b$yf|N%zK0+MZ-6eM#Mk50 z2b3qNGUFFJF-gp+2Xfgr=M)N*1G^%GcW{86M5`h!WqD^RJ^+Pit4M z(7FV5!hJ8G3`B*q&JCb zq6#MSgtt*DAdl-2rF>I4Wt>g}rK=<*z3H-4p~TMsXh6(SJ)Q%G66OL_(R|J?0Hup4 z$@2lyTLjScHd+?x1+tbxDc>r9=xQ#v&HwE{I#DX%JI)iOK6Hcg zM5(-+0O{QV=z0US$O)wQqpbF4O7dbZ|0|UAZ*zU3WXN646Q%TfoZgoyn~_=3LgI%2 zb-|xyu}1R?DEajV=l=yt*V`zS^HkPSD3vGI$tk4^^uj5bS4u!1B$*9QAWFAdPD^t+ zQ7VweFNw-=IZ?VT&-s#+DzN406?r;Qx~;^ionQfn%MJn>6plQh3Tfeb8zqCBxn4=C zgWQA5iIO3noF_`RwK-o~jz1TWq8C@F3u+HO43r9t0;LL@gVIHm3~t5w*HJ334bS&J zD5j z%KMhnDM>mvk9h5TM;QTF4Z-Y{W_c{Fu6n~nZ@j?-K0$LHY3^Eg60hESsWzY(s zZlILE7AXESwdsXZx&N0GP{DPeK-7!Vx}17*S`U;e@&l!U13{^?Hsk5dLFsxOrE**F zbWmmdl@Q1kNArSOaz&z*k?{jis;~!_m!wp1PcA1)dVN4i9?xlCo=%h^-cLmRH|s_QAg^3f5-lp3Z!x<2$29?k@BlT zN#2z6L@D$wh^PK9-@Jj6<d)mu~dyX|*FY9)jRlu|ymdsgWg%%|O_ zdf9kZ>Dt*Lrq<{~gI7g$wi>fMVsPZJRtcz{R@L;c5 zqbC(*dK6c9v~>DrpL;_~dyl-ikj?wp*%DE`+Sv54ly%m?e`Swtf1_--29Ls}iDzaU zi8=Da>0NV1U(a3gd9ZMG(SpgJR>(eA$@H*dh3EFm4nJ?W;!@x(Y5Z}RBWM)s=xvR9 z*_?lG@B-sA=V>YBPi*mDKhJk@#o511IB|PPa!~8S;`)8(G?>2ng9FUn#qNS@M0@+= zjaRfSJAQ-DqQQM9B~1E$qB+Nxy+6v?a=Y-6bh&!&^nZ=)dtv!!r3{7JKJlGfFGm;etxf^8yivBwEvV-&uVICT02B|ojM6~RO{$Hta{nB>azGo z==0g9ykkl)-MoM00Q)hgp13;QKXm-Yv0(d=Jx1GYDQ~+_$g>0&9c|Ym-t?7YM$_;+ zt)>lcKPXLbcz@#x`nXRmxSU!lsLlK{OZ8U=&fe#L?8~EN-An05WPE+1^opKkR#oV6 zcCK|ni*}tRUOyc(cJ=T|Yis7}4{!f@&Bdm9`?{n!)DCTWZB**c66NA!)|eMX+vt2( zy;orO^oqOio5S$6vuEb-NZUKy?i+WPNm@;p8lQXrdMK`N=MSAbR7z-ceD;LGkk%76 z|1{vp-W{vF*Ze&9>4TDeyaLM~8T*0li?U&M)t_%K+pZT_Yg5APitNeA zSfLW@_;D=${cj~+?U^ttR;bKAz^el*92LvF$Jw$fqm4opW*QwUII(Sbt;+1j#0t(V z39l|}H(skTmrr8xpKqCXb!7+eT7!9vjTPKjE?#T0qOq~8)u*;BWSmj(U?axGvd7?V zfb(Pl<73&1Nw#eIc%x8=aw}3%GhLYGN$g3U28{qfnnc z1ecg+%esDQ6nt6!r?Jd=sx8w_G71e@$4RklKe$cc0+=v4mJMRI%skmB1hGPJ-qYaK z6eIq>#xy0CoddTIoSxa|#j>%}ZP|c4qwpTv4K8ekEvqxtD1@`jsj=)9xYOVwm03iOO`hS z{>_1Z;99dN3I2gwDj5YMdk8LZF8rHm6y9g~GvVJn_&3Wav}YY>!9Q@Dz;$H8Z1^`H z{>?TDomn9`?*;I0j#22!OmpBLxP9Panf+Y&w-El#H3}cF-QdFV;om%?(2ZrzgMZ*o zgX_UO=EJ{5@Nd3R=*5b_wOS1S78nH+8?gZXfx7`No&_v~e@o!sLZe`2SHZpRIOTud|+r1pVt%h$ajKUC> zxdOg{I}L6a^H>Sr*1)%wM!~|0z_nTn-wKSv2sWYszJa>|?qe3P3cjs_Z>x;LXm%A` z+avQLih%59E(~5-@q+hV-zN^hu{)FL))!23ZJt4weW5Oyjy1!CbN#~ z;2pS4;PRNT9^P$)ck7J;V};wi{g7 z7WlWpD9mA*8{i+f)8OVYkB#teEBxDN6c(@|aILn%zfDFVpN-fA|G?b#wZE`8+j&%JqCLNY$<^So{eEEF2cjJMo}xUYhdFp!Nqe%v5df`o{M2+zlD!r zbpmU8K89@tyY#$KEHAJ}U=uIH%L_)qmgQf7m*2t5i$+@WF2YN2o50yK;S#*O0xvHa zY25?oeHC7QE3bRs!b@=bz*S}Tm*M3#czM}KYah6<>+teBBdvbl!Ao$b!PQ_MSK#IM z71@|8ZD<7q*XjnmyehANSJ8^#Zh-S-0oTxqKfuRp@(Ktp?j~HkF0X*s(Tca=A-H-h z>U*>zxTW9ADUID?idI10K z$SdF-_y_I=xMnQiF8q54|L)2wAh@_k@b8|y0^WmvKfyn6ty$E4_y=z3eR%~0m-sXM zdmyiX58&S~@b96#0zQO);5LEl$b?7m?^pQuNL~TKdH)9gev((fpWq+3ec)o5{m=04 zG5q^kUIBlO6+UDxzr@n|hu7}x0A71Ak6&Yjo-7xyy;u=md$W4K#nQ@$*FNk#UgKH7 z<5;0D8;4gjyZX4Z<@xXu+cbVl&+6d6bmZ&&s!{U(^RLM0190^r``vi2gB_ri3VDmn zqWO!8??^A@|FrO}6_dy6Q~&WPNq+b>0r`5pjIDiA&9V>gvG9$dmGsmf22f>GociMc zT}rJM-=>74v#6 z{}xsXzxv}Jw(c+c!n={7{oj2hZ>a- zL=*G7t>i6rSl+33Z>gBq3;+LHp?<9~%FmbmW8n{h|L?AIz1HJD_cx0F-`}hMLdCpZ zc{}vag&*7De>D8`KZyTi_{*XGe{S-@93cOE**`c3SpM1Yqy67m_-PSSf8a>ytnBaP zHJJavmHfVs+MmMz>U*;Pmdx@`Rm|(PX#Trze_xF>-wyv{QLvQk4F5o1u>7;($4~eD z-94R#nEFF!QCM8m_xrDxS(INy`@a?6ksi&zZ@2IrRm|(9{l|Y0u0I>|x*3kjdv(@( zi_9Yb=ASw}zD4mJ>A`>XTay34>c7nxdIsmk&(s}Gez_UNyE1xy$@(@KgwXRzKPRp;If{Ok&X?piOYI( z8U5p)k;|xl{K?NMwNqsH)Q=14f9QI0#lBodpNFdtJDItR{+n$u)rKp9%P>)B=m_m-I*!H&85y4>%Ua3ZTw{WO3`pjR_$XTQ6F^sgE~|uldUlKoPT?{Q zS&D08lC-&pP)n*Ehen~N-sr(J2fz`ar=#e9Lkoe=0D3HI5wI9o0xSiV0rdFR9AKU( zU5gVsMIAxjqrfrXI8X$f08Rp@fYZPk;4E+sI1gL^E&`W;Z>3FfLS1cB+%}g!{XnQH zw3DK`2@aO7ki-G_Ee=gLpgVwHhLFSG5|kdxss>aCT!9*Z4^SUy05k;rfdC*72m*ou zY@6wq8t8Wr<*#Yq1EnXdynx!kN;p?QkN2&@4Lzi`5EzSu8i=AhKu^}r1wRk4$9-kM z0iZ{CD**J!ZyBI0AU_TaDgsZT{|tBl+y?Fd#lSS+N8kqV18@ttLQno*#m)D?Wq>*u zJ;Ij@P{$eqn1NJ)I#32c&l_CRN#3(ysa0b&7q=rKsj{}4fLgxkhI1kePi z2RrKn0YDHC3M@kPi-D!U3ScEL1DFL&0VV*Wff2wkfW8uk^_t#5A0Qs+3z&hLfEy4E zw4krkB5`8?ngDeHdb-a8mDU0lf}ao2qs2cMk z0R1O24PyZifl`1Cpan_;my!M*U;vr`kw6}@tO6zh^ot9FfL!X|2|yy?4tPQ_AC#W* z{sZ(LFc6@JFDC$#0eV1_9(9fd=+S1H|7gDJ4VVC$s?5^2-G!=_Ox$Jx*}xzm7Z?l- z0fqv@fZ+f=%54Qk01POHDzJ8KeY60pf!IWl^=Qf(-Xs)9<&l#u+H~~}%6dM0o*q0Gb33wj}0$Kqr zfyO{M5DL(w8w}87+XyH*`9_1sTtL5&q=^J*I*0(808yx)e&j~e6j0}hwzzKtv<8g) zz5{4`pdHW==mK;G$S^XPMp`UD5hMOXfM`#ERu(dz_#Qw!&1y0I2^{SaJaB zdZ|DPK+z$2CXfzf0Hl)zWCKG1Dv3QPnh0Hc7BzzE=DU@R~m7zca;kp5_Z;Sd_+ku_H=Kw{;vIj4_fiHnwz&?P&83|B`>3#)3A!EP+fTBdk?FSA4 z2Z6%?8D-_5MXfgA3D9Cky9zSW9+dLZ?|NVvz&{+|hE_h>UZ|^I5ijH%=y$+1;1qBg zxC&eb&I2a^(xJ4Iz*(Rpa0Vb<;wkMCa1pq`d6IoA^N2q&YDH8iDU;$AfYPWys)+VG zwC}lzd(x+UkPT1@AUzRO0H|QfLuIIjT*W<2vp;}52c7`WfZM2FUhAKNk_T6Se*xs- z@4#c=H{e&`7vN{$C*TqA0JsHQ2UMeO;GPWl9-s(Ng=Fk~&i@E{54a250W7!iQVftX zWg<`pqLhj5snCbOs}+%VBv*Ax@)Qv@O>IKbd*vRVu<-&Y1BFGcoG8i2us^t*G82D= z^Q5EdQDu~_@2dv|S}<$vG;!BaMGzsBKGTphRjfY9o@CKs&$=XavxH zxMV)H!jiI*_cSVKKTSAiV#gAUOKp@Zspe_4{fH%oO;{Y$*_XJ3n~OccTd7xlC*^{fI>=o#o25a#DE9ZM2Y<)c2-QwQjsi*n5XDUW!m z=Mo@OuwOucpT8y_DNaaHk3c|5h+iNQH0m*7>LCe83GxdJ^b3~T*B*J)(+@;pc!*!9 zzh8*PY~g2#sn*#E6k0ndtA~J1xq0rg%apIC*$IY-fKb0Mzrf)zK?jW?&f&i&ebOc2 zWeRnqKUW0fP*Je_lTEhBqaMT{JLK=DM{iz$Oy!WIp4A|G6dL3g@Zw-I^;ic{2=EK= zqxMt(16w`#K`xHMqfrk*Q;vX`>Lv<4(5Fj1{!BglK~8a#lhhN@4E#8V7n!7v$wGCh zQ?gLGTrV5>U5Is^jr1T{a29viNMnCBnZ8KR(vgd)i`Ld%qv z-vd|&uJsu3;b#A%q7dR2EW4wgKel$oPoH#}U3dVF2Kga!*m{+g4E=>b$BoEa0c8bE zjUT*w-ojy`u)MT1s=wgwx(g{3K5^NDg9(XS>r<%+6Z|?@TH4iLa1Nzo)u_wNk85;B z+#By^^P+V1;I$C}r*jW;jw>hW)F&#%mF*-0!>Z*CcB3N*y2Wu$@>A;GnvjQp0&+HHN=ICIjd6g#0O zwKSUZyK+*4RFtKj1Q*uk;Jv^()dukfM_<@dUh17H_=tPTOA}KCcQLktw3c$HXTsG# zy*R6=|7YEi10_ud1mHc^+Ha~v-GKHHjZA=%ciP!C<<5ZA(cv|(9mhaZy+=PuArUQR! zWc9eU_D}Y1+G*2g_RExt_L5r$Y<9Jm!ZL)muIfo}bE<49t~PpSe`xyqVS>PB*5q6iL*-ij*-NR*tD6P09kDRz+Ho1sl|J z>8?IIverA;b|z||)`Q39s*+tcVnT<=xWLNXhnvn_Y_e0aGKj2H&$jE`I=+0Zaa}JU zFJ==8yOP(*CRkJ3WyWGu7w96nNuZ5gq}AD|Rz1~jQP7!o3zk07^J)jtW9kNoPn?J&Lbu?>o=# zLL)iUkqm?0Is#ssmsSc*A1`Sl@+PaN6jc^lU;24Vzs0hTLF8k;m(uhJ=bL=i)i>;h zDC9w6ht8m$uw)&~dH`a0GseF7;o#iC_@^^z*)3eK(6 z4>6oTqX zX}Ln6VL)AFDO8VG%ih^_)mpLAL*&JrPo41xXix{fI`(2tVY`E6<&;pW?|EJ6GAs&J zk9Tv@eo&)bjgPS`g!zTY9a%jHE}~sVZjI4<8Y3?T2j#FB2U9D{}EL7?I>UoD<&tI)yxu$Wj?4%sJ<@KZ#+rm22IOswxykj-8p`Yy=&BxgxVv)rFTL7MJ)~Gli;Y)9=?j|Q0vbx^hNBtOqYfJ` zH|+XhbRVqa)NmA!E&fuZ1=B@|nG!)%XG&)=FF@*PMM--Cr9mWb93-tK9?kZ(Rq&~O z1m0FdcZ$alqTQKkkH@~2GhHYa!59Ll0Xh9fC?$X?3+km%tVfwO{52uGqj0RZZr&R*F-Xmh825Y5pA^kM@$== zdGgXXs4GMXta?&jmy3hF>$`>}h=Qq!G9Q%~2{>0zepKbR6@A){I$zT&I}t!VaAFf_ z7bgvslgW>K`(ppm9 z6eanO#m4E%C)m~OiIOrVytGD541IGk>amfhU3XpTyz#3gyaJ5T8qK8PC|C?=He(zJ z98H_AP;yxMek|&HnRa+O(q0Kt=$l=AbG1s5uF7$hIM>eci+Kyq7SWPH;{bNSkmKXf zdDLi~Zy~vjM<-HGX?$Qk)WOH=3GLUYDJz4zGx$D*1uj3jR3hFVTj!_{^2kbdUTLnH<4QeT^MqXF> zgi*ASwsOwag>$0S9so=8TS`};A+B#J&7T6zxAuq*Q-naN_at=h3aw_$KrUr$%k$>A zXleZv2|*m%TADu(RjS9K7Ms>;BXX9V=9=hYcUntr zCqqL$K($oYkH-Hn!w@tjyHLyIDFp(S0i8>?|*7Xhc z!U`yooR8Y7c=^sM}}JPs}v<;hEm6$yk@MO_OjEwm`c@ruX?A>yh>-Q zqNSnMQ5p`1-qZtVl2iJs;(4Ijb@}92(z(|zU+T2;=1GMc>q@8SR>B}loxRf|&-BF} z^g-Ivpa;G7ji0lt`hdH5Hq$Ca1>#c_bZdE^I<2ylBB9H@DGsm31)|=2b?@H7ohNJw%#FT!&xyp9QZ%NfzU1*^AO{<=3(dPYmapPl>nZ47$nJ@Vb%YZV9fXM`d5=8a-m*t#e{c9&==U6f3!6QWkY_ zQs_LiVo|h|OjMn$)dQAKF3a!IAxOg8L%FrkG?)`l%)=ggV4UQR?U1WAPT9IX>oGa@ z_KE1Tymn}+t|Msj#_5&mhqFAC(!Kd5W~x^@zN>mZbZj@lb;so`A9Hi${h_k`R4aQW zXXu-Asz)+AJ*(B?%XKFwp-jDBAU-$N{LxLSxDdg4b=R)#E_GjsAUSlGrXbx_Jp}s4 z(noJsbr?$T`>9J~nGfzReFe?Xf8V`hu8==xP!E=#P`{|!l92X+q7XrO(KLT`U*9`l zX#Qe%KB>F3HXp6>q^I<+{1T?G?j`vzf~jww0r*=IY3L$+?)Zk!IIulA&`UbJ2)@g6 zoczv8eJ7>9#ZXVEZtS%pz^>_({FiOSrxI!QVl;7aFKP2)ysvoNOa3nvYro!7@nTq> z-CGJLE!W4lD%Mi-NcFLRJfF?`o4E@-?8Z@X)(cwqMOOen}Y;u&+mI+~@>N($~ zZ#;77TFP;t-HY!G)DyYgf}%~g22Zc`GG2GfNtc!(6!-c{cFR#-MYD7T)YZ!@e|uzI zS>xONr$1|f{Skd`{{Q~1 zgb%)^qj#42{!$w9x~fNo4-53GxyPXt1&}`Pz*c~N&@Fn_kan&T0z3SBSx)$-kIM1{ zbp*W~ZZaJRY^ReOA=ob@C`3J9e2eqGOUI8tqjwDQJE9=`f3{>;4PSUIj<5P)C#*}6 z=C8(k=u&CYuGNT_W14h*iQPl=g87BqmeS!2>zBQ*jv!I zF{8pl4hw@SKFcvBrF@i>*0*K16JGb~7uJnJ`_e}R(zBqZDeH}uJ0dfEo!92^ffVii z#a&)a&mIt;Wy&^dHt)+QKj-}_SwZ%S{>83Cmc*`dcQJsc`bJdkTJgDKaP`Y=AfP_9 z@4a4~n+$ApHgTt7?2-CXqqV|@dWq@j{e2VCvr^@6@qClw)6=q*+w7#&j1+TfU$d{d zZ&FUWw0pbYS`l9zHuPMPtczpO;^(?5pKEYT17Sb=L-{43((mlIje0pDV zYEo8KdX^!=UHIM!ds)uQJKyXKb4rSD ze4;tNzd5T;L}%rzRl4 delta 32378 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 Y-_# { + return new PrismaClient() +} + +type PrismaClientSingleton = ReturnType + +const globalForPrisma = globalThis as unknown as { + prisma: PrismaClientSingleton | undefined +} + +const prisma = globalForPrisma.prisma ?? prismaClientSingleton() + +export default prisma + +if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma \ No newline at end of file diff --git a/Websites/jefes-nextjs/tailwind.config.ts b/Websites/jefes-nextjs/tailwind.config.ts index f126cc7..5780c04 100644 --- a/Websites/jefes-nextjs/tailwind.config.ts +++ b/Websites/jefes-nextjs/tailwind.config.ts @@ -17,7 +17,7 @@ const config: Config = { }, plugins: [require("daisyui")], daisyui:{ - themes:["winter"], + themes:["night"], }, } export default config