Rocky_Mountain_Vending/.pnpm-store/v10/files/0c/328203569070efa08db273c747ff5f0ac5a7f4532f5cefa49c6a9d2682a14752c7713ee2ca5e27cf18ff87fecee8799d689da0c1c245d7918c9cda9ac34ff9
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

87 lines
2.5 KiB
Text

/**
* @license
* Copyright 2021 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {FunctionComponent} from 'preact';
import {FlowStepIcon, FlowStepThumbnail} from './common';
import {useLocalizedStrings} from './i18n/i18n';
import {getModeDescription, useFlowResult} from './util';
const SIDE_THUMBNAIL_HEIGHT = 80;
const MAIN_THUMBNAIL_HEIGHT = 120;
const HeaderThumbnail: FunctionComponent<{
lhr: LH.Result,
position: 'prev'|'next'|'main'
}> =
({lhr, position}) => {
const height = position === 'main' ? MAIN_THUMBNAIL_HEIGHT : SIDE_THUMBNAIL_HEIGHT;
return (
<div className={`HeaderThumbnail HeaderThumbnail--${position}`}>
<FlowStepThumbnail lhr={lhr} height={height}/>
<div className="HeaderThumbnail__icon">
<FlowStepIcon mode={lhr.gatherMode}/>
</div>
</div>
);
};
export const Header: FunctionComponent<{hashState: LH.HashState}> =
({hashState}) => {
const flowResult = useFlowResult();
const {index} = hashState;
const step = flowResult.steps[index];
const prevStep = flowResult.steps[index - 1];
const nextStep = flowResult.steps[index + 1];
const strings = useLocalizedStrings();
const modeDescription = getModeDescription(step.lhr.gatherMode, strings);
return (
<div className="Header">
{
prevStep && <>
{
flowResult.steps[index - 2] && <div className="Header__segment"/>
}
<div className="Header__prev-thumbnail">
<HeaderThumbnail lhr={prevStep.lhr} position="prev"/>
<div className="Header__segment"/>
</div>
<a
className="Header__prev-title"
href={`#index=${index - 1}`}
>{prevStep.name}</a>
</>
}
<div className="Header__current-thumbnail">
<HeaderThumbnail lhr={step.lhr} position="main"/>
</div>
<div className="Header__current-title">
{step.name}
<div className="Header__current-description">
{modeDescription}
</div>
</div>
{
nextStep && <>
<div className="Header__next-thumbnail">
<div className="Header__segment"/>
<HeaderThumbnail lhr={nextStep.lhr} position="next"/>
</div>
<a
className="Header__next-title"
href={`#index=${index + 1}`}
>{nextStep.name}</a>
{
flowResult.steps[index + 2] && <div className="Header__segment"/>
}
</>
}
</div>
);
};