fiemwl / src /app /(dashboard) /dashboard /webhooks /components /HowItWorksSidebar.tsx
automindy's picture
Upload 1980 files
6111b2b verified
Raw
History Blame Contribute Delete
2.09 kB
"use client";
import { HmacRecipeBlock } from "./shared/HmacRecipeBlock";
interface HowItWorksSidebarProps {
t: (key: string) => string;
showCustomNote?: boolean;
}
export function HowItWorksSidebar({ t, showCustomNote }: HowItWorksSidebarProps) {
const steps = [
t("howItWorks.step1"),
t("howItWorks.step2"),
t("howItWorks.step3"),
t("howItWorks.step4"),
];
return (
<aside className="space-y-4 rounded-xl border border-border bg-surface p-5">
<h3 className="flex items-center gap-2 text-sm font-semibold text-text-main">
<span className="material-symbols-outlined text-[18px] text-primary">info</span>
{t("howItWorks.title")}
</h3>
<ol className="space-y-3">
{steps.map((step, i) => (
<li key={i} className="flex gap-3 text-xs text-text-muted">
<span className="flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10 text-[10px] font-bold text-primary">
{i + 1}
</span>
{step}
</li>
))}
</ol>
{showCustomNote && (
<div className="space-y-3 border-t border-border pt-3">
<p className="text-xs text-text-muted">{t("howItWorks.customOnly")}</p>
<HmacRecipeBlock
title={t("howItWorks.hmacRecipeTitle")}
code={t("howItWorks.hmacRecipe")}
/>
</div>
)}
<div className="space-y-1.5 border-t border-border pt-3">
<p className="text-xs text-text-muted">{t("howItWorks.timeoutNote")}</p>
<p className="text-xs text-text-muted">{t("howItWorks.retryNote")}</p>
<a
href="https://docs.omniroute.app/webhooks"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1 text-xs text-primary hover:underline"
>
<span className="material-symbols-outlined text-[14px]">menu_book</span>
{t("howItWorks.docsLink")}
</a>
</div>
</aside>
);
}