From 018e325861c0d50409404be351fef7409df598bc Mon Sep 17 00:00:00 2001 From: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Date: Sun, 28 Apr 2024 18:50:30 -0400 Subject: [PATCH] Release v1.17.0 (#364) * Feature/revamp card (#135) * Feature/update backend setup on developer md (#104) * Ignore local IDE config * Update backend setup guidelines on developer.md * Add supabase config guidelines * Fix md syntax * add CORS to edge func depending on the staging env * add reply-to header to both contact email (#109) * Feature/refactor search hook (#96) * Refactor search hook in referral page * Refactor referee search hook * Remove useless import * Refactor referee post * Refactor referrer post search hook * Remmove uesless import * Change to error toast (#106) Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai * create new card component for referrer and referee; update card skeleton; add missing modules in tailwind * add referral post card; update referral post pages * update contact toUuid; minor ui fix * add items-center to info display * Show edit button on profile page if logged-in user is profile user * Fix build error * Fix typos * Import as module path * Module import * Using Link instead of onurlclick * Fix import * Remove id slug user page * Remove showEditButton props --------- Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai Co-authored-by: Lulu Tung * Refactor/fix all formart problem (#142) * Fix doc * Fix format --------- Co-authored-by: Pjaijai * Feature/contributors page (#174) * fix file name * Adding reminder message to contact dialog (#181) Co-authored-by: Pjaijai * Feature/Adding contributor (#180) * Adding contributor * Fix error --------- Co-authored-by: Pjaijai * Refactor/refactor use search post and api (#171) * Adding max words length * Feature/config email testing on local environment (#138) * Remove (#92) Co-authored-by: Pjaijai * [#137] Config email testing on local environment * Fix .env variable name --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai * Feature/cc sender when sending email (#140) * Add sender email to cc * Updating reminder text in contact dialog --------- Co-authored-by: Pjaijai * Feature/adding type from supabase (#124) * Adding supabase type * Adding workflow files * fix types --------- Co-authored-by: Pjaijai * Feature/Adding initial data (#125) * Adding initial data * Update * update st johns value * Update * Fix typo --------- Co-authored-by: Pjaijai * Feature/revamp card (#135) * Feature/update backend setup on developer md (#104) * Ignore local IDE config * Update backend setup guidelines on developer.md * Add supabase config guidelines * Fix md syntax * add CORS to edge func depending on the staging env * add reply-to header to both contact email (#109) * Feature/refactor search hook (#96) * Refactor search hook in referral page * Refactor referee search hook * Remove useless import * Refactor referee post * Refactor referrer post search hook * Remmove uesless import * Change to error toast (#106) Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai * create new card component for referrer and referee; update card skeleton; add missing modules in tailwind * add referral post card; update referral post pages * update contact toUuid; minor ui fix * add items-center to info display * Show edit button on profile page if logged-in user is profile user * Fix build error * Fix typos * Import as module path * Module import * Using Link instead of onurlclick * Fix import * Remove id slug user page * Remove showEditButton props --------- Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai Co-authored-by: Lulu Tung * Refactor/fix all formart problem (#142) * Fix doc * Fix format --------- Co-authored-by: Pjaijai * Hotfix/fix post duplication (#144) * Fix IUserResponse type * Fix api * Fix type * Fix api * House keep * Fetch 3 per page in search referral api * Fix search post api * House keep * fix type * fix format * Fix number of order per page --------- Co-authored-by: Pjaijai * Feature/adding tailwind plugin (#145) * Adding prettier-plugin-tailwindcss and prettier * Fixing formart --------- Co-authored-by: Pjaijai * Bugfix/Card UI (#160) * fix card ui bugs; modify the contact button of referral post card in mobile * chaneg relative paths to absolute * Bugfix/fix contact dialog text (#156) * Fix text * fix text --------- Co-authored-by: Pjaijai * Fix UI (#163) Co-authored-by: Pjaijai * Add word break (#162) Co-authored-by: Pjaijai * Doc/adding local db dev guidelines (#146) * Updating docs for backend local dev * Fix typo * House keep * fix typo --------- Co-authored-by: Pjaijai * version bump to 1.4.0 (#167) Co-authored-by: Pjaijai * create ISearchPostsRequest * Refactor * Adding year of experience min and max * House keep * Feature/config email testing on local environment (#138) * Remove (#92) Co-authored-by: Pjaijai * [#137] Config email testing on local environment * Fix .env variable name --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai * Feature/revamp card (#135) * Feature/update backend setup on developer md (#104) * Ignore local IDE config * Update backend setup guidelines on developer.md * Add supabase config guidelines * Fix md syntax * add CORS to edge func depending on the staging env * add reply-to header to both contact email (#109) * Feature/refactor search hook (#96) * Refactor search hook in referral page * Refactor referee search hook * Remove useless import * Refactor referee post * Refactor referrer post search hook * Remmove uesless import * Change to error toast (#106) Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai * create new card component for referrer and referee; update card skeleton; add missing modules in tailwind * add referral post card; update referral post pages * update contact toUuid; minor ui fix * add items-center to info display * Show edit button on profile page if logged-in user is profile user * Fix build error * Fix typos * Import as module path * Module import * Using Link instead of onurlclick * Fix import * Remove id slug user page * Remove showEditButton props --------- Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai Co-authored-by: Lulu Tung * Refactor/fix all formart problem (#142) * Fix doc * Fix format --------- Co-authored-by: Pjaijai * Refactor/fixing site config and using common layout (#172) * Rename search page layout to common page layout * refactor common layout * Using common layout * Remove margin top in create post template --------- Co-authored-by: Pjaijai * version bump (#175) Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: marukosy124 <54564324+marukosy124@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Lulu Tung * Feature/post detail page (#183) * Adding max words length * Feature/config email testing on local environment (#138) * Remove (#92) Co-authored-by: Pjaijai * [#137] Config email testing on local environment * Fix .env variable name --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai * Feature/cc sender when sending email (#140) * Add sender email to cc * Updating reminder text in contact dialog --------- Co-authored-by: Pjaijai * Feature/adding type from supabase (#124) * Adding supabase type * Adding workflow files * fix types --------- Co-authored-by: Pjaijai * Feature/Adding initial data (#125) * Adding initial data * Update * update st johns value * Update * Fix typo --------- Co-authored-by: Pjaijai * Feature/revamp card (#135) * Feature/update backend setup on developer md (#104) * Ignore local IDE config * Update backend setup guidelines on developer.md * Add supabase config guidelines * Fix md syntax * add CORS to edge func depending on the staging env * add reply-to header to both contact email (#109) * Feature/refactor search hook (#96) * Refactor search hook in referral page * Refactor referee search hook * Remove useless import * Refactor referee post * Refactor referrer post search hook * Remmove uesless import * Change to error toast (#106) Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai * create new card component for referrer and referee; update card skeleton; add missing modules in tailwind * add referral post card; update referral post pages * update contact toUuid; minor ui fix * add items-center to info display * Show edit button on profile page if logged-in user is profile user * Fix build error * Fix typos * Import as module path * Module import * Using Link instead of onurlclick * Fix import * Remove id slug user page * Remove showEditButton props --------- Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai Co-authored-by: Lulu Tung * Refactor/fix all formart problem (#142) * Fix doc * Fix format --------- Co-authored-by: Pjaijai * Hotfix/fix post duplication (#144) * Fix IUserResponse type * Fix api * Fix type * Fix api * House keep * Fetch 3 per page in search referral api * Fix search post api * House keep * fix type * fix format * Fix number of order per page --------- Co-authored-by: Pjaijai * Feature/adding tailwind plugin (#145) * Adding prettier-plugin-tailwindcss and prettier * Fixing formart --------- Co-authored-by: Pjaijai * Bugfix/Card UI (#160) * fix card ui bugs; modify the contact button of referral post card in mobile * chaneg relative paths to absolute * Bugfix/fix contact dialog text (#156) * Fix text * fix text --------- Co-authored-by: Pjaijai * Fix UI (#163) Co-authored-by: Pjaijai * Add word break (#162) Co-authored-by: Pjaijai * Doc/adding local db dev guidelines (#146) * Updating docs for backend local dev * Fix typo * House keep * fix typo --------- Co-authored-by: Pjaijai * version bump to 1.4.0 (#167) Co-authored-by: Pjaijai * add post details page * fix page status layout bugs * Rename params from postId to uuid * refactor get post api and hook * Rename post status enum * Fixing type * Add post status enum migration file * Refactoring ReferralTypeZh * Refactoring nested conditional components mounting * Add doc * Remove useless line * fix card height inconsistent bug; fix post header floating bug; update CollapsibleTextWrapper to only show expand button when needed --------- Co-authored-by: Pjaijai Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Lulu Tung * Feature/Simplify referral post card (#185) * Simplify referral -post card * Clicking avatar redirect to user profile * fix links on card not clickable issue; fix tooltip no center-aligned issue --------- Co-authored-by: Pjaijai Co-authored-by: marukosy124 * Fix layout (#187) Co-authored-by: Pjaijai * Feature/remove referee post page (#186) * Remove post referee * House keep * Remove type input in post cerate page * Remove badge * Remove post referee * House keep * House keep * House keep * Move post component to post module --------- Co-authored-by: Pjaijai * Refactor/update post types (#188) * Update type * Fix type casting --------- Co-authored-by: Pjaijai * Refactor/update post types (#189) * Update type * Fix type casting * fix types --------- Co-authored-by: Pjaijai * Feature/create post history page (#193) * create page * Create listPostByUserUuid api * Create type * Create list post api hook * Create post * Add no isloading * Fix skeleton folder name and import path * Fix IReferralPostCardProps * Remove fragment from ReferralPostCard * Adding status to PostHeader * Rename created At helper * Rename created at * Create formate date helper * create post history card * Format * Remove lines * Add buttons to post history card * House keep * Adding skeleton * house keep * house keep --------- Co-authored-by: Pjaijai * Fix doc (#195) Co-authored-by: Pjaijai * Update DEVELOPER.md regarding the supabase development setup (#196) Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Fix margin (#202) Co-authored-by: Pjaijai * Feature/updating contact through post api (#198) * Update env template * Update api * Fix typo * Fix text --------- Co-authored-by: Pjaijai * Use search params on filtering values (#203) * Use search params on filtering values * add missing handleSubmitChange function in post referee template * add missing key press function in post referee template * move confirm button out of the search component * update contributor list * fix build error in post referee template * Feature/edit post (#197) * create edit page * Create edit post template * adding uuid * House keep * Refactor post validation * Update edit post validation schema * Fix type * fix status validation * Fix select * Update edit post page * Adding setting initial value * Remove line * Make status select * Rename hook post list * Create update post api * House keep * Add user return hook * Add update post policy migration file * addd error hanlding * Redirect to post detail page * House keep * House keep * Adding create_on_post_update_function_and_trigger * Fix path --------- Co-authored-by: Pjaijai * Feature/progressive web app (#192) * Bug: These 2 files exist for no reason * Feat: Added PWA configuration * Feat: Adding manifest,json and icon * Revert "Bug: These 2 files exist for no reason" This reverts commit b0b1fe0f7296a74cc36cacea18d0972e098fd937. * Fix skeleton file name * install next pwa * Adding config * Fix manifest * Add git config * Feat: Added _document.js and added manifest in layout.tsx * Update images and manifest * Rename pwa config * Update _document --------- Co-authored-by: Pjaijai Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Feature/adding site name to edit post page (#206) * House keep * Adding edit post in site config * Adding page name to edit page --------- Co-authored-by: Pjaijai * Feature/fix pwa structure (#208) * [#192] Set default color from _document.js Fix the ul li key warning * [#207] Fix the ul li key warning as well * Add myself as a contributor * Fix format --------- Co-authored-by: Pjaijai Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Refactor/improve typing (#210) * [#192] Set default color from _document.js Fix the ul li key warning * [#207] Fix the ul li key warning as well * Add myself as a contributor * [#209] Simplify countryList, provinceList, cityList and industryList related logic Remove unnecessary `as` usage in code * Fix format --------- Co-authored-by: Pjaijai * Feature/seo optimization (#212) * Add metedata keywords * Add generateMetadata to SSR pages - Move profile templates to a separate file for client-side rendering * Show not found if userUuid is null on profile page * Clean code * Add noindex & nofollow to policy & tnc pages * Remove next/babel extension * Fix build issues * Add spacing to clickable elements to enhance SEO * Improve accessibility by adding discernible text * Edit contributor page * Fix import as amended in latest dev branch * fix typo * Adding key words --------- Co-authored-by: Pjaijai * Feature/add contributor (#214) * add contributor (ken tung) * update some formatting * Refactor/post (#200) * update post details page ui; add contact button; unify created at formatting * update post details info components * Fix format * Fix merge mistake * Adding edit post redirect link in post history card * Refactor post view template --------- Co-authored-by: Pjaijai * Feature/post history page button in profile page (#215) * Adding site config * Adding post history page title * House keep * Adding history icon * Adding post history button to profile page * Adding metadata * House keep * Fix seo metadata generation problem --------- Co-authored-by: Pjaijai * Feature/block sending email if post is closed (#216) * Creating post status enum * Blocking action if post is closed * Hide button if the post is closed --------- Co-authored-by: Pjaijai * Fix type * [#205] Fix Edit Post bug (#219) * [#205] Remove useEffect in edit post for reset url Improve type * Fix format --------- Co-authored-by: Pjaijai Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Feature/Adding user profile url to email template (#199) * Adding user profile url to email template * Fix text * Fix typo --------- Co-authored-by: Pjaijai * Version bump * Fix text (#225) Co-authored-by: Pjaijai * Adding gap (#222) Co-authored-by: Pjaijai * Feature/error boundary (#218) * Add root error boundary * add myself as contributor * [Issue #226] Bugfix/post-card-ui (#227) * fix issue #226 * fix validateDOMNesting issues --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Feature/redirect to post detail page after creating (#230) * Return data after insert * Redirect to post detail page * Select uuid only --------- Co-authored-by: Pjaijai * Refactor/navbar UI issues (#232) * center-align navbar items * hide duplicate dropdown menu items; change logout text to red * also hide them on root route * add myself to contributors * Adding text (#236) Co-authored-by: Pjaijai * Fix showing logic (#237) Co-authored-by: Pjaijai * Fix user profile url * add global loading placeholder during rendering (#229) * add global loading placeholder during rendering * update to use spinner --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Doc/update sql script for create user in local (#233) * Update doc * Add local mail box * Update * Fix format * fix typo * doc: Updated local backend instuction for magic link * doc: Found the problem of the redirect_to problem, updated DEVELOPER.md * Updated .env.template --------- Co-authored-by: Pjaijai Co-authored-by: Eddie Li <14104647ls3@gmail.com> * Feature/Created authenticated wrapper (#247) * Created authenticated layout * Rename * update ui * House keep * Fix typo --------- Co-authored-by: Pjaijai * [#131] adding husky (#221) * [#131] Test * absolute version * feat: enhance common layout component * add fragment * testing * add git ignore --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> Co-authored-by: Pjaijai * Refactor/ Get user profile api (#223) * Refactor api * Disable to fire api when no user uuid is passed * House keep * Refactor useGetUserprofile * Fix build error * House keep --------- Co-authored-by: Pjaijai * [Test] Adding Jest set up (#258) * add @types/jest, jest, and ts-jest * add jest config * add test script * update jest config to allow import from module in test files * add coverage collection setting * add jest-runner-groups * set runner to groups * Add testing docs * add unit test for get-contribution-area-text.ts * add script to run test for unit, integration, and e2e * remove Test.md * add TEST.md * Refactor/refactor types naming convention (#254) * Created authenticated layout * add fragment * testing * Rename MessageType to EMessageType * Rename PostStatusType to TPostStatusType * Rename PostStatus to EPostStatus * Rename Post to IPost * Rename QueryKeyString to EQueryKeyString * Rename ReferralType to EReferralType * Rename NavItem to INavItem * fix rebase error e Please enter the commit message for your changes. Lines starting * add ignore --------- Co-authored-by: Pjaijai * Feature/create space for auth (#260) * Created authenticated layout * Create sign in sign up and forgot password --------- Co-authored-by: Pjaijai * [Docs] Improvements and breaking down (#257) * Remove Developer.md * change root README.md developer guide to linkt to introduction.md * Add introduction.md containing overview of the project, tech stack, and the corresponding docs * migrate git guide and put in CONTRIBUTING.md * Add Frontend.md, containing guide to setup local dev environment and access to user interface * Add Backend.md, containing guide to set up local backend, deployment, migration, and table structure * remove markdown file * add markdown files name with all captial * update Readme file reference * add Inbucket guide in set up backend locally, separate Resend config guide to another section * update sql script for set up trigger on inital run --------- Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Feature/PWA installation instruction (#267) * create installation page * add link in footer * House keep --------- Co-authored-by: Pjaijai * search url using value instead of uuid (#255) * Created authenticated layout * search url using value instead of uuid * search referal uuid to value update * fix type * house keep search post hook * house keep search referral hook * rename yeo to year of experience * Rename maxYearofExperience * rename minYearOfExperience --------- Co-authored-by: Pjaijai Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * Feature/adding react testing library (#259) * Created authenticated layout * install packages * Adding config * Adding ContributionAreaBadge test * house keep * install packages * Adding config * Adding ContributionAreaBadge test * house keep * add doc * update test doc * Update contributing doc --------- Co-authored-by: Pjaijai * Feature/adding more husky config (#261) * Created authenticated layout * Add eslint and prettier pre commit * Fix format * Modify prettier config * feat: add commit convention hook * fix: fix commit problem * chore: use absolute version * chore(release): 1.6.0 * chore: house keep * docs: add doc --------- Co-authored-by: Pjaijai * CI/adding run client test ci (#270) * docs: updating contributing doc * ci: adding run client test ci --------- Co-authored-by: Pjaijai * fix: remove extra lint-staged (#268) Co-authored-by: Pjaijai * fix: refetch data after finishing edit (#271) Co-authored-by: Pjaijai * test: adding created-at and location helper tests (#272) * test: adding created-at and location helper tests * chore: rename folder name --------- Co-authored-by: Pjaijai * Feature/password sign up and sign in (#269) * feat: create create user with email password api * feat: create sign up skeleton * feat: adding error message to form check box * feat: adding type for form text input * refactor: refactor auth email and password validation * feat: create sign in form validation * feat: create sign in form skeleton * chore: rename sign up api and hook * feat: create sign in form skeleton * feat: adding auth api ui handling * fix: fix error toast color * feat: handle username * feat: duplicate username handling * feat: create create user with email password api * feat: create sign up skeleton * chore: rename sign up api and hook * feat: create sign in form skeleton * fix: fix profile usernam validation * feat: create signInWithMagicLink api and hook * chore: rename and move sign in and sign up api type * feat: create ISignInEmailMagicLinkRequest type * feat: create magic linka and password sign in form * feat: create magic link and password sign in validation * feat: create sign in tab * feat: create sign in template * feat: adding left component to input label * fix: fix auth form tabs height * chore: house keep * fix: fix style of register link in sign in template * chore: house keep * fix: fix username max length validation * fix: fix validation text * feat: create EEmaiVerification * feat: create email verificaiton page * feat: add email verification to site config * feat: sign up page house keep * feat: remove sign up page checkbox validaiton * feat: fix text and copy * fix: add forgort password link to sign in page * fix: fixing minor issue \ * style: fixing margin * refactor: performance improvement --------- Co-authored-by: Pjaijai * Feature/Add contributor (#276) * feat: add contributor * test: fix test * fix: fix contributor area --------- Co-authored-by: Pjaijai * style: fix style of sign in page (#277) Co-authored-by: Pjaijai * Feature/sign up confirmation page (#279) * chore: fix auth tmeplate import path * chore: centailize auth templates * feat: remove hover underline base link button * feat: create sign up confirmation page * test: fix test --------- Co-authored-by: Pjaijai * fix: fix test * fix: fix password min length validation * chore: house keep * refactor: remove link in functions deploy in staging yml file * Revert "refactor: remove link in functions deploy in staging yml file" This reverts commit 59f083ebd680d09df5d83d9ea6fbda972e4e561c. * feat: add debug log to function deploy * Feature/forget password (#280) * feat: create forgot password * fix: add loading for sigin and sing up * feat: add disabled to input * feat: add sign in button to site header * fix: fix site paht in site config --------- Co-authored-by: Pjaijai * feat: replace text input instead of form text input in reset password form (#281) Co-authored-by: Pjaijai * Feature/remove old magic link (#282) * feat: remove old sign in * fix: replace sign path insead of auth path --------- Co-authored-by: Pjaijai * feat: remove contributor button (#283) Co-authored-by: Pjaijai * chore(release): 1.7.0 * chore(release): 1.7.0 * chore(release): 1.8.0 * chore(release): 1.7.1 * docs: release * feat: yarn lock update * feat: temp remove function deploy * fix: fix build error * feat: add handling (#285) Co-authored-by: Pjaijai * Feature/data access (#286) * feat: migration script * feat: remove email from api * fix: fix contact content email failed to send reset problem --------- Co-authored-by: Pjaijai * feat: migration file * fix: update on contact referral query * ci: update staging ci file * fix: fix contact through post function * ci: remove function deplot * Refactor/house keep (#288) * chore: house keep * house keep * add back register button title --------- Co-authored-by: Pjaijai * fix: fix import path * feat: add new password same as old password handling * fix: fix text * fix: fix import error * feat: turn off local supabase analytics * Feature/Internationalization set up (#287) * feat: move app files to have locale path * feat: install next international * feat: next internaiton config * feat: next international implementation * feat: create combined middleware * chore: remove layout what not in locale * feat: update typescript version * docs: adding next internaiton to doc --------- Co-authored-by: Pjaijai * Feature/handle signed in user in sign page (#289) * feat: create not found page * feat: return not found in sign up page if user already signed in * chore: replace throw with replace * fix: new not found page --------- Co-authored-by: Pjaijai * Feature/access control (#290) * feat: create sever admin * feat: migration restrict user table column access * feat: replace client with sever admin * chore: house keep * chore: house keep * chore: house keep --------- Co-authored-by: Pjaijai * feat: added backbtn to post referer page (#294) Co-authored-by: Pjaijai <87293994+Pjaijai@users.noreply.github.com> * style: fix back to post button * Feature/in app chat room UI (#292) * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * test: chat message card test * test: chat conversation header test --------- Co-authored-by: Pjaijai * style: fix layout style * feat: add helen wong to contributor list * feat: add selina lam to contributor list * Feature/In app Chat (#293) * Feature/in app chat room UI (#292) * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * test: chat message card test * test: chat conversation header test --------- Co-authored-by: Pjaijai * Feature/message logic (#296) * feat: create message api and logic * feat: remove email for apis * feat: fix message referral request for edge funciton * feat: implement message edge function * feat: remove contact apis * feat: update supabse types * feat: basic message api implementation * feat: enhance base infinite scroll * fix: fix for input text * chore: remove useUpdateConversationLastUpdatedAt * feat: cretae useUpdateConversation api hook * feat: update api * feat: update chat * feat: update package json script * feat: update supabase type * feat: migration script * chore: rename room to conversation * feat(implement date in message card): implment date in mesage card * feat: add before to created message * feat: messsage infinite scroll * fix(fix page overflow problem ): fix page overflow problem * style: fix style * fix: fix conversation header url * feat: conversation scroll * feat: conversatio header routing * feat: chat page mobile view * style: in app chat layout * feat: close footer when in chat page * feat: chat api hool refech config * feat: message real time subscribe * fix: fix post page layout * feat: conversation update * feat: loading and no messange and conversation handleing * feat: update is convertion seen checking condition * fix: fix conversation api fetch timing * style: fix conversation and message card style * fix: fix message real time refech * fix: fix in app caht back button * style: chat message list skletion style * test: chat skeletion test * feat: check conversation unseen * chore: house keep * feat: add chat provider * style: fix input field style * feat: update handle_message_create function migration file --------- Co-authored-by: Pjaijai * fix: fix build error * docs: update supabase types * Bugfix/fix chat style (#301) * fix: fix chat invalidate logic * style(fix chat style): fix chat style * fix: fix build failed --------- Co-authored-by: Pjaijai * fix: fix build error * style: chat page an scroll bar style * Feature/schedule notification for unseen conversation (#302) * Feature/in app chat room UI (#292) * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * feat: update lucide-react * fix: fix icon onclick error * feat: chat ui * feat(message unread ui): messsage unread ui * chore: house keep * style: more style on room card * test: chat message card test * test: chat conversation header test --------- Co-authored-by: Pjaijai * Feature/message logic (#296) * feat: create message api and logic * feat: remove email for apis * feat: fix message referral request for edge funciton * feat: implement message edge function * feat: remove contact apis * feat: update supabse types * feat: basic message api implementation * feat: enhance base infinite scroll * fix: fix for input text * chore: remove useUpdateConversationLastUpdatedAt * feat: cretae useUpdateConversation api hook * feat: update api * feat: update chat * feat: update package json script * feat: update supabase type * feat: migration script * chore: rename room to conversation * feat(implement date in message card): implment date in mesage card * feat: add before to created message * feat: messsage infinite scroll * fix(fix page overflow problem ): fix page overflow problem * style: fix style * fix: fix conversation header url * feat: conversation scroll * feat: conversatio header routing * feat: chat page mobile view * style: in app chat layout * feat: close footer when in chat page * feat: chat api hool refech config * feat: message real time subscribe * fix: fix post page layout * feat: conversation update * feat: loading and no messange and conversation handleing * feat: update is convertion seen checking condition * fix: fix conversation api fetch timing * style: fix conversation and message card style * fix: fix message real time refech * fix: fix in app caht back button * style: chat message list skletion style * test: chat skeletion test * feat: check conversation unseen * chore: house keep * feat: add chat provider * style: fix input field style * feat: update handle_message_create function migration file --------- Co-authored-by: Pjaijai * fix: fix build error * feat: notify unseenconversation function * style: fix email style * fix: fix unseen conversation function return * fix: fix build error --------- Co-authored-by: Pjaijai --------- Co-authored-by: Pjaijai * feat(fix email sending error and adding log): fix email sending error and adding log * fix: fix chat email link * fix: fix conversation exsist case * fix: fix chat room redirection in email content * feat: not showing user massage in notificaiton email * test: temp remove test * feat: mobile friendly main page ui (#303) * feat(mobile friendly main page ui): mobile friendly main page ui * fix: fix copy --------- Co-authored-by: Pjaijai * style: update char message card ui (#304) Co-authored-by: Pjaijai * test: fix message card test * Feature/mobile menu (#305) * feat: add side menu for mobile * feat: update message icon for nav menu; update chat nav link on mobile menu * fix: updated message test typo * Feature/translation (#306) * test: fix message card test * feat: update layout lang point to locale * feat: update zh-hk and en-ca copies * feat: implement i18n keys * feat: hanlde not static data translation * style: user count magin * feat: unify created at * feat: add locale setting button * feat: page name i18n impletation * style: make locale selection visible on mobile * feat: mobile nav i18n --------- Co-authored-by: Pjaijai * Feature/mobile no message handling (#307) * fix: not allow white space username in edit profile * fix: fix profile page title * fix: fix profile site config name * feat: no message to conversation left section * fix: fix change locale sign our problem * fix: fix change locale no search params problem * chore: house keep --------- Co-authored-by: Pjaijai * fix: fix password email invalid text * Feature/style house keep (#308) * style: fix style * fix: fix theme toggle in mobile nav --------- Co-authored-by: Pjaijai * Feature/replace magic link with one time passcode (#309) * feat: replace magic link with one time password * chore: house keep * chore: house keep --------- Co-authored-by: Pjaijai * style: fix opt verfication max width * feat: message display clickable link (#310) Co-authored-by: Pjaijai * fix: fix copy * fix: fix message icon in site header not redirect * chore(release): 1.8.0 * style: email style * fix: fix email link * fix: fix copy * fix: fix copy * style: profile buttons container style * feat: implement bottleneck * fix: fix copies * fix: fix copy * chore: house keep * chore: house keep * fix(fix en-ca copy): fix en-ca copy * feat: optimize notify unseen conversation function (#314) Co-authored-by: Pjaijai * Feature/api-ssg (#312) * fix: makes server action works * fix: fix copy * fix: fix sign up redirect problem * feat: user count isg * feat(remove unauthenticated wrapper): remove unauthenticated wrapper * feat: remove unauth wrapper * feat: update options hooks * feat: update search hook * feat: ssg in post * feat(profile cache\): profile cache * feat: referral cache * feat: updateb search pop over * feat: remove react-query-next-experimental * feat(update profile template): update profile templates * feat: update referral templates * feat: update post templates * fix: fix edit post page rendering * fix: fix rendering --------- Co-authored-by: Pjaijai * feat: install speed insights * chore(release): 1.9.0 * feat: fix sign in link in sign up page * feat: invalidate instead of refech (#317) Co-authored-by: Pjaijai * Feature/password eye icon (#316) * style: password input show eye icon when focus or have value * style: main page layout --------- Co-authored-by: Pjaijai * chore(release): 1.10.0 * fix: hotfix conversatio per page * chore(release): 1.10.1 * Feature/revamp user profile (#320) * feat: post detail page title * feat: fix options schema not null colounm * docs: fix type * feat: split profile edit page * feat: add copies * feat: add icons * style: edit and view profile page style --------- Co-authored-by: Pjaijai * chore(release): 1.10.2 * chore(release): 1.10.3 * fix: fixtype * feat: post prefech cache * style: fix profile info card ui padding * feat: combine providers * Feature/style enhancement (#325) * style: add space to post created at * style: remove des i refferral post card * fix: fix chat outermost scroll * refactor: house keep --------- Co-authored-by: Pjaijai * Featurel/make post sharable (#326) * feat: install react share * feat: desktop post share link --------- Co-authored-by: Pjaijai * Feature/make post sharable (#327) * feat: share drawer * feat: update copies --------- Co-authored-by: Pjaijai * chore(release): 1.11.0 * feat: post preview on main page (#329) Co-authored-by: Pjaijai * chore(release): 1.12.0 * chore(release): 1.12.1 * fix: fix carousel * chore(release): 1.12.2 * fix: fix toast not showing * chore(release): 1.12.3 * Feature/support sending pdf (#333) * feat: add new icons * feat: add react-dropzone * feat: install react-dropzone * fix: fix api hook path * feat: add file drop ui to send message form * feat: support sending pdf in app chat * feat: support pdf in message contact * feat: api for cleaning document storeage * feat: add copies * feat: update engine in client package json --------- Co-authored-by: Pjaijai * Feature/support sending pdf (#334) * feat: add file drop ui to send message form * feat: support sending pdf in app chat * feat: support pdf in message contact * feat: add copies * fix: fix upload document loading spin --------- Co-authored-by: Pjaijai * fix: fix yoe in referral post card * fix: remove github in header * fix: replace reset icon with copy * fix: fix infinite scroll infinite loading problem * fix: fix copy * fix: fix word break * fix: fix typo * feat: add fancy background (#335) Co-authored-by: Pjaijai * fix: fix fancy background showing logic * Feature/ Create message record (#336) * feat: record down message * fix: fix clipboard window error * fix: fix main page button rendering error --------- Co-authored-by: Pjaijai * Feature/increase document maximum size (#337) * feat: allow upload doc to 2 mb * feat: show document is expired --------- Co-authored-by: Pjaijai * try seed migration * Revert "try seed migration" This reverts commit 16f38db052e35d987efdc095fbe0cc176d873119. * Feature/add new locations (#338) * fix: fix profile view check box bg color * feat: support multi location search * refactor: house keep --------- Co-authored-by: Pjaijai * fix: fix ui (#339) Co-authored-by: Pjaijai * chore(release): 1.13.0 * Feature/update notify unseen conversation (#341) * chore(release): 1.13.0 * feat(cron notify-unseen-conversation support pdf): cron notify-unseen-conversation support pdf --------- Co-authored-by: Pjaijai * feat: update clean storage api logic * refactor: house keep * chore(release): 1.14.0 * refactor: house keep * fix: remove cache * fix: add back location cache * fix: cache options for 60 seconds * no cache * fix: profile apis no store * Feature/revamp search (#348) * feat: search bar new ui * feat: mobile search * chore: define new engine --------- Co-authored-by: Pjaijai * Feature/revamp search (#349) * feat: search bar new ui * feat: mobile search * chore: define new engine * fix: fix searcg drawer ui --------- Co-authored-by: Pjaijai * BugFix/fix search drawer ui (#350) * feat: search bar new ui * feat: mobile search * chore: define new engine * fix: fix searcg drawer ui * fix: fix drawer ui * fix: fix filter reset --------- Co-authored-by: Pjaijai * Feature: Revamp post search ux (#351) * feat: replace post referer and referee with post search and view * feat: post type title * feat: display post type * feat: search post type with search params instead of usestate --------- Co-authored-by: Pjaijai * fix: fix inistial post search type (#352) Co-authored-by: Pjaijai * caching (#353) Co-authored-by: Pjaijai * feat: prefrech to edit post * chore(release): 1.15.0 * try edti post cache 1 second * remove default cache * feat: revalidate location options one day * fix: fix edit post title * chore(release): 1.16.0 * fix: fix post history card * fix: fix post nav description * fix: fix post referee title * fix: fix typo * fix: fothix edge function get user null problem * chore(release): 1.16.2 * chore: house keep * feat: create message uuid col for history tbale * Feature/revamp member page (#363) * feat: add user search page * feat: update copies * feat: display referral type in referral card * chore: house keep * chore: house keep * chore: rename user page to member * feat: hide become member is user sign in --------- Co-authored-by: Pjaijai * style: referral card avatar * chore(release): 1.17.0 --------- Co-authored-by: marukosy124 <54564324+marukosy124@users.noreply.github.com> Co-authored-by: Lulu <76647602+511234@users.noreply.github.com> Co-authored-by: Thomas Yau Co-authored-by: Thomas Yau Co-authored-by: Pjaijai Co-authored-by: Lulu Tung Co-authored-by: marukosy124 Co-authored-by: Ken Tung Co-authored-by: Martin Tsang <64913859+marttsang2@users.noreply.github.com> Co-authored-by: 14104647ls3 <67142310+14104647ls3@users.noreply.github.com> Co-authored-by: tommy Co-authored-by: Paco Wong <86609598+paco0161@users.noreply.github.com> Co-authored-by: Cyrus Chan <111417390+cyruscsc@users.noreply.github.com> Co-authored-by: Eddie Li <14104647ls3@gmail.com> Co-authored-by: Vardy Co-authored-by: Trevor Wong <44539644+trevorwongtw@users.noreply.github.com> Co-authored-by: Johnson Shan <43336083+JohnsonShan@users.noreply.github.com> --- CHANGELOG.md | 39 ++-- .../{referer => member/search}/page.tsx | 10 +- client/app/[locale]/referee/page.tsx | 37 ---- .../customized-ui/buttons/contact.tsx | 4 +- .../customized-ui/cards/referral.tsx | 17 +- .../customized-ui/navigation-menu/base.tsx | 25 +-- .../customized-ui/navigation-menu/mobile.tsx | 28 ++- client/config/site.ts | 20 +- client/hooks/api/post/search-post.tsx | 6 +- client/hooks/api/referral/search-referral.tsx | 49 ++++- .../modules/member/components/bars/search.tsx | 68 ++++++ .../components/dialog/contact.tsx | 0 .../components/dialog/userSignIn.tsx | 0 .../member/components/drawers/search.tsx | 60 +++++ .../components/drop-down-menu/card.tsx | 0 .../referer => member/search}/template.tsx | 76 ++++--- .../modules/post/components/bars/search.tsx | 10 +- .../post/components/drawers/search.tsx | 8 +- .../utils/is-type-exits-in-current-types.ts | 10 - client/modules/referral/referee/template.tsx | 208 ------------------ client/types/api/request/user/filter-meta.ts | 6 + client/types/api/response/referral.ts | 8 +- client/types/common/query-key-string.ts | 3 +- client/types/common/user-type.ts | 4 + client/utils/common/api/index.tsx | 23 +- .../common/helpers/check/is-exists-list.ts | 5 + .../internationalization/messages/en-ca.ts | 17 +- .../internationalization/messages/zh-hk.ts | 23 +- package.json | 2 +- .../functions/message-post-creator/index.ts | 5 +- ...eate_message_uuid_col_in_history_table.sql | 13 ++ 31 files changed, 366 insertions(+), 418 deletions(-) rename client/app/[locale]/{referer => member/search}/page.tsx (72%) delete mode 100644 client/app/[locale]/referee/page.tsx create mode 100644 client/modules/member/components/bars/search.tsx rename client/modules/{referral => member}/components/dialog/contact.tsx (100%) rename client/modules/{referral => member}/components/dialog/userSignIn.tsx (100%) create mode 100644 client/modules/member/components/drawers/search.tsx rename client/modules/{referral => member}/components/drop-down-menu/card.tsx (100%) rename client/modules/{referral/referer => member/search}/template.tsx (74%) delete mode 100644 client/modules/post/utils/is-type-exits-in-current-types.ts delete mode 100644 client/modules/referral/referee/template.tsx create mode 100644 client/types/api/request/user/filter-meta.ts create mode 100644 client/types/common/user-type.ts create mode 100644 client/utils/common/helpers/check/is-exists-list.ts create mode 100644 supabase/migrations/20240424003621_create_message_uuid_col_in_history_table.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 59a0a66b..e531cd87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,48 +2,49 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. -### [1.16.2](https://github.com/Pjaijai/Referalah/compare/v1.16.0...v1.16.2) (2024-04-23) +## [1.17.0](https://github.com/Pjaijai/Referalah/compare/v1.16.2...v1.17.0) (2024-04-28) + +### Features +- create message uuid col for history tbale ([a0259b8](https://github.com/Pjaijai/Referalah/commit/a0259b851dded4367d2dd2584b6b013fae0b1664)) + +### [1.16.2](https://github.com/Pjaijai/Referalah/compare/v1.16.0...v1.16.2) (2024-04-23) ### Bug Fixes -* fix post history card ([60e0229](https://github.com/Pjaijai/Referalah/commit/60e022965003b69f28bb28b9ee46cd78f6fe01f6)) -* fix post nav description ([33622b3](https://github.com/Pjaijai/Referalah/commit/33622b367ca4f16be38917cb2a14ecaa63d19ec2)) -* fix post referee title ([621f5db](https://github.com/Pjaijai/Referalah/commit/621f5dbc563c4b458c5d11df84797546ace5a23b)) -* fix typo ([17cc97b](https://github.com/Pjaijai/Referalah/commit/17cc97b3ee6dd64a4d7c987db5ea108f14feac5d)) -* fothix edge function get user null problem ([025eefb](https://github.com/Pjaijai/Referalah/commit/025eefb7015190b7f07dcc216635366e44abd32b)) +- fix post history card ([60e0229](https://github.com/Pjaijai/Referalah/commit/60e022965003b69f28bb28b9ee46cd78f6fe01f6)) +- fix post nav description ([33622b3](https://github.com/Pjaijai/Referalah/commit/33622b367ca4f16be38917cb2a14ecaa63d19ec2)) +- fix post referee title ([621f5db](https://github.com/Pjaijai/Referalah/commit/621f5dbc563c4b458c5d11df84797546ace5a23b)) +- fix typo ([17cc97b](https://github.com/Pjaijai/Referalah/commit/17cc97b3ee6dd64a4d7c987db5ea108f14feac5d)) +- fothix edge function get user null problem ([025eefb](https://github.com/Pjaijai/Referalah/commit/025eefb7015190b7f07dcc216635366e44abd32b)) ### [1.16.1](https://github.com/Pjaijai/Referalah/compare/v1.16.0...v1.16.1) (2024-04-22) ## [1.16.0](https://github.com/Pjaijai/Referalah/compare/v1.15.0...v1.16.0) (2024-04-22) - ### Features -* revalidate location options one day ([ef2c0c2](https://github.com/Pjaijai/Referalah/commit/ef2c0c2300fcff75709da3c4c5689188645034c8)) - +- revalidate location options one day ([ef2c0c2](https://github.com/Pjaijai/Referalah/commit/ef2c0c2300fcff75709da3c4c5689188645034c8)) ### Bug Fixes -* fix edit post title ([916fd27](https://github.com/Pjaijai/Referalah/commit/916fd275dc23affede09783619515b2272323616)) +- fix edit post title ([916fd27](https://github.com/Pjaijai/Referalah/commit/916fd275dc23affede09783619515b2272323616)) ### [1.15.1](https://github.com/Pjaijai/Referalah/compare/v1.15.0...v1.15.1) (2024-04-22) ## [1.15.0](https://github.com/Pjaijai/Referalah/compare/v1.14.0...v1.15.0) (2024-04-22) - ### Features -* prefrech to edit post ([657105b](https://github.com/Pjaijai/Referalah/commit/657105b2cee3f048b1a3d4dbc98623d981f67d0f)) - +- prefrech to edit post ([657105b](https://github.com/Pjaijai/Referalah/commit/657105b2cee3f048b1a3d4dbc98623d981f67d0f)) ### Bug Fixes -* add back location cache ([f56a089](https://github.com/Pjaijai/Referalah/commit/f56a0890efb1518553a4838657c2c74784469b28)) -* cache options for 60 seconds ([109ffe5](https://github.com/Pjaijai/Referalah/commit/109ffe5255494c5b18350a2fdc0b1da8083c9eb4)) -* fix inistial post search type ([#352](https://github.com/Pjaijai/Referalah/issues/352)) ([6103192](https://github.com/Pjaijai/Referalah/commit/6103192d373b6cab6ae16f0cd38bdfcbd9601aa7)) -* profile apis no store ([6ec2f84](https://github.com/Pjaijai/Referalah/commit/6ec2f8419ed158ef942fe00bf1eca210e74ecc08)) -* remove cache ([b395c0c](https://github.com/Pjaijai/Referalah/commit/b395c0cfbf27a46b6d22a756699b986999859b1a)) +- add back location cache ([f56a089](https://github.com/Pjaijai/Referalah/commit/f56a0890efb1518553a4838657c2c74784469b28)) +- cache options for 60 seconds ([109ffe5](https://github.com/Pjaijai/Referalah/commit/109ffe5255494c5b18350a2fdc0b1da8083c9eb4)) +- fix inistial post search type ([#352](https://github.com/Pjaijai/Referalah/issues/352)) ([6103192](https://github.com/Pjaijai/Referalah/commit/6103192d373b6cab6ae16f0cd38bdfcbd9601aa7)) +- profile apis no store ([6ec2f84](https://github.com/Pjaijai/Referalah/commit/6ec2f8419ed158ef942fe00bf1eca210e74ecc08)) +- remove cache ([b395c0c](https://github.com/Pjaijai/Referalah/commit/b395c0cfbf27a46b6d22a756699b986999859b1a)) ## [1.14.0](https://github.com/Pjaijai/Referalah/compare/v1.13.0...v1.14.0) (2024-03-31) @@ -53,7 +54,7 @@ All notable changes to this project will be documented in this file. See [standa ### Features -* update clean storage api logic ([6f0e172](https://github.com/Pjaijai/Referalah/commit/6f0e172f22041d6db8056c7e3b442c91220360af)) +- update clean storage api logic ([6f0e172](https://github.com/Pjaijai/Referalah/commit/6f0e172f22041d6db8056c7e3b442c91220360af)) ## [1.13.0](https://github.com/Pjaijai/Referalah/compare/v1.12.3...v1.13.0) (2024-03-29) diff --git a/client/app/[locale]/referer/page.tsx b/client/app/[locale]/member/search/page.tsx similarity index 72% rename from client/app/[locale]/referer/page.tsx rename to client/app/[locale]/member/search/page.tsx index 07f3d465..ba16d3c5 100644 --- a/client/app/[locale]/referer/page.tsx +++ b/client/app/[locale]/member/search/page.tsx @@ -1,4 +1,4 @@ -import RefererPageTemplate from "@/modules/referral/referer/template" +import MemberSearchPageTemplate from "@/modules/member/search/template" import { getCityList, getCountryList, @@ -10,11 +10,11 @@ import { getI18n } from "@/utils/services/internationalization/server" import { siteConfig } from "@/config/site" import CommonPageLayout from "@/components/layouts/common" -export const metadata = siteConfig.page.referrer.metadata +export const metadata = siteConfig.page.searchMember.metadata export const revalidate = 60 * 60 * 24 -export default async function RefererPage() { +export default async function MemberSearchPage() { const t = await getI18n() const countryList = await getCountryList() const provinceList = await getProvinceList() @@ -22,8 +22,8 @@ export default async function RefererPage() { const industryList = await getIndustryList() return ( - - + { - const t = await getI18n() - const countryList = await getCountryList() - const provinceList = await getProvinceList() - const cityList = await getCityList() - const industryList = await getIndustryList() - - return ( - - - - ) -} - -export default RefereePage diff --git a/client/components/customized-ui/buttons/contact.tsx b/client/components/customized-ui/buttons/contact.tsx index 47b8105c..75585891 100644 --- a/client/components/customized-ui/buttons/contact.tsx +++ b/client/components/customized-ui/buttons/contact.tsx @@ -1,6 +1,6 @@ import React, { memo, useState } from "react" -import ContactDialog from "@/modules/referral/components/dialog/contact" -import UserSignInDialog from "@/modules/referral/components/dialog/userSignIn" +import ContactDialog from "@/modules/member/components/dialog/contact" +import UserSignInDialog from "@/modules/member/components/dialog/userSignIn" import { useI18n } from "@/utils/services/internationalization/client" import { EMessageType } from "@/types/common/message-type" diff --git a/client/components/customized-ui/cards/referral.tsx b/client/components/customized-ui/cards/referral.tsx index b8182c96..929e47e4 100644 --- a/client/components/customized-ui/cards/referral.tsx +++ b/client/components/customized-ui/cards/referral.tsx @@ -6,6 +6,7 @@ import { useI18n } from "@/utils/services/internationalization/client" import { EMessageType } from "@/types/common/message-type" import { EReferralType } from "@/types/common/referral-type" import { siteConfig } from "@/config/site" +import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, @@ -38,6 +39,8 @@ interface IReferralCardProps { industry: string | null socialMediaUrl: string | null receiverType: EReferralType + isReferrer: boolean + isReferee: boolean } const ReferralCard: React.FunctionComponent = ({ @@ -54,6 +57,8 @@ const ReferralCard: React.FunctionComponent = ({ uuid, yearOfExperience, receiverType, + isReferee, + isReferrer, }) => { const t = useI18n() const router = useRouter() @@ -70,8 +75,15 @@ const ReferralCard: React.FunctionComponent = ({ {/* avatar, username , title, company, desc, url */} +
+
+ {isReferee && {t("user.type.referee")}} + {isReferrer && {t("user.type.referrer")}} +
+
+ {socialMediaUrl && ( -
+
@@ -82,17 +94,20 @@ const ReferralCard: React.FunctionComponent = ({ />
)} +

@{username}

+

{jobTitle}

{companyName && }

diff --git a/client/components/customized-ui/navigation-menu/base.tsx b/client/components/customized-ui/navigation-menu/base.tsx index a84e84df..28c45bf2 100644 --- a/client/components/customized-ui/navigation-menu/base.tsx +++ b/client/components/customized-ui/navigation-menu/base.tsx @@ -18,7 +18,6 @@ import { Icons } from "@/components/icons" export function BaseNavigationMenu() { const t = useI18n() - const userUuid = useUserStore((state) => state.uuid) const isUserSignIn = useUserStore((state) => state.isSignIn) const components: { title: string; href: string; description: string }[] = [ @@ -43,21 +42,17 @@ export function BaseNavigationMenu() {

    - - - {t("nav.become_referrer_or_referrer_description")} - - - - - - {t("nav.referrer.description")} - - + {!isUserSignIn && ( + + + {t("nav.become_member_description")} + + + )} - - - {t("nav.referee.description")} + + + {t("nav.member.description")}
diff --git a/client/components/customized-ui/navigation-menu/mobile.tsx b/client/components/customized-ui/navigation-menu/mobile.tsx index d2923086..1cbb6c52 100644 --- a/client/components/customized-ui/navigation-menu/mobile.tsx +++ b/client/components/customized-ui/navigation-menu/mobile.tsx @@ -1,5 +1,6 @@ "use client" +import { useMemo } from "react" import { useRouter } from "next/navigation" import { useI18n } from "@/utils/services/internationalization/client" @@ -31,16 +32,25 @@ interface MobileNavigationMenuProps { export function MobileNavigationMenu({ className }: MobileNavigationMenuProps) { const t = useI18n() - const { uuid: userUuid, isSignIn } = useUserStore((state) => state) + const { isSignIn } = useUserStore((state) => state) - const connectionLinks = [ - { title: t("page.referrer"), url: siteConfig.page.referrer.href }, - { title: t("page.talent"), url: siteConfig.page.talent.href }, - { - title: t("nav.become_referrer_or_referrer_title"), - url: `${siteConfig.page.profile.href}/${userUuid}`, - }, - ] + const connectionLinks = useMemo(() => { + const links = [ + { + title: t("page.search_member"), + url: siteConfig.page.searchMember.href, + }, + ] + + if (!isSignIn) { + links.unshift({ + title: t("nav.become_member_title"), + url: `${siteConfig.page.signUp.href}`, + }) + } + + return links + }, [isSignIn]) const workLinks = [ { title: t("page.post"), url: siteConfig.page.searchPost.href }, diff --git a/client/config/site.ts b/client/config/site.ts index 621691f4..63849411 100644 --- a/client/config/site.ts +++ b/client/config/site.ts @@ -71,22 +71,12 @@ export const siteConfig = { description: "忘記密碼 Forgot Password", }, }, - referrer: { - name: "推薦人", - href: "/referer", - metadata: { - title: "推薦人 Referrers", - description: - "想搵人推薦你入去?係到搵下啦! Meet someone to bring you closer to your dream company!", - }, - }, - talent: { - name: "受薦人", - href: "/referee", + + searchMember: { + name: "會員", + href: "/member/search", metadata: { - title: "人才 Talent", - description: - "想搵人材?係到睇下有冇合適嘅人啦! Recommend an amazing talent from Hong Kong to join your company!", + title: "會員 members", }, }, createPost: { diff --git a/client/hooks/api/post/search-post.tsx b/client/hooks/api/post/search-post.tsx index 6c66ea52..9f340df2 100644 --- a/client/hooks/api/post/search-post.tsx +++ b/client/hooks/api/post/search-post.tsx @@ -1,7 +1,7 @@ import { ChangeEvent, useCallback, useEffect, useState } from "react" import { usePathname, useRouter, useSearchParams } from "next/navigation" -import { isTypeExitsInCurrentTypes } from "@/modules/post/utils/is-type-exits-in-current-types" import { searchPostApi } from "@/utils/common/api" +import { isExistsInListHelper } from "@/utils/common/helpers/check/is-exists-list" import { useInfiniteQuery } from "@tanstack/react-query" import { IPostFilterMeta } from "@/types/api/request/post/filter-meta" @@ -176,13 +176,13 @@ const useSearchPost = (props: ISearchPostProps) => { const handlePostTypesChange = (type: EReferralType) => { if ( - isTypeExitsInCurrentTypes(postTypes, type) === true && + isExistsInListHelper(postTypes, type) === true && postTypes.length > 1 ) { const newTypes = postTypes.filter((v) => v !== type) setPostTypes(newTypes) createQueryString("types", newTypes.join(",")) - } else if (isTypeExitsInCurrentTypes(postTypes, type) === false) { + } else if (isExistsInListHelper(postTypes, type) === false) { const newTypes = [...postTypes, type] setPostTypes(newTypes) createQueryString("types", newTypes.join(",")) diff --git a/client/hooks/api/referral/search-referral.tsx b/client/hooks/api/referral/search-referral.tsx index 7d5d569a..2586273b 100644 --- a/client/hooks/api/referral/search-referral.tsx +++ b/client/hooks/api/referral/search-referral.tsx @@ -1,6 +1,7 @@ import { ChangeEvent, useCallback, useEffect, useState } from "react" import { usePathname, useRouter, useSearchParams } from "next/navigation" import { searchReferral } from "@/utils/common/api" +import { isExistsInListHelper } from "@/utils/common/helpers/check/is-exists-list" import { useInfiniteQuery } from "@tanstack/react-query" import { ICityResponse } from "@/types/api/response/city" @@ -8,11 +9,10 @@ import { ICountryResponse } from "@/types/api/response/country" import { IIndustryResponse } from "@/types/api/response/industry" import { IProvinceResponse } from "@/types/api/response/province" import { EQueryKeyString } from "@/types/common/query-key-string" -import { EReferralType } from "@/types/common/referral-type" +import { EUserType } from "@/types/common/user-type" import useReferralSortOptions from "@/hooks/common/sort/referral-sort-options" interface ISearchReferralProps { - type: EReferralType countryList: ICountryResponse[] provinceList: IProvinceResponse[] cityList: ICityResponse[] @@ -20,13 +20,10 @@ interface ISearchReferralProps { } const useSearchReferral = (props: ISearchReferralProps) => { - const { type, countryList, provinceList, cityList, industryList } = props + const { countryList, provinceList, cityList, industryList } = props const { data: referralSortingOptions } = useReferralSortOptions() - const keyString = - type === EReferralType.REFEREE - ? EQueryKeyString.SEARCH_REFEREE - : EQueryKeyString.SEARCH_REFERRER + const keyString = EQueryKeyString.SEARCH_MEMBER const getUUid = useCallback( (meta: "country" | "industry" | "province" | "city", value?: string) => { @@ -69,6 +66,24 @@ const useSearchReferral = (props: ISearchReferralProps) => { new URLSearchParams(searchParams.toString()) ) + const initialUserTypes = searchParams + .get("types") + ?.split(",") + .map((type) => { + if (Object.values(EUserType).includes(type as EUserType)) { + return type as EUserType + } else { + // Handle invalid type value + return undefined // or any other default value/error handling + } + }) + .filter((type) => type !== undefined) as EUserType[] + + const defaultUserTypes = [EUserType.REFEREE, EUserType.REFERRER] + const [userTypes, setUserTypes] = useState( + initialUserTypes || defaultUserTypes + ) + const createQueryString = useCallback( (name: string, value: string) => { params.set(name, value) @@ -97,6 +112,21 @@ const useSearchReferral = (props: ISearchReferralProps) => { createQueryString("jobTitle", e.target.value) } + const handleUserTypesChange = (type: EUserType) => { + if ( + isExistsInListHelper(userTypes, type) === true && + userTypes.length > 1 + ) { + const newTypes = userTypes.filter((v) => v !== type) + setUserTypes(newTypes) + createQueryString("types", newTypes.join(",")) + } else if (isExistsInListHelper(userTypes, type) === false) { + const newTypes = [...userTypes, type] + setUserTypes(newTypes) + createQueryString("types", newTypes.join(",")) + } + } + const handleCountryChange = (value: string) => { if (value === "all") { setCountryUuid(undefined) @@ -257,9 +287,10 @@ const useSearchReferral = (props: ISearchReferralProps) => { searchParams.get("minYearOfExperience")?.toString() || undefined, maxYearOfExperience: searchParams.get("maxYearOfExperience")?.toString() || undefined, + types: initialUserTypes || defaultUserTypes, } const result = useInfiniteQuery({ - queryKey: [keyString, { sorting: filterMeta.sorting, filterMeta, type }], + queryKey: [keyString, { sorting: filterMeta.sorting, filterMeta }], queryFn: searchReferral, refetchOnMount: false, refetchOnWindowFocus: false, @@ -295,6 +326,8 @@ const useSearchReferral = (props: ISearchReferralProps) => { minYearOfExperience, sorting, handleReset, + handleUserTypesChange, + userTypes, } } diff --git a/client/modules/member/components/bars/search.tsx b/client/modules/member/components/bars/search.tsx new file mode 100644 index 00000000..603aa092 --- /dev/null +++ b/client/modules/member/components/bars/search.tsx @@ -0,0 +1,68 @@ +import React from "react" +import { isExistsInListHelper } from "@/utils/common/helpers/check/is-exists-list" +import { useI18n } from "@/utils/services/internationalization/client" + +import { EUserType } from "@/types/common/user-type" +import { Button } from "@/components/ui/button" +import SearchBar, { + ISearchSearchBarProps, +} from "@/components/customized-ui/bars/search" + +export interface IUserTypeSectionProps { + currentUserTypes: EUserType[] + onUserTypesChange: (v: EUserType) => void +} + +const UserTypeSection: React.FunctionComponent = ({ + currentUserTypes, + onUserTypesChange, +}) => { + const t = useI18n() + return ( +
+ + + +
+ ) +} + +interface IUserSearchBarProps + extends ISearchSearchBarProps, + IUserTypeSectionProps {} + +const UserSearchBar: React.FunctionComponent = ({ + currentUserTypes, + onUserTypesChange, + ...props +}) => { + return ( + + ) +} + +export default UserSearchBar diff --git a/client/modules/referral/components/dialog/contact.tsx b/client/modules/member/components/dialog/contact.tsx similarity index 100% rename from client/modules/referral/components/dialog/contact.tsx rename to client/modules/member/components/dialog/contact.tsx diff --git a/client/modules/referral/components/dialog/userSignIn.tsx b/client/modules/member/components/dialog/userSignIn.tsx similarity index 100% rename from client/modules/referral/components/dialog/userSignIn.tsx rename to client/modules/member/components/dialog/userSignIn.tsx diff --git a/client/modules/member/components/drawers/search.tsx b/client/modules/member/components/drawers/search.tsx new file mode 100644 index 00000000..a9b8d961 --- /dev/null +++ b/client/modules/member/components/drawers/search.tsx @@ -0,0 +1,60 @@ +import React from "react" +import { IUserTypeSectionProps } from "@/modules/member/components/bars/search" +import { isExistsInListHelper } from "@/utils/common/helpers/check/is-exists-list" +import { useI18n } from "@/utils/services/internationalization/client" + +import { EUserType } from "@/types/common/user-type" +import { Button } from "@/components/ui/button" +import SearchDrawer, { + ISearchDrawerProps, +} from "@/components/customized-ui/drawers/search" + +interface IUserSearchDrawerProps + extends ISearchDrawerProps, + IUserTypeSectionProps {} + +const Fields: React.FunctionComponent = ({ + currentUserTypes, + onUserTypesChange, +}) => { + const t = useI18n() + return ( +
+ + + +
+ ) +} +const UserSearchDrawer: React.FunctionComponent = ({ + currentUserTypes, + onUserTypesChange, + ...props +}) => { + return ( + + ) +} + +export default UserSearchDrawer diff --git a/client/modules/referral/components/drop-down-menu/card.tsx b/client/modules/member/components/drop-down-menu/card.tsx similarity index 100% rename from client/modules/referral/components/drop-down-menu/card.tsx rename to client/modules/member/components/drop-down-menu/card.tsx diff --git a/client/modules/referral/referer/template.tsx b/client/modules/member/search/template.tsx similarity index 74% rename from client/modules/referral/referer/template.tsx rename to client/modules/member/search/template.tsx index 3ec4276d..3d308e1b 100644 --- a/client/modules/referral/referer/template.tsx +++ b/client/modules/member/search/template.tsx @@ -1,6 +1,8 @@ "use client" import React from "react" +import UserSearchBar from "@/modules/member/components/bars/search" +import UserSearchDrawer from "@/modules/member/components/drawers/search" import { useCurrentLocale, useI18n, @@ -14,20 +16,18 @@ import { EMessageType } from "@/types/common/message-type" import { EReferralType } from "@/types/common/referral-type" import useSearchReferral from "@/hooks/api/referral/search-referral" import BaseInfiniteScroll from "@/components/customized-ui/Infinite-scroll/base" -import SearchBar from "@/components/customized-ui/bars/search" import ReferralCard from "@/components/customized-ui/cards/referral" -import SearchDrawer from "@/components/customized-ui/drawers/search" import CardSkeletonList from "@/components/customized-ui/skeletons/card-list" -interface IRefererPageTemplateProps { +interface IMemberSearchPageTemplateProps { countryList: ICountryResponse[] provinceList: IProvinceResponse[] cityList: ICityResponse[] industryList: IIndustryResponse[] } -const RefererPageTemplate: React.FunctionComponent< - IRefererPageTemplateProps +const MemberSearchPageTemplate: React.FunctionComponent< + IMemberSearchPageTemplateProps > = ({ cityList, countryList, industryList, provinceList }) => { const t = useI18n() const { @@ -53,8 +53,9 @@ const RefererPageTemplate: React.FunctionComponent< maxYearOfExperience, minYearOfExperience, sorting, + handleUserTypesChange, + userTypes, } = useSearchReferral({ - type: EReferralType.REFERRER, cityList, countryList, industryList, @@ -62,18 +63,20 @@ const RefererPageTemplate: React.FunctionComponent< }) const { - data: refererListData, + data: userListData, isLoading: isRefererListLoading, fetchNextPage, isFetching, } = result const locale = useCurrentLocale() const list = - refererListData !== undefined ? refererListData.pages.flatMap((d) => d) : [] + userListData !== undefined ? userListData.pages.flatMap((d) => d) : [] return (
-
- - {t("referral.search_referrer.no_data")} + {t("user.search_user.no_data")}
)} @@ -153,48 +158,49 @@ const RefererPageTemplate: React.FunctionComponent< dataLength={list ? list.length : 0} //This is important field to render the next data next={fetchNextPage} hasMore={ - refererListData - ? refererListData && - refererListData.pages && - refererListData.pages[refererListData.pages.length - 1] - .length !== 0 + userListData + ? userListData && + userListData.pages && + userListData.pages[userListData.pages.length - 1].length !== 0 : true } >
- {list.map((referer) => { + {list.map((user) => { return ( ) })} @@ -205,4 +211,4 @@ const RefererPageTemplate: React.FunctionComponent< ) } -export default RefererPageTemplate +export default MemberSearchPageTemplate diff --git a/client/modules/post/components/bars/search.tsx b/client/modules/post/components/bars/search.tsx index 5dc5b247..8d2f2ed0 100644 --- a/client/modules/post/components/bars/search.tsx +++ b/client/modules/post/components/bars/search.tsx @@ -1,5 +1,5 @@ import React from "react" -import { isTypeExitsInCurrentTypes } from "@/modules/post/utils/is-type-exits-in-current-types" +import { isExistsInListHelper } from "@/utils/common/helpers/check/is-exists-list" import { useI18n } from "@/utils/services/internationalization/client" import { EReferralType } from "@/types/common/referral-type" @@ -19,10 +19,10 @@ const PostTypeSection: React.FunctionComponent = ({ }) => { const t = useI18n() return ( -
+