diff --git a/package.json b/package.json index f15ff73..7dbf00d 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "^7.50.1", + "react-scroll": "^1.9.0", "server-only": "^0.0.1", "sonner": "^1.4.3", "superjson": "^2.2.1", @@ -55,6 +56,7 @@ "@types/node": "^18.19.15", "@types/react": "^18.2.55", "@types/react-dom": "^18.2.19", + "@types/react-scroll": "^1.8.10", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "autoprefixer": "^10.4.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed6479d..ae36834 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,6 +80,9 @@ dependencies: react-hook-form: specifier: ^7.50.1 version: 7.50.1(react@18.2.0) + react-scroll: + specifier: ^1.9.0 + version: 1.9.0(react-dom@18.2.0)(react@18.2.0) server-only: specifier: ^0.0.1 version: 0.0.1 @@ -118,6 +121,9 @@ devDependencies: "@types/react-dom": specifier: ^18.2.19 version: 18.2.19 + "@types/react-scroll": + specifier: ^1.8.10 + version: 1.8.10 "@typescript-eslint/eslint-plugin": specifier: ^6.21.0 version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) @@ -1541,6 +1547,15 @@ packages: dependencies: "@types/react": 18.2.55 + /@types/react-scroll@1.8.10: + resolution: + { + integrity: sha512-RD4Z7grbdNGOKwKnUBKar6zNxqaW3n8m9QSrfvljW+gmkj1GArb8AFBomVr6xMOgHPD3v1uV3BrIf01py57daQ==, + } + dependencies: + "@types/react": 18.2.55 + dev: true + /@types/react@18.2.55: resolution: { @@ -4775,6 +4790,13 @@ packages: } dev: true + /lodash.throttle@4.1.1: + resolution: + { + integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==, + } + dev: false + /lodash.uniq@4.5.0: resolution: { @@ -5803,7 +5825,6 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true /punycode@2.3.1: resolution: @@ -5857,7 +5878,21 @@ packages: { integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, } - dev: true + + /react-scroll@1.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: + { + integrity: sha512-mamNcaX9Ng+JeSbBu97nWwRhYvL2oba+xR2GxvyXsbDeGP+gkYIKZ+aDMMj/n20TbV9SCWm/H7nyuNTSiXA6yA==, + } + peerDependencies: + react: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.5.4 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + lodash.throttle: 4.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false /react@18.2.0: resolution: diff --git a/public/svg/verified.svg b/public/svg/verified.svg new file mode 100644 index 0000000..df309e8 --- /dev/null +++ b/public/svg/verified.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/app/(protected)/review/page.tsx b/src/app/(protected)/review/page.tsx index 8eb355e..7384da5 100644 --- a/src/app/(protected)/review/page.tsx +++ b/src/app/(protected)/review/page.tsx @@ -1,4 +1,4 @@ -import { ReviewForm } from "~/components/review-form"; +import { ReviewForm } from "~/components/form/review-form"; import { getServerSession } from "next-auth"; import { authOptions } from "~/server/auth"; import { redirect, notFound } from "next/navigation"; @@ -45,13 +45,15 @@ export default async function Page({ } return ( -
-
- +
+
+
+ +
); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 2e79316..9d5f0d7 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,5 @@ import "~/styles/globals.css"; import { TRPCReactProvider } from "~/trpc/react"; -import { Toaster } from "~/components/ui/sonner"; import { cn } from "~/lib/utils"; import { bentonSansFont } from "~/styles/font"; @@ -23,7 +22,6 @@ export default function RootLayout({ > {children} - ); diff --git a/src/components/company-details-section.tsx b/src/components/form/company-details-section.tsx similarity index 72% rename from src/components/company-details-section.tsx rename to src/components/form/company-details-section.tsx index da13251..51d0104 100644 --- a/src/components/company-details-section.tsx +++ b/src/components/form/company-details-section.tsx @@ -1,5 +1,6 @@ +import { useState } from "react"; import { useFormContext } from "react-hook-form"; -import { FormSection } from "~/components/form-section"; +import { FormSection } from "~/components/form/form-section"; import { FormControl, FormField, @@ -8,10 +9,10 @@ import { FormMessage, } from "~/components/ui/form"; import { RadioGroup, RadioGroupItem } from "~/components/ui/radio-group"; -import { Input } from "~/components/ui/input"; import { Checkbox } from "~/components/ui/checkbox"; -import { benefits } from "~/components/review-form"; +import { benefits } from "~/components/form/review-form"; +import { Textarea } from "~/components/ui/textarea"; type CompanyDetailsSectionProps = { companyName: string; @@ -23,22 +24,23 @@ type CompanyDetailsSectionProps = { */ export function CompanyDetailsSection(props: CompanyDetailsSectionProps) { const form = useFormContext(); + const [otherBenefits, setOtherBenefits] = useState(false); return ( - + ( - + What kind of work model?* - + In-person - + Hybrid - + ( - + Did {props.companyName} drug test?* - + Yes - + ( - + Was working overtime common?* - + Yes - + ( - + ))} - ( - - - - - - - - )} - /> + + setOtherBenefits(!!c)} + /> + Other + + + {otherBenefits && ( + ( + + +