From 2446226646f843dee8d1d06981ea868e0671ed2b Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Wed, 17 Jul 2024 20:11:31 +0200 Subject: [PATCH 1/3] port react-typescript-template into the project --- .dockerignore | 15 + .env | 3 + .env.production | 3 + .github/workflows/build-and-test.yml | 3 + Dockerfile | 8 +- bun.lockb | Bin 230722 -> 426617 bytes codegen.ts | 17 + package.json | 41 +- public/silent-check-sso.html | 9 + src/App.test.tsx | 10 - src/App.tsx | 222 ++++++--- src/components/app/loading-screen.tsx | 14 + src/components/app/menu-item.ts | 5 + src/components/app/nav-item.tsx | 21 + src/components/app/side-menu.tsx | 56 +++ src/components/app/user-dropdown-menu.tsx | 112 +++++ src/components/custom/coockie-consent.tsx | 99 ++++ src/components/custom/data-table.tsx | 183 +++++++ src/components/custom/multiple-selector.tsx | 509 ++++++++++++++++++++ src/components/custom/spinner.tsx | 43 ++ src/components/ui/badge.tsx | 36 ++ src/components/ui/card.tsx | 79 +++ src/components/ui/command.tsx | 153 ++++++ src/components/ui/dialog.tsx | 120 +++++ src/components/ui/form.tsx | 129 +++++ src/components/ui/input.tsx | 25 + src/components/ui/label.tsx | 24 + src/components/ui/navigation-menu.tsx | 128 +++++ src/components/ui/select.tsx | 158 ++++++ src/components/ui/sheet.tsx | 138 ++++++ src/components/ui/table.tsx | 117 +++++ src/graphql/generated.ts | 190 ++++++++ src/graphql/schema.graphql | 55 +++ src/lib/keycloak.ts | 11 + src/locales/i18n.ts | 46 ++ src/locales/lang/en_US.json | 85 ++++ src/locales/lang/pl_PL.json | 85 ++++ src/main.tsx | 83 +++- src/pages/counter/Counter.module.css | 81 ++++ src/pages/counter/Counter.tsx | 61 +++ src/pages/counter/api/counterAPI.ts | 4 + src/pages/counter/counterSlice.spec.ts | 29 ++ src/pages/counter/counterSlice.ts | 81 ++++ src/pages/error/errors.tsx | 22 + src/pages/home/home.tsx | 19 + src/pages/users/Users.test.tsx | 99 ++++ src/pages/users/Users.tsx | 85 ++++ src/pages/users/api/usersApi.ts | 118 +++++ src/pages/users/api/usersApi.types.ts | 48 ++ src/pages/users/components/user-dialog.tsx | 187 +++++++ src/pages/users/graphql/permissions.graphql | 6 + src/pages/users/hooks/useColumns.tsx | 107 ++++ src/pages/users/hooks/useRolesGraphql.tsx | 45 ++ src/setupTests.ts | 16 + src/store/hooks.ts | 6 + src/store/store.ts | 47 ++ vite.config.ts | 1 + 57 files changed, 4015 insertions(+), 82 deletions(-) create mode 100644 .dockerignore create mode 100644 .env create mode 100644 .env.production create mode 100644 codegen.ts create mode 100644 public/silent-check-sso.html create mode 100644 src/components/app/loading-screen.tsx create mode 100644 src/components/app/menu-item.ts create mode 100644 src/components/app/nav-item.tsx create mode 100644 src/components/app/side-menu.tsx create mode 100644 src/components/app/user-dropdown-menu.tsx create mode 100644 src/components/custom/coockie-consent.tsx create mode 100644 src/components/custom/data-table.tsx create mode 100644 src/components/custom/multiple-selector.tsx create mode 100644 src/components/custom/spinner.tsx create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/card.tsx create mode 100644 src/components/ui/command.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/form.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/navigation-menu.tsx create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/sheet.tsx create mode 100644 src/components/ui/table.tsx create mode 100644 src/graphql/generated.ts create mode 100644 src/graphql/schema.graphql create mode 100644 src/lib/keycloak.ts create mode 100644 src/locales/i18n.ts create mode 100644 src/locales/lang/en_US.json create mode 100644 src/locales/lang/pl_PL.json create mode 100644 src/pages/counter/Counter.module.css create mode 100644 src/pages/counter/Counter.tsx create mode 100644 src/pages/counter/api/counterAPI.ts create mode 100644 src/pages/counter/counterSlice.spec.ts create mode 100644 src/pages/counter/counterSlice.ts create mode 100644 src/pages/error/errors.tsx create mode 100644 src/pages/home/home.tsx create mode 100644 src/pages/users/Users.test.tsx create mode 100644 src/pages/users/Users.tsx create mode 100644 src/pages/users/api/usersApi.ts create mode 100644 src/pages/users/api/usersApi.types.ts create mode 100644 src/pages/users/components/user-dialog.tsx create mode 100644 src/pages/users/graphql/permissions.graphql create mode 100644 src/pages/users/hooks/useColumns.tsx create mode 100644 src/pages/users/hooks/useRolesGraphql.tsx create mode 100644 src/setupTests.ts create mode 100644 src/store/hooks.ts create mode 100644 src/store/store.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7cac7d6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +node_modules +Dockerfile* +docker-compose* +.dockerignore +.git +.gitignore +README.md +LICENSE +.vscode +helm-charts +.env +.editorconfig +.idea +coverage* +.DS_Store \ No newline at end of file diff --git a/.env b/.env new file mode 100644 index 0000000..7eb061b --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +VITE_APP_DOMAIN=http://localhost:3000 +VITE_APP_KEYCLOAK_URL=http://localhost:8090 +VITE_APP_BACKEND_URL=http://localhost:8080 \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..4ae8cbd --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ +VITE_APP_DOMAIN=https://app.softeno.com +VITE_APP_KEYCLOAK_URL=https://auth.softeno.com +VITE_APP_BACKEND_URL=https://api.softeno.com/spring-reactive-template \ No newline at end of file diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 9538d6c..9f64caf 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -25,6 +25,9 @@ jobs: - name: Install dependencies run: npm install + - name: Codegen + run: npm run generate:graphql + - name: Run the tests run: npm test diff --git a/Dockerfile b/Dockerfile index c1e18b0..59e58de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,13 +14,13 @@ RUN npm install # Copy app source code to the working directory COPY . . -## Generate types -#RUN npm run generate:graphql +# Generate types +RUN npm run generate:graphql RUN node node_modules/esbuild/install.js -# Build the app -RUN npm run build +# Build the prod app +RUN NODE_ENV=production npm run build # Use NGINX as the production server FROM nginx:stable-alpine-slim diff --git a/bun.lockb b/bun.lockb index b8c22ce08b9d819193dd48ab26148dbfb9a19672..3dfe285677a094b49025f5e768bb94bb203ab9e6 100755 GIT binary patch literal 426617 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
`k3c_t>?R_36u!c-SHWJ4BoDDz&t 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�hCBW0E}BC9$t9vi-ihZ;0K)x0sDO z=Dh%`hha=g_2iXD?VdaXYX}a&(pNfMbcr1?-pVDUCJal;g{>a{5U|U=a@()P3fr#&tP@Wttp4pM zUHMv)U-1ctRsQINQEc}qncPL}MH51T0{Y8JyTF>*3g8dR>=8dh!(_*Ui8YTG4jrJjL3tS$1 zA*=$EH`)H$e}_(SxgL1T9thsQS#LwVo9%|CrzWJcb-P|7Uj_2fKZ~0@P6wElSyi}D zf%8aEh-ScQNa_~5=iKQgOyRVoLNwBKw>opz;a6d;mEc<`>x~BcY0~6zNr@9&F3)y* zXx`pt=S#rW;=KfCYD!%tL1X+etb+d7VcXxqvRCf38}@e_Z19d4Y`~x2%Y8;UYIxA^ zoMWHfLHw2Q#vc0?d>Gc)1oqlvx)WQGXtK|qG^c2wTAr9v%R1I|A|je(efHZ!7>rCX z0+-R{{|>CV^$MH^9+otIVnQmn$o<4$J={TpBJuMRc16(?tnH>8tT~XDG>mhO%hl&e zyFr^^71SQq>`om!%o^liMb{77>A{G7fvurE*gYY>% zlM~^!^zC3yBR~i#_tk#dsqt?7ICr~IdF7DOR zSMM5I+-!N)>wf8ziNnujS53Y?KBJ9mTetCvtqcDAP)4uexfc&E{K(n@sc+3`|J0*j z%_}p&J-BM|gjp|i*pfE5#G_S~J$bfW^FD#d>XCtXFsFKj1B+^$^91(Rjw^I(kN@bf zo{cN~n!nP);?34yJ#eFTWJvfMpUte(vBZFLtzSq?JYDU_w7`eSNAt&j@JgUUz4)*d z7nVHP?ZGeW9GF~hxhL%R)E91c>OXn#fkF)ryTj%@_4wQ2lis>J@JUp7AUyhHSWNp@ zzN@#Y^yI)N(Q^uwxK*k3GkeY~$hZB?Hye3ZCkK*a;sbS>$9dX&0!N$sJqJC3Y-meJ zpiv9IC$Be<(ZcWR>vg#r5dV;XJ2BcfAFDH#H!!nBwC4kFpixV|r+jE214;-D9EEm- z2C|`#Lj#Rk`8}m_1u|OseeH6&T+PWB8kpHK+BXlY6;`gmb6BrqwZqH{8w~qF#${)z+;P+h5A2`~<@2k$*Q{%~gF2-FT(5R!|bEH5Z1G-Wm za1^RkFp%BRADYg+yIEj*%UI9z1p^tK{GPBvfum5{LV;{(exX34&VJ7c%ktf1#i>zN zjiKFH=j{Vc+QxcT7Y;P);`jVkIFJENDiSyfoh%Z_hHe!JH0tX2b>bGK1~GD-qkRS| z3M<6S%gB9Dm@vn%>wghTHHKO- zC=y|J&1FsN-dL)K7<7pCEQts-iue28MvOzGzwyz&I%RJ+g?h#~R_*}vGW0A~y`?wZ zjl;@uK^Bj-P?ZXS zM*aPv4_C0JQma_sS*}#9TkY~xtr*De@Avho$oqC%>=Nyp?O1FYAI7*V296H!`+h-- z#iK~zxpvXMwv}A2`nRnNEXBqhcy2(n?+ljR8ZD*#l>;pjG1FuGc}yKY|WD{ zSQ=Y*U}gu_8di6^Fh=?}EOnnPvRkyTVNKg&RbGm5*9>G&^M{^5^9QDPi}i%u9mts3 zH0*9WHdb$Z$FPQ2Wk2^yjJFo84m26wIE;&qma2Jr7)v$UIr1=at!`VLu{z(jR%5ld ztrpRtU&_*6Q#YMUCCjf$T+1!&nx5N%RKXgQI=RvHIV( ze#Gi=+iG*K%QY})g>J%12{c*KIE=wd2+F?ESht;guV9V1omQ9iz}pX}s%2P%Z(G;@ z#p=nXl2gh)tQ^lmP3~-P3Ra)nr96v8L0VXyqCL6%ful?Op}CteJb~j&Vncgz)iH2$ zNn>}jK%=Ei`I*7b=7FP2n|hmTq~-JmS8>)=$riz@!MCrr+`jt$_EmJtpkJnSHGO4c z?`^3dGp&tX`|Yb$x34bVzN*H_qLt-0>h{$h>+0sR#@^dfG^@~do5~fdg1LEwD`tph zH|y{l$Ks~nFWOg@$;Sf8@|fl!?ihF5z|mEH-(*B*$*~(ggQY2NpHY0wT@_~Sl%a80 zEdn<`ZycrzOV-KYH7sIjXYu4~7sy!S_jPV(-$LzjW;vF<{~pC+6rDPL{uiqrl{?du z)=a~SvOKko?Z;vgGIe!+`Wnk`rD+$B>=4|OIGlx!!RoAgzwZQB>K&_VKuj1$PH_#{ z5>%XZTJwzV7|34Fog7gv^q6h*0+#w8W*u|-b+VVX-HWYQ3PPxLzxf(VK?pVOy4(F@fXlVtuc1#e8#mU8J{dS#!rT zw09t5tlxJO(GG=XXEqk2=ro`eOIK+eOL|B9RydY*NbtPhCy>40@4F{HxY;X`W3k-ti}rnnrP&c;-AF33sc9VT!1ln33Fh-W+&6Ia3BT_YqV`Ywn0C`~ zA;|rsJq`N>G7kEEBm24Zo}43D^A?OTmKvX1+l#Mi|J#QjX5&ySRt0IAsoSv_0w*rN zV`<2(x#8(DAkgTL-}A_TK*k}z?}Y(&%$SmUqJ1R?25(L3ZGSAa+NEw z-iJbNDI;ifGw`;^}TOHpv?SnJ6e6v#N@_k1%baP){jbnXy-{}njiGB)%#u6pUp z*Ok57ZmG^9$FVfi7(ou5d4~qFkFs41b-B7B67;xe r-`=yY?z|p7tzMhG85E!$R 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 + + + + + + diff --git a/src/App.test.tsx b/src/App.test.tsx index 019bc76..7de5e8c 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -1,16 +1,6 @@ -import '@testing-library/jest-dom' -import { render, screen, waitFor } from '@testing-library/react' import { expect } from 'vitest' -import App from '@/App.tsx' describe('Page', () => { - it('renders', async () => { - render() - - await waitFor(() => { - expect(screen.getByText(/test-softeno/i)).toBeInTheDocument() - }) - }) it('some logic', () => { expect(1).toEqual(1) }) diff --git a/src/App.tsx b/src/App.tsx index 9a2cf53..86e492e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,66 +1,180 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import '@/App.css' -import { Button } from '@/components/ui/button.tsx' -import { ModeToggle } from '@/components/custom/mode-toggle.tsx' +import React, { createContext } from 'react' +import { Counter } from '@/pages/counter/Counter' +import { useKeycloak } from '@react-keycloak/web' +import { Navigate, Route, Routes, useNavigate } from 'react-router-dom' +import { useTranslation } from 'react-i18next' +import { MenuItem } from '@/components/app/menu-item' +import { Label } from '@radix-ui/react-menu' +import { NavigationMenu, NavigationMenuList } from '@/components/ui/navigation-menu' +import { NavMenuItem } from '@/components/app/nav-item' +import { MessageSquare, Search } from 'lucide-react' +import { ModeToggle } from '@/components/custom/mode-toggle' +import { Input } from '@/components/ui/input' +import { UserDropdownMenu } from '@/components/app/user-dropdown-menu' +import { Errors, Unauthorized } from '@/pages/error/errors.tsx' +import { Home } from '@/pages/home/home' +import { SideMenu } from '@/components/app/side-menu' +import { Users } from '@/pages/users/Users' +import { setLanguage } from '@/locales/i18n' +import CookieConsent from '@/components/custom/coockie-consent' +import { LoadingScreenMemo } from '@/components/app/loading-screen' -function App() { - const [count, setCount] = useState(0) +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +//@ts-expect-error +const ProtectedRoute = ({ predicate, redirectPath = '/', children }) => { + if (!predicate) { + return + } + return children +} + +export type GlobalSettings = { + data?: string +} + +const handleSearch = (e: React.FormEvent) => { + e.preventDefault() + console.log(`search: ${e.currentTarget.search.value}`) + e.currentTarget.reset() +} + +const handleCookieConsentAccept = () => { + console.log(`Cookie consent ACCEPTED`) +} + +const handleCookieConsentDecline = () => { + console.log(`Cookie consent DECLINED`) +} + +const defaultGlobalSettings: GlobalSettings = { data: 'some-global-data' } +export const GlobalSettingsContext = createContext(defaultGlobalSettings) + +const App: React.FC = () => { + const { initialized, keycloak } = useKeycloak() + const navigate = useNavigate() + const { t } = useTranslation(['main']) + + const menuItems: MenuItem[] = [ + { + key: `${t('menu.home', { ns: ['main'] })}`, + route: '/', + restricted: false, + }, + { + key: `${t('menu.counter', { ns: ['main'] })}`, + route: '/counter', + restricted: true, + }, + { + key: `${t('menu.users', { ns: ['main'] })}`, + route: '/users', + restricted: true, + }, + ] + + const handleUserDropdownSelect = (item: string) => { + console.log(`User dropdown change: ${item}`) + switch (item) { + case 'profile': + console.log('Profile') + break + case 'settings': + console.log('Settings') + break + case 'lang/english': + setLanguage('en') + break + case 'lang/polish': + setLanguage('pl') + break + default: + throw Errors('Unsupported action') + } + } + + if (!initialized) { + return + } return ( -

+ + + ) } diff --git a/src/components/app/loading-screen.tsx b/src/components/app/loading-screen.tsx new file mode 100644 index 0000000..2d28a28 --- /dev/null +++ b/src/components/app/loading-screen.tsx @@ -0,0 +1,14 @@ +import { Spinner } from '@/components/custom/spinner' +import React from 'react' + +export function LoadingScreen() { + return ( +
+
+ +
+
+ ) +} + +export const LoadingScreenMemo = React.memo(LoadingScreen) diff --git a/src/components/app/menu-item.ts b/src/components/app/menu-item.ts new file mode 100644 index 0000000..351b281 --- /dev/null +++ b/src/components/app/menu-item.ts @@ -0,0 +1,5 @@ +export type MenuItem = { + readonly key: string + readonly route: string + readonly restricted: boolean +} diff --git a/src/components/app/nav-item.tsx b/src/components/app/nav-item.tsx new file mode 100644 index 0000000..5c61992 --- /dev/null +++ b/src/components/app/nav-item.tsx @@ -0,0 +1,21 @@ +import { useNavigate } from 'react-router-dom' +import { useLocation } from 'react-router' +import { NavigationMenuItem, NavigationMenuLink, navigationMenuTriggerStyle } from '@/components/ui/navigation-menu' +import { MenuItem } from '@/components/app/menu-item' + +export function NavMenuItem({ item }: { item: MenuItem }) { + const navigate = useNavigate() + const location = useLocation() + + return ( + + navigate(item.route)} + > + {item.key} + + + ) +} diff --git a/src/components/app/side-menu.tsx b/src/components/app/side-menu.tsx new file mode 100644 index 0000000..86c70df --- /dev/null +++ b/src/components/app/side-menu.tsx @@ -0,0 +1,56 @@ +import { MenuItem } from '@/components/app/menu-item' +import { Sheet, SheetContent, SheetTrigger, SheetTitle, SheetDescription, SheetClose } from '@/components/ui/sheet' +import { Button } from '@/components/ui/button' +import { Label } from '@/components/ui/label' +import { Menu } from 'lucide-react' +import { useNavigate } from 'react-router-dom' +import { useLocation } from 'react-router' + +function SideMenuItem({ item }: { item: MenuItem }) { + const navigate = useNavigate() + const location = useLocation() + return ( + + + + ) +} + +export interface SideMenuItemProps { + items: MenuItem[] + authenticated: boolean +} + +export function SideMenu({ items, authenticated }: SideMenuItemProps) { + return ( + + + + + + + + + ) +} diff --git a/src/components/app/user-dropdown-menu.tsx b/src/components/app/user-dropdown-menu.tsx new file mode 100644 index 0000000..9b772c9 --- /dev/null +++ b/src/components/app/user-dropdown-menu.tsx @@ -0,0 +1,112 @@ +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuItem, + DropdownMenuPortal, + DropdownMenuSeparator, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' +import { Button } from '@/components/ui/button' +import { Languages, LogOut, Settings, User, UserCircle, UserPlus } from 'lucide-react' +import { useKeycloak } from '@react-keycloak/web' +import { useTranslation } from 'react-i18next' + +export interface UserDropdownMenuProps { + handleDropdownSelectFn: (action: string) => void +} + +export function UserDropdownMenu({ handleDropdownSelectFn }: UserDropdownMenuProps) { + const { keycloak } = useKeycloak() + const { t } = useTranslation(['main']) + + return ( + + + + + {keycloak.authenticated ? ( + <> + + {t('user_dropdown.my_account', { ns: ['main'] })} + + handleDropdownSelectFn('profile')}> + + {t('user_dropdown.profile', { ns: ['main'] })} + + handleDropdownSelectFn('settings')}> + + {t('user_dropdown.settings', { ns: ['main'] })} + + + + + + {t('user_dropdown.select_language', { ns: ['main'] })} + + + + handleDropdownSelectFn('lang/english')}> + {t('user_dropdown.en', { ns: ['main'] })} + + handleDropdownSelectFn('lang/polish')}> + {t('user_dropdown.pl', { ns: ['main'] })} + + + + + + { + keycloak.logout() + }} + > + + {t('user_dropdown.logout', { ns: ['main'] })} + + + + ) : ( + <> + + + + + {t('user_dropdown.select_language', { ns: ['main'] })} + + + + handleDropdownSelectFn('lang/english')}> + {t('user_dropdown.en', { ns: ['main'] })} + + handleDropdownSelectFn('lang/polish')}> + {t('user_dropdown.pl', { ns: ['main'] })} + + + + + + { + keycloak.login() + }} + > + + {t('user_dropdown.login', { ns: ['main'] })} + + keycloak.register()}> + + {t('user_dropdown.register', { ns: ['main'] })} + + + + )} + + ) +} diff --git a/src/components/custom/coockie-consent.tsx b/src/components/custom/coockie-consent.tsx new file mode 100644 index 0000000..9c06cf3 --- /dev/null +++ b/src/components/custom/coockie-consent.tsx @@ -0,0 +1,99 @@ +import { CookieIcon } from 'lucide-react' +import { Button } from '@/components/ui/button' +import { cn } from '@/lib/utils' +import { useState, useEffect } from 'react' +import { useTranslation } from 'react-i18next' + +export interface CookieConsentProps { + demo?: boolean + onAcceptCallback?: () => void + onDeclineCallback?: () => void +} + +export default function CookieConsent({ demo, onAcceptCallback, onDeclineCallback }: CookieConsentProps) { + const [isOpen, setIsOpen] = useState(false) + const [hide, setHide] = useState(false) + const { t } = useTranslation(['main']) + + const accept = () => { + setIsOpen(false) + document.cookie = 'cookieConsent=true; expires=Fri, 31 Dec 9999 23:59:59 GMT' + setTimeout(() => { + setHide(true) + }, 700) + if (onAcceptCallback) { + onAcceptCallback() + } + } + + const decline = () => { + setIsOpen(false) + setTimeout(() => { + setHide(true) + }, 700) + if (onDeclineCallback) { + onDeclineCallback() + } + } + + useEffect(() => { + try { + setIsOpen(true) + if (document.cookie.includes('cookieConsent=true')) { + if (!demo) { + setIsOpen(false) + setTimeout(() => { + setHide(true) + }, 700) + } + } + } catch (e) { + // console.log("Error: ", e); + } + }, []) + + return ( +
+
+
+
+

{t('cookie_consent.title', { ns: ['main'] })}

+ +
+
+

+ {t('cookie_consent.content', { ns: ['main'] })} +
+
+ + {t('cookie_consent.accept_pt1', { ns: ['main'] }) + ' '} " + {t('cookie_consent.accept', { ns: ['main'] })}"{' '} + {', ' + t('cookie_consent.accept_pt2', { ns: ['main'] })} + +
+ + {t('cookie_consent.learn_more', { ns: ['main'] })} + +

+
+
+ + +
+
+
+
+ ) +} diff --git a/src/components/custom/data-table.tsx b/src/components/custom/data-table.tsx new file mode 100644 index 0000000..de19ff5 --- /dev/null +++ b/src/components/custom/data-table.tsx @@ -0,0 +1,183 @@ +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' +import { Button } from '@/components/ui/button' +import { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon } from '@radix-ui/react-icons' +import { + ColumnDef, + flexRender, + getCoreRowModel, + PaginationState, + SortingState, + useReactTable, +} from '@tanstack/react-table' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-expect-error +import { OnChangeFn } from '@tanstack/table-core/src/types' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-expect-error +import { Table as TTable } from '@tanstack/table-core/build/lib/types' + +export interface DataTablePaginationProps { + table: TTable + withSelected?: boolean +} + +export function DataTablePagination({ table, withSelected }: DataTablePaginationProps) { + return ( +
+
+ {withSelected ? ( + <> + {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) + selected. + + ) : ( + <> + )} +
+
+
+

Rows per page

+ +
+
+ Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()} +
+
+ + + + +
+
+
+ ) +} + +export interface DataTableProps { + columns: ColumnDef[] + data: TData[] + total: number + pagination: PaginationState + paginationChangeFn: OnChangeFn + sorting?: SortingState + sortingChangeFn?: OnChangeFn +} + +export function DataTable({ + columns, + data, + total, + pagination, + paginationChangeFn, + sorting, + sortingChangeFn, +}: DataTableProps) { + const table = useReactTable({ + data: data, + columns: columns, + getCoreRowModel: getCoreRowModel(), + onPaginationChange: paginationChangeFn, + rowCount: total, + state: { + pagination, + sorting, + }, + manualPagination: true, + debugTable: false, + onSortingChange: sortingChangeFn, + manualSorting: true, + }) + + return ( +
+
+
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} + + ) + })} + + ))} + + + {table.getRowModel().rows?.length ? ( + table.getRowModel().rows.map((row) => ( + + {row.getVisibleCells().map((cell) => ( + {flexRender(cell.column.columnDef.cell, cell.getContext())} + ))} + + )) + ) : ( + + + No results. + + + )} + +
+
+
+ +
+
+
+ ) +} diff --git a/src/components/custom/multiple-selector.tsx b/src/components/custom/multiple-selector.tsx new file mode 100644 index 0000000..3703354 --- /dev/null +++ b/src/components/custom/multiple-selector.tsx @@ -0,0 +1,509 @@ +import { Command as CommandPrimitive, useCommandState } from 'cmdk' +import { X } from 'lucide-react' +import * as React from 'react' +import { forwardRef, useEffect } from 'react' + +import { Badge } from '@/components/ui/badge' +import { Command, CommandGroup, CommandItem, CommandList } from '@/components/ui/command' +import { cn } from '@/lib/utils' + +export interface Option { + value: string + label: string + disable?: boolean + /** fixed option that can't be removed. */ + fixed?: boolean + /** Group the options by providing key. */ + [key: string]: string | boolean | undefined +} +interface GroupOption { + [key: string]: Option[] +} + +interface MultipleSelectorProps { + value?: Option[] + defaultOptions?: Option[] + /** manually controlled options */ + options?: Option[] + placeholder?: string + /** Loading component. */ + loadingIndicator?: React.ReactNode + /** Empty component. */ + emptyIndicator?: React.ReactNode + /** Debounce time for async search. Only work with `onSearch`. */ + delay?: number + /** + * Only work with `onSearch` prop. Trigger search when `onFocus`. + * For example, when user click on the input, it will trigger the search to get initial options. + **/ + triggerSearchOnFocus?: boolean + /** async search */ + onSearch?: (value: string) => Promise + onChange?: (options: Option[]) => void + /** Limit the maximum number of selected options. */ + maxSelected?: number + /** When the number of selected options exceeds the limit, the onMaxSelected will be called. */ + onMaxSelected?: (maxLimit: number) => void + /** Hide the placeholder when there are options selected. */ + hidePlaceholderWhenSelected?: boolean + disabled?: boolean + /** Group the options base on provided key. */ + groupBy?: string + className?: string + badgeClassName?: string + /** + * First item selected is a default behavior by cmdk. That is why the default is true. + * This is a workaround solution by add a dummy item. + * + * @reference: https://github.com/pacocoursey/cmdk/issues/171 + */ + selectFirstItem?: boolean + /** Allow user to create option when there is no option matched. */ + creatable?: boolean + /** Props of `Command` */ + commandProps?: React.ComponentPropsWithoutRef + /** Props of `CommandInput` */ + inputProps?: Omit, 'value' | 'placeholder' | 'disabled'> + /** hide the clear all button. */ + hideClearAllButton?: boolean +} + +export interface MultipleSelectorRef { + selectedValue: Option[] + input: HTMLInputElement +} + +export function useDebounce(value: T, delay?: number): T { + const [debouncedValue, setDebouncedValue] = React.useState(value) + + useEffect(() => { + const timer = setTimeout(() => setDebouncedValue(value), delay || 500) + + return () => { + clearTimeout(timer) + } + }, [value, delay]) + + return debouncedValue +} + +function transToGroupOption(options: Option[], groupBy?: string) { + if (options.length === 0) { + return {} + } + if (!groupBy) { + return { + '': options, + } + } + + const groupOption: GroupOption = {} + options.forEach((option) => { + const key = (option[groupBy] as string) || '' + if (!groupOption[key]) { + groupOption[key] = [] + } + groupOption[key].push(option) + }) + return groupOption +} + +function removePickedOption(groupOption: GroupOption, picked: Option[]) { + const cloneOption = JSON.parse(JSON.stringify(groupOption)) as GroupOption + + for (const [key, value] of Object.entries(cloneOption)) { + cloneOption[key] = value.filter((val) => !picked.find((p) => p.value === val.value)) + } + return cloneOption +} + +function isOptionsExist(groupOption: GroupOption, targetOption: Option[]) { + for (const [, value] of Object.entries(groupOption)) { + if (value.some((option) => targetOption.find((p) => p.value === option.value))) { + return true + } + } + return false +} + +/** + * The `CommandEmpty` of shadcn/ui will cause the cmdk empty not rendering correctly. + * So we create one and copy the `Empty` implementation from `cmdk`. + * + * @reference: https://github.com/hsuanyi-chou/shadcn-ui-expansions/issues/34#issuecomment-1949561607 + **/ +const CommandEmpty = forwardRef>( + ({ className, ...props }, forwardedRef) => { + const render = useCommandState((state) => state.filtered.count === 0) + + if (!render) return null + + return ( +
+ ) + } +) + +CommandEmpty.displayName = 'CommandEmpty' + +const MultipleSelector = React.forwardRef( + ( + { + value, + onChange, + placeholder, + defaultOptions: arrayDefaultOptions = [], + options: arrayOptions, + delay, + onSearch, + loadingIndicator, + emptyIndicator, + maxSelected = Number.MAX_SAFE_INTEGER, + onMaxSelected, + hidePlaceholderWhenSelected, + disabled, + groupBy, + className, + badgeClassName, + selectFirstItem = true, + creatable = false, + triggerSearchOnFocus = false, + commandProps, + inputProps, + hideClearAllButton = false, + }: MultipleSelectorProps, + ref: React.Ref + ) => { + const inputRef = React.useRef(null) + const [open, setOpen] = React.useState(false) + const [isLoading, setIsLoading] = React.useState(false) + + const [selected, setSelected] = React.useState(value || []) + const [options, setOptions] = React.useState(transToGroupOption(arrayDefaultOptions, groupBy)) + const [inputValue, setInputValue] = React.useState('') + const debouncedSearchTerm = useDebounce(inputValue, delay || 500) + + React.useImperativeHandle( + ref, + () => ({ + selectedValue: [...selected], + input: inputRef.current as HTMLInputElement, + focus: () => inputRef.current?.focus(), + }), + [selected] + ) + + const handleUnselect = React.useCallback( + (option: Option) => { + const newOptions = selected.filter((s) => s.value !== option.value) + setSelected(newOptions) + onChange?.(newOptions) + }, + [onChange, selected] + ) + + const handleKeyDown = React.useCallback( + (e: React.KeyboardEvent) => { + const input = inputRef.current + if (input) { + if (e.key === 'Delete' || e.key === 'Backspace') { + if (input.value === '' && selected.length > 0) { + const lastSelectOption = selected[selected.length - 1] + // If last item is fixed, we should not remove it. + if (!lastSelectOption.fixed) { + handleUnselect(selected[selected.length - 1]) + } + } + } + // This is not a default behavior of the field + if (e.key === 'Escape') { + input.blur() + } + } + }, + [handleUnselect, selected] + ) + + useEffect(() => { + if (value) { + setSelected(value) + } + }, [value]) + + useEffect(() => { + /** If `onSearch` is provided, do not trigger options updated. */ + if (!arrayOptions || onSearch) { + return + } + const newOption = transToGroupOption(arrayOptions || [], groupBy) + if (JSON.stringify(newOption) !== JSON.stringify(options)) { + setOptions(newOption) + } + }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]) + + useEffect(() => { + const doSearch = async () => { + setIsLoading(true) + const res = await onSearch?.(debouncedSearchTerm) + setOptions(transToGroupOption(res || [], groupBy)) + setIsLoading(false) + } + + const exec = async () => { + if (!onSearch || !open) return + + if (triggerSearchOnFocus) { + await doSearch() + } + + if (debouncedSearchTerm) { + await doSearch() + } + } + + void exec() + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]) + + const CreatableItem = () => { + if (!creatable) return undefined + if ( + isOptionsExist(options, [{ value: inputValue, label: inputValue }]) || + selected.find((s) => s.value === inputValue) + ) { + return undefined + } + + const Item = ( + { + e.preventDefault() + e.stopPropagation() + }} + onSelect={(value: string) => { + if (selected.length >= maxSelected) { + onMaxSelected?.(selected.length) + return + } + setInputValue('') + const newOptions = [...selected, { value, label: value }] + setSelected(newOptions) + onChange?.(newOptions) + }} + > + {`Create "${inputValue}"`} + + ) + + // For normal creatable + if (!onSearch && inputValue.length > 0) { + return Item + } + + // For async search creatable. avoid showing creatable item before loading at first. + if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) { + return Item + } + + return undefined + } + + const EmptyItem = React.useCallback(() => { + if (!emptyIndicator) return undefined + + // For async search that showing emptyIndicator + if (onSearch && !creatable && Object.keys(options).length === 0) { + return ( + + {emptyIndicator} + + ) + } + + return {emptyIndicator} + }, [creatable, emptyIndicator, onSearch, options]) + + const selectables = React.useMemo(() => removePickedOption(options, selected), [options, selected]) + + /** Avoid Creatable Selector freezing or lagging when paste a long string. */ + const commandFilter = React.useCallback(() => { + if (commandProps?.filter) { + return commandProps.filter + } + + if (creatable) { + return (value: string, search: string) => { + return value.toLowerCase().includes(search.toLowerCase()) ? 1 : -1 + } + } + // Using default filter in `cmdk`. We don't have to provide it. + return undefined + }, [creatable, commandProps?.filter]) + + return ( + { + handleKeyDown(e) + commandProps?.onKeyDown?.(e) + }} + className={cn('h-auto overflow-visible bg-transparent', commandProps?.className)} + shouldFilter={commandProps?.shouldFilter !== undefined ? commandProps.shouldFilter : !onSearch} // When onSearch is provided, we don't want to filter the options. You can still override it. + filter={commandFilter()} + > +
{ + if (disabled) return + inputRef.current?.focus() + }} + > +
+ {selected.map((option) => { + return ( + + {option.label} + + + ) + })} + {/* Avoid having the "Search" Icon */} + { + setInputValue(value) + inputProps?.onValueChange?.(value) + }} + onBlur={(event) => { + setOpen(false) + inputProps?.onBlur?.(event) + }} + onFocus={(event) => { + setOpen(true) + triggerSearchOnFocus && onSearch?.(debouncedSearchTerm) + inputProps?.onFocus?.(event) + }} + placeholder={hidePlaceholderWhenSelected && selected.length !== 0 ? '' : placeholder} + className={cn( + 'flex-1 bg-transparent outline-none placeholder:text-muted-foreground', + { + 'w-full': hidePlaceholderWhenSelected, + 'px-3 py-2': selected.length === 0, + 'ml-1': selected.length !== 0, + }, + inputProps?.className + )} + /> + +
+
+
+ {open && ( + + {isLoading ? ( + <>{loadingIndicator} + ) : ( + <> + {EmptyItem()} + {CreatableItem()} + {!selectFirstItem && } + {Object.entries(selectables).map(([key, dropdowns]) => ( + + <> + {dropdowns.map((option) => { + return ( + { + e.preventDefault() + e.stopPropagation() + }} + onSelect={() => { + if (selected.length >= maxSelected) { + onMaxSelected?.(selected.length) + return + } + setInputValue('') + const newOptions = [...selected, option] + setSelected(newOptions) + onChange?.(newOptions) + }} + className={cn('cursor-pointer', option.disable && 'cursor-default text-muted-foreground')} + > + {option.label} + + ) + })} + + + ))} + + )} + + )} +
+
+ ) + } +) + +MultipleSelector.displayName = 'MultipleSelector' +export default MultipleSelector diff --git a/src/components/custom/spinner.tsx b/src/components/custom/spinner.tsx new file mode 100644 index 0000000..1c3f0f2 --- /dev/null +++ b/src/components/custom/spinner.tsx @@ -0,0 +1,43 @@ +import React from 'react' +import { cn } from '@/lib/utils' +import { VariantProps, cva } from 'class-variance-authority' +import { Loader2 } from 'lucide-react' + +const spinnerVariants = cva('flex-col items-center justify-center', { + variants: { + show: { + true: 'flex', + false: 'hidden', + }, + }, + defaultVariants: { + show: true, + }, +}) + +const loaderVariants = cva('animate-spin text-primary', { + variants: { + size: { + small: 'size-6', + medium: 'size-8', + large: 'size-12', + }, + }, + defaultVariants: { + size: 'medium', + }, +}) + +interface SpinnerContentProps extends VariantProps, VariantProps { + className?: string + children?: React.ReactNode +} + +export function Spinner({ size, show, children, className }: SpinnerContentProps) { + return ( + + + {children} + + ) +} diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..f000e3e --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx new file mode 100644 index 0000000..afa13ec --- /dev/null +++ b/src/components/ui/card.tsx @@ -0,0 +1,79 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/src/components/ui/command.tsx b/src/components/ui/command.tsx new file mode 100644 index 0000000..d34152d --- /dev/null +++ b/src/components/ui/command.tsx @@ -0,0 +1,153 @@ +import * as React from "react" +import { type DialogProps } from "@radix-ui/react-dialog" +import { Command as CommandPrimitive } from "cmdk" +import { Search } from "lucide-react" + +import { cn } from "@/lib/utils" +import { Dialog, DialogContent } from "@/components/ui/dialog" + +const Command = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Command.displayName = CommandPrimitive.displayName + +interface CommandDialogProps extends DialogProps {} + +const CommandDialog = ({ children, ...props }: CommandDialogProps) => { + return ( + + + + {children} + + + + ) +} + +const CommandInput = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( +
+ + +
+)) + +CommandInput.displayName = CommandPrimitive.Input.displayName + +const CommandList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandList.displayName = CommandPrimitive.List.displayName + +const CommandEmpty = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>((props, ref) => ( + +)) + +CommandEmpty.displayName = CommandPrimitive.Empty.displayName + +const CommandGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandGroup.displayName = CommandPrimitive.Group.displayName + +const CommandSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +CommandSeparator.displayName = CommandPrimitive.Separator.displayName + +const CommandItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandItem.displayName = CommandPrimitive.Item.displayName + +const CommandShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +CommandShortcut.displayName = "CommandShortcut" + +export { + Command, + CommandDialog, + CommandInput, + CommandList, + CommandEmpty, + CommandGroup, + CommandItem, + CommandShortcut, + CommandSeparator, +} diff --git a/src/components/ui/dialog.tsx b/src/components/ui/dialog.tsx new file mode 100644 index 0000000..c23630e --- /dev/null +++ b/src/components/ui/dialog.tsx @@ -0,0 +1,120 @@ +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogClose, + DialogTrigger, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/src/components/ui/form.tsx b/src/components/ui/form.tsx new file mode 100644 index 0000000..8dbd7a1 --- /dev/null +++ b/src/components/ui/form.tsx @@ -0,0 +1,129 @@ +import * as React from 'react' +import * as LabelPrimitive from '@radix-ui/react-label' +import { Slot } from '@radix-ui/react-slot' +import { Controller, ControllerProps, FieldPath, FieldValues, FormProvider, useFormContext } from 'react-hook-form' + +import { cn } from '@/lib/utils' +import { Label } from '@/components/ui/label' + +const Form = FormProvider + +type FormFieldContextValue< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> = { + name: TName +} + +const FormFieldContext = React.createContext({} as FormFieldContextValue) + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ) +} + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext) + const itemContext = React.useContext(FormItemContext) + const { getFieldState, formState } = useFormContext() + + const fieldState = getFieldState(fieldContext.name, formState) + + if (!fieldContext) { + throw new Error('useFormField should be used within ') + } + + const { id } = itemContext + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + } +} + +type FormItemContextValue = { + id: string +} + +const FormItemContext = React.createContext({} as FormItemContextValue) + +const FormItem = React.forwardRef>( + ({ className, ...props }, ref) => { + const id = React.useId() + + return ( + +
+ + ) + } +) +FormItem.displayName = 'FormItem' + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField() + + return

-
-
-
- -
- - React logo - -
-
+ +
+
+ + +
+
+
+ + +
+
+
+
-
-
-

Vite + React

-
-
-

This is a template application for React and Vite.

-

- There are some test components on the site. Please clear the content and put down your code. -

-
-
-
-
-
- - -
-
- - -
+
+
+
+
{t(`home.section1`, { ns: ['main'] })}
+
{t(`home.section2`, { ns: ['main'] })}
+ + } /> + } /> + } /> + + + + } + /> + + + + } + /> + +
+ +
+
+
+ + {t(`footer.text`, { ns: ['main'] })}
-
-
- -