mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-06 09:01:38 +08:00
[portal][feat] add homepage
This commit is contained in:
Before Width: | Height: | Size: 351 KiB After Width: | Height: | Size: 351 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@ -44,7 +44,7 @@ function ProfileJewel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const userNavigation = [
|
const userNavigation = [
|
||||||
{ href: '/profile', name: 'Profile' },
|
// { href: '/profile', name: 'Profile' },
|
||||||
{
|
{
|
||||||
href: '/api/auth/signout',
|
href: '/api/auth/signout',
|
||||||
name: 'Log out',
|
name: 'Log out',
|
||||||
|
@ -36,14 +36,13 @@ export default function ProductNavigation({
|
|||||||
className="hover:text-primary-700 flex items-center gap-2 text-base font-medium"
|
className="hover:text-primary-700 flex items-center gap-2 text-base font-medium"
|
||||||
href={titleHref}>
|
href={titleHref}>
|
||||||
<div>
|
<div>
|
||||||
{titleHref !== '/' &&
|
{logo ?? (
|
||||||
(logo ?? (
|
<img
|
||||||
<img
|
alt="Tech Interview Handbook"
|
||||||
alt="Tech Interview Handbook"
|
className="h-8 w-auto"
|
||||||
className="h-8 w-auto"
|
src="/logo.svg"
|
||||||
src="/logo.svg"
|
/>
|
||||||
/>
|
)}
|
||||||
))}
|
|
||||||
</div>
|
</div>
|
||||||
{title}
|
{title}
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -16,7 +16,11 @@ const navigationAuthenticated: ProductNavigationItems = [
|
|||||||
const config = {
|
const config = {
|
||||||
googleAnalyticsMeasurementID: 'G-34XRGLEVCF',
|
googleAnalyticsMeasurementID: 'G-34XRGLEVCF',
|
||||||
logo: (
|
logo: (
|
||||||
<img alt="Tech Offers Repo" className="h-8 w-auto" src="/offers-logo.svg" />
|
<img
|
||||||
|
alt="Tech Offers Repo"
|
||||||
|
className="h-8 w-auto"
|
||||||
|
src="/logos/offers-logo.svg"
|
||||||
|
/>
|
||||||
),
|
),
|
||||||
navigation,
|
navigation,
|
||||||
showGlobalNav: false,
|
showGlobalNav: false,
|
||||||
|
@ -70,9 +70,9 @@ export default function LandingComponent({ onLanded }: LandingComponentProps) {
|
|||||||
<header className="flex flex-col items-start gap-16">
|
<header className="flex flex-col items-start gap-16">
|
||||||
<div className="flex flex-col items-center">
|
<div className="flex flex-col items-center">
|
||||||
<img
|
<img
|
||||||
alt="Questions Bank"
|
alt="Question Bank"
|
||||||
className="h-40 w-40"
|
className="h-40 w-40"
|
||||||
src="/bank-logo.png"
|
src="/logos/bank-logo.png"
|
||||||
/>
|
/>
|
||||||
<h1 className="text-primary-700 text-center text-5xl font-bold">
|
<h1 className="text-primary-700 text-center text-5xl font-bold">
|
||||||
Tech Interview Question Bank
|
Tech Interview Question Bank
|
||||||
|
@ -11,7 +11,11 @@ const navigation: ProductNavigationItems = [
|
|||||||
const config = {
|
const config = {
|
||||||
googleAnalyticsMeasurementID: 'G-0T4LYWMK8L',
|
googleAnalyticsMeasurementID: 'G-0T4LYWMK8L',
|
||||||
logo: (
|
logo: (
|
||||||
<img alt="Questions Bank" className="h-8 w-auto" src="/bank-logo.png" />
|
<img
|
||||||
|
alt="Questions Bank"
|
||||||
|
className="h-8 w-auto"
|
||||||
|
src="/logos/bank-logo.png"
|
||||||
|
/>
|
||||||
),
|
),
|
||||||
navigation,
|
navigation,
|
||||||
showGlobalNav: false,
|
showGlobalNav: false,
|
||||||
|
@ -26,7 +26,7 @@ const config = {
|
|||||||
<img
|
<img
|
||||||
alt="Tech Resume Review"
|
alt="Tech Resume Review"
|
||||||
className="h-8 w-auto"
|
className="h-8 w-auto"
|
||||||
src="/resumes-logo.svg"
|
src="/logos/resumes-logo.svg"
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
navigation,
|
navigation,
|
||||||
|
@ -1,13 +1,75 @@
|
|||||||
|
import { Button } from '@tih/ui';
|
||||||
|
|
||||||
|
import Container from '~/components/shared/Container';
|
||||||
|
|
||||||
|
const features = [
|
||||||
|
{
|
||||||
|
description:
|
||||||
|
'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.',
|
||||||
|
href: '/resumes',
|
||||||
|
img: '/logos/resumes-logo.svg',
|
||||||
|
name: 'Resume Review',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description:
|
||||||
|
'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.',
|
||||||
|
href: '/offers',
|
||||||
|
img: '/logos/offers-logo.svg',
|
||||||
|
name: 'Tech Offers',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
description:
|
||||||
|
'Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maiores impedit perferendis suscipit eaque, iste dolor cupiditate blanditiis ratione.',
|
||||||
|
href: '/questions',
|
||||||
|
img: '/logos/bank-logo.png',
|
||||||
|
name: 'Question Bank',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
return (
|
return (
|
||||||
<main className="flex-1 overflow-y-auto">
|
<div className="bg-white py-12">
|
||||||
<div className="flex h-full items-center justify-center">
|
<Container className="space-y-24">
|
||||||
<div className="space-y-4">
|
<div className="text-center">
|
||||||
<h1 className="text-primary-600 text-center text-4xl font-bold">
|
<h1 className="text-4xl font-bold tracking-tight text-slate-900 sm:text-5xl md:text-6xl">
|
||||||
Tech Interview Handbook Portal
|
<span className="block">Tech Interview Handbook</span>
|
||||||
|
<span className="text-primary-600 block">Portal</span>
|
||||||
</h1>
|
</h1>
|
||||||
|
<p className="mx-auto mt-3 max-w-md text-base text-slate-500 sm:text-lg md:mt-5 md:max-w-3xl md:text-xl">
|
||||||
|
Suite of products to help you get better at technical interviews.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div>
|
||||||
</main>
|
<h2 className="sr-only">Products.</h2>
|
||||||
|
<dl className="space-y-10 lg:grid lg:grid-cols-3 lg:gap-12 lg:space-y-0">
|
||||||
|
{features.map((feature) => (
|
||||||
|
<div key={feature.name}>
|
||||||
|
<dt>
|
||||||
|
<div className="flex justify-center">
|
||||||
|
<img
|
||||||
|
alt={feature.name}
|
||||||
|
className="h-48"
|
||||||
|
src={feature.img}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<p className="mt-8 text-xl font-medium leading-6 text-slate-900">
|
||||||
|
{feature.name}
|
||||||
|
</p>
|
||||||
|
</dt>
|
||||||
|
<dd className="mt-2 text-base text-slate-500">
|
||||||
|
{feature.description}
|
||||||
|
</dd>
|
||||||
|
<Button
|
||||||
|
className="mt-4"
|
||||||
|
href={feature.href}
|
||||||
|
label="Try it out"
|
||||||
|
variant="tertiary"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</dl>
|
||||||
|
</div>
|
||||||
|
</Container>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ export default function LandingPage() {
|
|||||||
<img
|
<img
|
||||||
alt="Tech Offers Repo"
|
alt="Tech Offers Repo"
|
||||||
className="mx-auto mb-8 w-auto"
|
className="mx-auto mb-8 w-auto"
|
||||||
src="/offers-logo.svg"
|
src="/logos/offers-logo.svg"
|
||||||
/>
|
/>
|
||||||
<h1 className="text-center text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl">
|
<h1 className="text-center text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl">
|
||||||
<span>Choosing offers </span>
|
<span>Choosing offers </span>
|
||||||
|
Reference in New Issue
Block a user