diff --git a/package-lock.json b/package-lock.json index 1c1399e4..eebddddd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.1.0", "dependencies": { "@calblueprint/prettier-config": "^0.0.1", - "@hookform/resolvers": "^3.3.4", + "@hookform/resolvers": "^3.4.0", "@radix-ui/react-slot": "^1.0.2", "@supabase/supabase-js": "^2.36.0", "@types/node": "20.6.3", @@ -28,7 +28,7 @@ "react-select-async-paginate": "^0.7.3", "styled-components": "^6.0.8", "validator": "^13.11.0", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "devDependencies": { "@calblueprint/eslint-config-react": "^0.0.3", @@ -2220,9 +2220,9 @@ "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" }, "node_modules/@hookform/resolvers": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz", - "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.4.0.tgz", + "integrity": "sha512-+oAqK3okmoEDnvUkJ3N/mvNMeeMv5Apgy1jkoRmlaaAF4vBgcJs9tHvtXU7VE4DvPosvAUUkPOaNFunzt1dbgA==", "peerDependencies": { "react-hook-form": "^7.0.0" } @@ -6924,9 +6924,9 @@ } }, "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index a80a58b3..11bc3859 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@calblueprint/prettier-config": "^0.0.1", - "@hookform/resolvers": "^3.3.4", + "@hookform/resolvers": "^3.4.0", "@radix-ui/react-slot": "^1.0.2", "@supabase/supabase-js": "^2.36.0", "@types/node": "20.6.3", @@ -33,7 +33,7 @@ "react-select-async-paginate": "^0.7.3", "styled-components": "^6.0.8", "validator": "^13.11.0", - "zod": "^3.22.4" + "zod": "^3.23.8" }, "devDependencies": { "@calblueprint/eslint-config-react": "^0.0.3", diff --git a/public/images/ijp_logo_blue.webp b/public/images/ijp-logo-blue.webp similarity index 100% rename from public/images/ijp_logo_blue.webp rename to public/images/ijp-logo-blue.webp diff --git a/public/images/ijp-logo-white.webp b/public/images/ijp-logo-white.webp new file mode 100644 index 00000000..017ace3e Binary files /dev/null and b/public/images/ijp-logo-white.webp differ diff --git a/src/app/onboarding-complete/page.tsx b/src/app/onboarding-complete/page.tsx index 5abbc16b..83730391 100644 --- a/src/app/onboarding-complete/page.tsx +++ b/src/app/onboarding-complete/page.tsx @@ -7,7 +7,7 @@ import CONFIG from '@/lib/configs'; import COLORS from '@/styles/colors'; import { CenteringDiv, Flex, SmallCard } from '@/styles/containers'; import { H2Centered, P } from '@/styles/text'; -import IJPLogo from '~/public/images/ijp_logo_blue.webp'; +import IJPLogo from '~/public/images/ijp-logo-blue.webp'; export default function Page() { return ( diff --git a/src/app/page.tsx b/src/app/page.tsx index af95d366..dbadf669 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -3,6 +3,7 @@ import { useMemo } from 'react'; import Image from 'next/image'; import { LinkButton } from '@/components/Buttons'; +import Footer from '@/components/Footer'; import CONFIG from '@/lib/configs'; import COLORS from '@/styles/colors'; import { H2, H3, H4 } from '@/styles/text'; @@ -170,6 +171,7 @@ export default function Home() { /> + ); } diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx new file mode 100644 index 00000000..689d9ef0 --- /dev/null +++ b/src/components/Footer/index.tsx @@ -0,0 +1,86 @@ +'use client'; + +import Image from 'next/image'; +import Link from 'next/link'; +import CONFIG from '@/lib/configs'; +import { IconType } from '@/lib/icons'; +import { Flex } from '@/styles/containers'; +import { P } from '@/styles/text'; +import IJPLogoWhite from '~/public/images/ijp-logo-white.webp'; +import Icon from '../Icon'; +import * as Styles from './styles'; + +type SocialLink = { + href: string; + type: IconType; +}; + +const socialLinks: SocialLink[] = [ + { href: CONFIG.facebook, type: 'facebook' }, + { href: CONFIG.xTwitter, type: 'x' }, + { href: CONFIG.linkedin, type: 'linkedin' }, + { href: CONFIG.instagram, type: 'instagram' }, +]; + +export default function Footer() { + return ( + + + + + + + + 2727 Camino del Rio South, Suite 320 San Diego, CA 92108 + + ©2024 by ABA Immigration Justice Project + + + + Resources + + + ABA Website + + + ABA Commission + + on Immigration + + + ABA IJP Website + + + + Contact Us + + Email: probono@abaijp.org + Phone: (619) 255-8829 + Office Phone: (619) 255-8810 + + {socialLinks.map(({ href, type }) => ( + + + + ))} + + + + + + + Made by Cal Blueprint + + + + + ); +} diff --git a/src/components/Footer/styles.tsx b/src/components/Footer/styles.tsx new file mode 100644 index 00000000..3ff920be --- /dev/null +++ b/src/components/Footer/styles.tsx @@ -0,0 +1,41 @@ +import styled from 'styled-components'; +import COLORS from '@/styles/colors'; +import { sans } from '@/styles/fonts'; +import { LinkColored } from '@/styles/text'; + +export const Footer = styled.div` + display: flex; + flex-direction: column; + width: 100%; + background-color: ${COLORS.blueMid}; + min-height: 290px; + padding: 40px 100px 0px 100px; +`; + +export const FooterSection = styled.div` + display: flex; + flex-direction: column; + gap: 10px; +`; + +export const FooterLink = styled(LinkColored)` + text-decoration: none; + font-size: 0.9375rem; + font-weight: 400px; + gap: 10px; + display: flex; + align-items: center; +`; + +export const Header = styled.p` + ${sans.style} + font-size: 1.25rem; + color: white; + font-weight: 500; +`; + +export const HorizontalLine = styled.hr<{ $width?: string }>` + color: white; + margin-bottom: 10px; + width: ${({ $width }) => $width || '2.5rem'}; +`; diff --git a/src/components/OnboardingManager.tsx b/src/components/OnboardingManager.tsx index 0168e927..f9830281 100644 --- a/src/components/OnboardingManager.tsx +++ b/src/components/OnboardingManager.tsx @@ -7,7 +7,7 @@ import CONFIG from '@/lib/configs'; import { useAuth } from '@/utils/AuthProvider'; import { useGuardedOnboarding, useOnboardingNavigation } from '@/utils/hooks'; import { useProfile } from '@/utils/ProfileProvider'; -import IJPLogoBlue from '~/public/images/ijp_logo_blue.webp'; +import IJPLogoBlue from '~/public/images/ijp-logo-blue.webp'; import { UnstyledButton } from './Buttons'; import ProgressBar from './ProgressBar'; diff --git a/src/lib/configs.ts b/src/lib/configs.ts index ebcebedc..2dc4cfa1 100644 --- a/src/lib/configs.ts +++ b/src/lib/configs.ts @@ -1,11 +1,22 @@ const CONFIG = { + pageSize: 20, homepage: '/', onboardingHome: '/onboarding/roles', - pageSize: 20, settings: '/settings', cases: '/cases', lca: '/limited-case-assignments', languageSupport: '/language-support', + // social media links + facebook: 'https://www.facebook.com/ImmigrationJusticeProjectOfSanDiego/', + xTwitter: 'https://twitter.com/ijpsandiego?lang=en', + linkedin: 'https://www.linkedin.com/company/immigration-justice-project/', + instagram: 'https://www.instagram.com/ijp.sandiego/', + // website links + ABA: 'https://www.americanbar.org/', + ABAComissions: + 'https://www.americanbar.org/groups/public_interest/immigration/', + IJP: 'https://www.americanbar.org/groups/public_interest/immigration/projects_initiatives/immigration-justice-project/', + blueprint: 'https://calblueprint.org/', }; export default CONFIG; diff --git a/src/lib/icons.tsx b/src/lib/icons.tsx index e0018e51..1317ff65 100644 --- a/src/lib/icons.tsx +++ b/src/lib/icons.tsx @@ -216,6 +216,147 @@ export const IconSvgs = { /> ), + facebook: ( + + + + ), + x: ( + + + + ), + instagram: ( + + + + ), + linkedin: ( + + + + + + + + + + + + + + + + + + ), + blueprint: ( + + + + + + + + + ), }; export type IconType = keyof typeof IconSvgs;
+ 2727 Camino del Rio South, Suite 320 San Diego, CA 92108 +
©2024 by ABA Immigration Justice Project
Email: probono@abaijp.org
Phone: (619) 255-8829
Office Phone: (619) 255-8810