* Fix breadcrumb colors * HorizontalTabs * Team List Item WIP * Horizontal Tabs * Cards * Remove team list item WIP * Login Page * Add welcome back i118n * EventType page work * Update EventType Icons * WIP Availability * Horizontal Tab Work * Add build command for in root * Update build DIr/command * Add Edit Button + change buttons to v2 * Availablitiy page * Fix IPAD * Make mobile look a little nicer * WIP bookingshell * Remove list items from breaking build * Mian bulk of Booking Page. * Few updates to components * Fix chormatic feedback * Fix banner * Fix Empty Screen * Text area + embded window fixes * Semi fix avatar * Troubleshoot container + Active on count * Improve mobile * NITS * Fix padding on input * Fix icons * Starting to move event types settings to tabs * Begin migration to single page form * Single page tabs * Limits Page * Advanced tab * Add RHF to dependancies * Most of advanced tab * Solved RHF mismtach * Build fixes * RHF conditionals fixes * Improved legibility * Major refactor/organisation into optional V2 UI * Portal EditLocationModal * Fix dialoug form * Update imports * Auto Animate + custom inputs WIP * Custom Inputs * WIP Apps * Fixing stories imports * Stripe app * Remove duplicate dialog * Remove duplicate dialog * Fix embed URL * Fix app toggles + number of active apps * Fix container padding on disabledBorder prop * Removes strict * EventType Team page WIP * Fix embed * NIT * Add Darkmode gray color * V2 Shell WIP * Fix headings on shell V2 * Fix mobile layout with V2 shell * V2 create event type button * Checked Team Select * Hidden to happen on save - not on toggle * Team Attendee Select animation * Fix scheduling type and remove multi select label * Fix overflow on teams url * Even Type move order handles * Fix Embed TS errors * Fix TS errors * Fix Eslint errors * Fix TS errors for UI * Fix ESLINT error * added SidebarCard for promo to v2 and storybook (#3906) Co-authored-by: Julian Benegas <julianbenegas99@gmail.com> Co-authored-by: Alan <alannnc@gmail.com> Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com> * Tooltip Provider - Wrapper due to dep upgrade * public event type list darkmode * V2 Color changes to public booking * Remove unused component * Fix typecheck * Removed extra buttons on create ET dialog * ET edit page refactoring * Avoids form wrapping the whole Shell * Nitpicks Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: zomars <zomars@me.com> Co-authored-by: Hariom Balhara <hariombalhara@gmail.com> Co-authored-by: Julian Benegas <julianbenegas99@gmail.com> Co-authored-by: Alan <alannnc@gmail.com>
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
import { useRouter } from "next/router";
|
|
|
|
import classNames from "@calcom/lib/classNames";
|
|
import { Button, Stepper } from "@calcom/ui/v2";
|
|
|
|
type DefaultStep = {
|
|
title: string;
|
|
description: string;
|
|
content: JSX.Element;
|
|
enabled?: boolean;
|
|
isLoading: boolean;
|
|
};
|
|
|
|
function WizardForm<T extends DefaultStep>(props: { href: string; steps: T[]; containerClassname?: string }) {
|
|
const { href, steps } = props;
|
|
const router = useRouter();
|
|
const step = parseInt((router.query.step as string) || "1");
|
|
const currentStep = steps[step - 1];
|
|
const setStep = (newStep: number) => {
|
|
router.replace(`${href}?step=${newStep || 1}`, undefined, { shallow: true });
|
|
};
|
|
|
|
return (
|
|
<div className="mx-auto print:w-full">
|
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
|
<img className="mx-auto mb-8 h-8" src="https://cal.com/logo.svg" alt="Cal.com Logo" />
|
|
<div
|
|
className={classNames(
|
|
"mb-8 divide-y divide-gray-200 overflow-hidden rounded-lg bg-white shadow print:divide-transparent print:shadow-transparent",
|
|
props.containerClassname
|
|
)}>
|
|
<div className="px-4 py-5 sm:px-6">
|
|
<h1 className="font-cal text-2xl text-gray-900">{currentStep.title}</h1>
|
|
<p className="text-sm text-gray-500">{currentStep.description}</p>
|
|
</div>
|
|
<div className="print:p-none px-4 py-5 sm:p-6">{currentStep.content}</div>
|
|
{currentStep.enabled !== false && (
|
|
<div className="flex justify-end px-4 py-4 print:hidden sm:px-6">
|
|
{step > 1 && (
|
|
<Button
|
|
color="secondary"
|
|
onClick={() => {
|
|
setStep(step - 1);
|
|
}}>
|
|
Back
|
|
</Button>
|
|
)}
|
|
|
|
<Button
|
|
tabIndex={0}
|
|
loading={currentStep.isLoading}
|
|
type="submit"
|
|
color="primary"
|
|
form={`setup-step-${step}`}
|
|
className="relative">
|
|
{step < steps.length ? "Next" : "Finish"}
|
|
</Button>
|
|
</div>
|
|
)}
|
|
</div>
|
|
<div className="print:hidden">
|
|
<Stepper href={href} step={step} steps={steps} />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default WizardForm;
|